QtアプリケーションはXmodmapを尊重しません。

QtアプリケーションはXmodmapを尊重しません。

ずっと前、私は「自然なスクロール」を作るために~/.Xmodmap逆合い4を作りました。5

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

標準的な方法でリソース()を取得します.Xmodmap。これは何の問題もなく何年も働きました。.xinitrcxmodmap $HOME/.Xmodmap &

最近というプログラムをインストールしました。cockatrice。プログラム内でスクロールするとき、何らかの理由でスクロール方向が「自然」ではないことを除いて、プログラムに他の問題はありません。つまり、.Xmodmapこのアプリだけが私のスクロール方向に従わないようです。

最初はQt入力モジュールに問題があると思いましたが、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

ベストアンサー1

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

または、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(垂直エッジと水平エッジの2つの値しかありません。)

設定ファイルの規則は次のとおりですMatchIsTouchpad

Section "InputClass"
        Identifier "Natural Scrolling"
        MatchIsTouchpad "on"
        Option "VertScrollDelta" "-1"
        Option "HorizScrollDelta" "-1"
EndSection

おすすめ記事