Hal*_*ost 7 mouse scrolling qt
很久以前,我创建了一个~/.Xmodmap
反转4
和5
创建“自然滚动”:
pointer = 1 2 3 5 4 7 6 8 9 10 11 12
Run Code Online (Sandbox Code Playgroud)
余源.Xmodmap
在.xinitrc
以标准方式(xmodmap $HOME/.Xmodmap &
)。这已经工作了多年没有问题。
我最近刚刚安装了一个名为cockatrice
. 我对程序没有其他问题,除了出于某种原因,当我在程序内滚动时,我的滚动方向不是“自然的”(即,就好像.Xmodmap
只有这个应用程序不服从我的)。
起初,我以为是我的Qt输入模块的问题,但我意识到,我已经正确地宣布QT_IM_MODULE
要xim
在我.xinitrc
,我从来没有过这样的问题,与任何其他应用程序。
这是特定于应用程序的问题,还是特定于 Qt 的问题?我应该尝试什么来进一步解决这个问题(或解决它)?
试图通过xinput
失败来普遍设置这个:
$ xinput list
? Virtual core pointer id=2 [master pointer (3)]
? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
? ? SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
? Virtual core keyboard id=3 [master keyboard (2)]
# unneeded information regarding my keyboard
$ xinput set-prop 2 "Evdev Scrolling Distance" -1 -1 -1
property 'Evdev Scrolling Distance' doesn't exist, you need to specify its type and format
Run Code Online (Sandbox Code Playgroud)
它似乎是特定于 Qt 的(来自在 Qt Assistant 中尝试)。我认为这是因为 Qt 仅使用其滚轮事件的滚动距离。
您可以将滚动距离设置为负值,而不是在此处使用 xmodmap。
/etc/X11/xorg.conf.d/
对于 evdev 管理的鼠标,您可以通过 中的文件设置它:
Section "InputClass"
Identifier "Reverse Scrolling"
MatchIsPointer "on"
Option "VertScrollDelta" "-1"
Option "HorizScrollDelta" "-1"
Option "DialDelta" "-1"
EndSection
Run Code Online (Sandbox Code Playgroud)
或者您可以先尝试xinput
:
xinput set-prop <your device id> "Evdev Scrolling Distance" -1 -1 -1
(获取设备ID: xinput list
)
属性与实际设备一起列出。这里xinput list-props 12
应该列出触摸板的属性。由于它是一个突触触摸板,从这个手册页属性应该是:
xinput set-prop <touchpad id> "Synaptics Scrolling Distance" -1 -1
(只有两个值,垂直和水平边缘。)
对于配置文件中的规则,它应该与MatchIsTouchpad
:
Section "InputClass"
Identifier "Natural Scrolling"
MatchIsTouchpad "on"
Option "VertScrollDelta" "-1"
Option "HorizScrollDelta" "-1"
EndSection
Run Code Online (Sandbox Code Playgroud)