libinputでスクロール速度を変更する


16

マウスホイールのスクロールが遅いため、各スクロールの「ティック」の行数を増やしたいと思います。Evdev Scrolling Distancewithを設定することでこれが可能であることを読みましたxinputが、私は使用libinputしていますが、スクロール距離に関連するものは表示されません。

xinput list-propsマウスの出力:

Device Enabled (139):   1                                                                                                       
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (275): -0.640000                                                                                           
libinput Accel Speed Default (276): 0.000000                                                                                    
libinput Accel Profiles Available (277):    1, 1                                                                                
libinput Accel Profile Enabled (278):   1, 0                                                                                    
libinput Accel Profile Enabled Default (279):   1, 0                                                                            
libinput Natural Scrolling Enabled (280):   0                                                                                   
libinput Natural Scrolling Enabled Default (281):   0                                                                           
libinput Send Events Modes Available (259): 1, 0                                                                                
libinput Send Events Mode Enabled (260):    0, 0                                                                                
libinput Send Events Mode Enabled Default (261):    0, 0                                                                        
libinput Left Handed Enabled (282): 0                                                                                           
libinput Left Handed Enabled Default (283): 0                                                                                   
libinput Scroll Methods Available (284):    0, 0, 1                                                                             
libinput Scroll Method Enabled (285):   0, 0, 0                                                                                 
libinput Scroll Method Enabled Default (286):   0, 0, 0                                                                         
libinput Button Scrolling Button (287): 2                                                                                       
libinput Button Scrolling Button Default (288): 274                                                                             
libinput Middle Emulation Enabled (289):    0                                                                                   
libinput Middle Emulation Enabled Default (290):    0                                                                           
Device Node (262):  "/dev/input/event1"                                                                                         
Device Product ID (263):    1133, 50487                                                                                         
libinput Drag Lock Buttons (291):   <no items>                                                                                  
libinput Horizonal Scroll Enabled (264):    1                                                  

スクロール速度を変更するにはどうすればよいですか?Arch Linux、Xfce 4.12で実行しています。


1
これを実装するlibinputの機能リクエストがあります(@clel提供)。
n.st

回答:


4

libinputデバイスのスクロール速度を変更するための現在のAPIはありませんが、このブログでは、マウスホイールのクリックがsystemdのudev構成ファイルでマウスごとに変更できる移動角度に対応する方法について説明します/usr/lib/udev/hwdb.d/70-mouse.hwdbMOUSE_WHEEL_CLICK_ANGLEこのファイルの冒頭のコメントを読んでください。

ローカルで変更するには、新しいファイルを作成します

 /etc/udev/hwdb.d/71-mouse-local.hwdb

優先ルールを追加します。たとえば、ImExPS / 2マウスを使用している場合、クリックごとにデフォルトの15度を30度に2倍にできます。

# ImExPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250
 MOUSE_WHEEL_CLICK_ANGLE=30

udevデータベースをリロードします

 sudo udevadm hwdb --update
 sudo udevadm trigger /dev/input/event1

1
There is no current api for changing the scroll speed for libinput devices:これはその後変更されましたか?
-orschiro

1
@orschiro APIは意図ではないという印象を受けます。すべてのデバイスがudevで適切に識別および設定され、ユーザー設定が不要になることが期待されます。すべてのlibinputブログをチェックしてください。特に1.4は、libinputの最初のTODOリストの仕上げに対応しています。
-meuh

4
Ubuntu 16.10では、システムudev confは/lib/udev/hwdb.d/70-mouse.hwdbにあります
ジョナスベルリン

2
とにかくタッチパッドで同じことをする?
フランチェスコ

1
@daborossはい。考慮すべき2つの側面があります:上記の答えは、デバイスからの出力を正規化して、たとえば、ユーザーが2つの異なるマウスで同じ量の動きをするときに、システムがレポートにもかかわらず同等であると計算できるようにすることです異なるハードウェアから。2番目の側面は、これがどの程度の動きを表すかであり、グラフィックツールキット、ウィンドウシステム、画面のdpiなど、ユーザーが直面するソフトウェアの複雑な量によって決まります。
-meuh

3

Libinputには、「すべてのホイールスクロールに対して、n行/度を行う」という一般的な概念はありません。一部のLogitechには、Evdev Scrolling Distance (278)おそらく「古い」 Evdevドライバーが含まれます。

これは、私の意見では、ユーザーエクスペリエンスの退行と見なされます。最初は、構成可能なマウススクロール感度を共通ツールキット(libinput)に含めることは拒否されましたが、現在は将来のバージョンのプルリクエストの一部です–おそらく、関数呼び出しをすべてのデスクトップ環境に実装する必要があります。

そのような問題を修正する多くの可能性がありますが、Linuxディストリビューションに依存しています。

  1. 幸運なことに、ドライバー固有のスクロール感度があります。スクロール変数を使用してすべての入力を検索して確認します。

    xinputリスト| カット-f2 | cut -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput list-props '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-props '{}') "
    特定の変数をによって設定します。ここで、デバイス名と設定名を指定できます。xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. 一般的な修正がされrepatching libinputコードをし、再構築します

  3. X11でudevadm / evdevインターフェースにロールバックしてから、X11変数MOUSE_WHEEL_CLICK_ANGLEを試すことができます。

  4. 最後の項目の参照からimwheel、乗算値でマウススクロールクリックをエミュレートするために使用できます。

    # Should use imwheel --kill --buttons "4 5" to restart imwheel,
    # if the mouse has back/forward buttons, otherwhise imwheel --kill is enough.
    # imwheel must be set to autostart in your DE tools.
    #Edit ~/.imwheelrc to include, where '3' is a multiplier
    ".*"
    None,      Up,   Button4, 3
    None,      Down, Button5, 3
    Control_L, Up,   Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
    
  5. Chrome SmoothScrollFirefox SmoothWheel refなど、マウスホイールの感度には特定のアプリケーション設定があります。


Libinputの移行は多くの点でUXの退行であり、そのほとんどすべてがハードウェアの動作をユーザーが制御することになります...これが発生しているプラ​​ットフォームを考えると、残念です。
ダグラスギャスケル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.