Mouse

Qt 應用程序不服從 Xmodmap

  • April 19, 2017

很久以前,我創建了一個~/.Xmodmap反轉45創建“自然滾動”:

pointer = 1 2 3 5 4 7 6 8 9 10 11 12

.Xmodmap.xinitrc標準方式 ( xmodmap $HOME/.Xmodmap &) 進行採購。這已經工作了多年,沒有問題。

我最近剛剛安裝了一個名為. 我對該程序沒有其他問題,只是由於某種原因,當我在程序內部滾動時,我的滾動方向不是“自然的”(即,就好像我沒有被這個應用程序所遵循)。cockatrice.Xmodmap

起初,我認為這是我的 Qt 輸入模組的問題,但我意識到我已經QT_IM_MODULExim.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

它似乎是特定於 Qt 的(通過在 Qt Assistant 中嘗試)。我認為這是因為 Qt 僅將滾動距離用於其滾輪事件。

您可以將滾動距離設置為負值,而不是在此處使用 xmodmap。

/etc/X11/xorg.conf.d/對於由 evdev 管理的滑鼠,您可以通過 in 中的文件進行設置:

Section "InputClass"
       Identifier "Reverse Scrolling"
       MatchIsPointer "on"
       Option "VertScrollDelta" "-1"
       Option "HorizScrollDelta" "-1"
       Option "DialDelta" "-1"
EndSection

或者您可以先嘗試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

引用自:https://unix.stackexchange.com/questions/149277