libinputを使ってスクロール速度を変更するには?

libinputを使ってスクロール速度を変更するには?

私はArch Linux、Xfce 4.12で動作しています。

マウスホイールのスクロールが遅すぎるため、スクロール「チック」あたりの行数を増やしたいです。Evdev Scrolling Distanceを使用して設定すると、これを実行できることがわかりましたが、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                                                  

スクロール速度を変更するには?

答え1

ライブラリ入力各スクロールホイールには何の種類もありません。N「線/度」の概念が一般的な側面として、設定は現在一部のデバイスによって異なります。ロジクールEvdev Scrolling Distance (278)「古い」Evdevドライバに付属している可能性があるパラメータがあります。

これは次のように扱われます。返品一般的なツールキットに設定可能なマウススクロール感度を含めることは、最初はユーザーエクスペリエンスの面で拒否されましたが、今はそうです。フルリクエスト将来のバージョンでは、すべてのデスクトップ環境で関数呼び出しを実装する必要があるかもしれません。

この種の問題を解決する可能性はたくさんありますが、Linuxディストリビューションによって異なります。

  1. 幸いドライバーごとのスクロール感度があります。スクロール変数を使用してすべての入力を検索し、それを確認します。

    x入力リスト|cut-f2 |cut-f2-d'='|
                xargs -d $'\n' -I'{}' sh -c "xinput list-props'{}' | grep -iq スクロール &&\
                                        (echo リスト開発者 ID '{}'; xinput list-props '{}')"
    特定の変数を設定してxinput --set-prop <ID> <SUB-ID> <values><ID>デバイス名にすることができ、<SUB-ID>設定名です。

  2. 一般的な修正は再パッチ済みlibinputコードと再建

  3. udevadm/evdev インターフェイスの X11 ロールバックを使用してから、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のスムーズなスクロールそしてFirefoxスムースホイール 引用する

答え2

現在、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

答え3

次の方法を使用すると、スクロール「ステップサイズ」を小さくして全体的にスクロール速度を遅くすることができます。

xinput --set-prop "YOUR TOUCHPAD" "libinput Scrolling Pixel Distance" YOUR_SPEED

Option "ScrollPixelDistance" "YOUR_SPEED"永久に作成するには、トラックパッドのxorg confに追加してください。

詳細については、次の記事を参照してください。

https://man.archlinux.org/man/libinput.4#SCROLL_PIXEL_DISTANCE

関連情報