我的触摸板启用了动量(或惯性,我不知道正确的术语是什么) - 也就是说,即使我的手指离开触摸板,它也会继续滚动并逐渐减慢(我相信这是每个触摸板的功能)。然而,在我的 Linux Mint Cinnamon 中,即使在触摸板的动力下,也能Ctrl 正常工作,而且通常,当我Ctrl 在滚动后立即使用时,它会突然放大或缩小,因为Ctrl+ 滚动会改变缩放。我怎样才能解决这个问题,使其Ctrl 不会作用于触摸板的动量?
答案1
这是因为在 libinput 驱动程序中实现了惯性滑行,表面上是为了提高可用性,但会带来您正在经历的副作用(源自 X11 事件的转换)。
增加滑行摩擦力有助于解决这个问题。这是通过在手指离开触摸板后更快地终止滚动来实现的,从而导致 libinput X11 驱动程序生成更少的滚动事件并大大降低事件键冲突的可能性。如果您想保持一定程度的滑行,那么您可能需要使用下面“Synaptics Coasting Speed”之后的第二个数字来找到适合您的数字 - 较高的值会更快地停止滑行,较低的值会使其滑动更长时间更长。
从指导在这里(以及下面的其他评论)我发现这解决了我的问题:
xinput set-prop "16" "Synaptics Coasting Speed" 20.0 50000.0
您可能需要将 16 更改为触摸板设备的 ID,可以使用以下命令进行识别
xinput list
为了使更改在会话之间持续存在,请创建一个.config/autostart/fix-scrolling.desktop
包含以下内容的文件:
[Desktop Entry]
Name=Fix Scrolling
Exec=xinput set-prop "16" "Synaptics Coasting Speed" 20.0 50000.0
Terminal=false
Type=Application
StartupNotify=false
从长远来看,随着越来越多的发行版转向支持 Wayland 或其他现代“座位”架构,将滚动事件表示为离散按键的 X11 方法应该不再是一个问题。
答案2
这个问题不仅限于肉桂DE。例如Xfce4Alt如果启用了合成器,则默认情况下有绑定到桌面缩放的键。那里在窗口管理器调整对话框中,您可以修改“辅助功能”选项卡中的“用于抓取和移动窗口的键”设置,以更改或禁用操作的修饰键,但这些操作很有用,所以我不想禁用它们。 (尽管它的名称也影响桌面缩放,请参阅此错误报告.)
我通过创建软件解决了这个问题,如果在滚动开始后按下修饰键,则在滚动期间禁用给定的指针设备,并在释放所有修饰键时重新启用它。
我的解决方案可在这GitHub 存储库。在撰写本文时,只有一个解决方案呆呆地使用的分支gawk
,xinput
因此您应该安装这些软件包。只需下载其中找到的 shell 脚本并使其可执行chmod +x
并运行它即可。如果您不带参数运行它,它将在终端中给出更多说明。
如果您的桌面环境使用此解决方案,则应该可以使用X 窗口系统 (X11)它适用于那里的所有应用程序,包括例如谷歌浏览器(与滚动绑定Ctrl以进行缩放)。似乎没有等效的解决方案韦兰如果键盘和触摸板位于同一设备中,请参阅这里。
答案3
对我有用的是:
synclient CoastingFriction=1000
不幸的是,这在重新启动后不会持续存在,因此您需要在启动时运行它。我将其添加为“启动应用程序”中的自定义命令,现在切换浏览器选项卡时不会再出现意外缩放!