My touchpad has momentum enabled (or inertia, I do not know what the correct term is) – that is, even after my fingers leave the touchpad, it continues scrolling and gradually slows down (I believe it is a feature of every touchpad). However, in my Linux Mint Cinnamon, even in the momentum of the touchpad, Ctrl works, and often, when I use Ctrl right after scrolling, it suddenly zooms in or out, as Ctrl + scrolling changes zoom. How can I fix this such that Ctrl will not act upon the touchpad's momentum?
How to disable CTRL acting on touchpad’s momentum in Cinnamon
cinnamontouchpadx11xfce
Related Solutions
Cinnamon cannot disable or remove window decorations, according to this issue on GitHub. The option to remove window decoration is yet to be implemented.
User may instead use any of the workarounds as follows.
Workaround 1 (easy)
Use the smallest font size for window title. Go to System Settings > Appearance - Fonts. Then under Font Selection - Window title font: change the font size from the default 10
to the smallest value 1
, then click Select to finish.
Assuming the screenshot is pixel-perfect regardless of screen resolution, the height of window decoration was reduced by: 14 pixels in Cinnamon 2.2; 17 pixels in Cinnamon 3.8.
Window decoration in Cinnamon seems to use Metacity theme with Mutter/Muffin support; traditional themes do not seem to work. Different combination of themes for window borders and controls may affect the result. Some themes do not reduce the height of window decoration as much as other themes. For example, Mint-Y had worse result than Mint-X.
Limitation: This workaround is theme dependent. Known themes that work well with this workaround are very few: Mint-X, BlueMenta, Greybird.
Workaround 2
Use any utility tool like Devil's Pie or Devilspie2, which can remove window decorations for EWMH-compliant window managers. This will require user configuration to remove window decoration.
For Devilspie2, open a text editor and type the following code.
if (get_window_type()=="WINDOW_TYPE_NORMAL") then
undecorate_window();
end
Save as file in $HOME/.config/devilspie2
with any name followed by .lua
in the filename. Run devilspie2
to see the result. To make the changes persistent at reboot, add the command devilspie2
to Settings > Preferences - Startup Applications.
With above configuration, all running applications with normal window type will have no window decoration at all. This related post has my answer with details on how to use Devil's Pie and Devilspie2 to remove window decoration by application name instead.
Limitation: This workaround will not work against applications with the client-side decoration a.k.a header bar in GNOME; thus modifying the theme may be the only alternative.
Workaround 3
Modify the theme. Cinnamon window manager, Muffin, supports Xfwm4 and Metacity themes for its window decorations: check /usr/share/themes/THEMENAME
directory and look for either metacity-1
or xfwm4
subdirectory.
This answer on Ask Ubuntu had suggested to edit the XML file of the currently used theme:
[...] You can edit
/usr/share/themes/Mint-X/metacity-1
and set all non-zero
value
properties in themetacity-theme-1.xml
(of course you need sudo, to edit something there. A backup is useful.) [...]
The filename may vary depending on which theme in use.
Perhaps theme modification is the only "reliable" way to remove window decoration. The known limitations in other two workarounds seem redundant, except this is a tedious workaround.
Disclaimer: I don't use Cinnamon on daily basis and just explored again recently for experience. I did not verify the third workaround because that will take some time to test.
Tested with Cinnamon 2.2 in Linux Mint 17 (Live) and Cinnamon 3.8 in Linux Mint Debian Edition 3.
Feature is called "Coasting speed". To disable it you can use:
xinput --set-prop --type=float "<your device>" "Synaptics Coasting Speed" 0 0
to list devices you can use:
xinput list
alternative variant (for touchpads) is synclient
options (there are 3 of them):
CornerCoasting = 0
CoastingSpeed = 0
CoastingFriction = 0
Best Answer
This is since coasting has been implemented in the libinput drivers, ostensibly to improve usability, but with side effects (originating in the translation to X11 events) that you are experiencing.
Increasing the coasting friction can help with the issue. This works by killing the scrolling much faster after your fingers leave the touchpad, causing the libinput X11 driver to generate fewer scroll events and making an event-key clash much less likely. If you want to keep some level of coasting, then you may need to play around with the second number after "Synaptics Coasting Speed" below to find one that works for you - higher values stop the coasting more quickly, lower values let it slide for longer.
From the guidance here (and other comments below) I find this fixes the issue for me:
You will probably need to change the 16 to the ID of your touchpad device, which can be identified by using
And to make the changes persist between sessions, create a file
.config/autostart/fix-scrolling.desktop
with the contents:In the long term, the X11 method of representing scroll events as discrete key presses should become less of an issue as more distributions shift to supporting Wayland or other modern "seat" architecture.