web-dev-qa-db-ja.com

UbuntuでMicrosoftマウスのスクロール速度を修正する方法

誰かが私と同じ問題に遭遇した場合に備えて。

WindowsからUbuntuに(デュアルブートで)切り替えると、Microsoftワイヤレスマウスのスクロールホイールがおかしくなります!それは完全に過敏です。

プロンプトを開く

デバイスをリストし、修正するデバイスのIDに注意します。2つあれば、問題ありません。

$ xinput list

私は9歳と10歳でした

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0  id=9    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0  id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0  id=8    [slave  keyboard (3)]

これを行います、xはあなたのIDです

$ xinput list-props x | grep 'Scrolling Distance'
Evdev Scrolling Distance (255): 1, 1, 1

最後に、トリックはあなたの理想的な値を見つけることです、私のものは10、10、10でした

$ xinput set-prop x 'Evdev Scrolling Distance' 10, 10, 10

変更を永続的に設定するには( source ):

ディレクトリ内の隠しファイルは「.profile」(Ctrl + Hで隠しファイルを表示)をダブルクリックして開きます。最後に前のコマンドをコピーして貼り付けます。それでおしまい!

追伸すべてのユーザーに同じコマンドを適用するには、ファイル/ etc/profile(隠しファイルではない)を編集します。

これで準備完了です!

ワイヤレスマウスのスクロール速度の問題を解決するソリューション:

Linuxモジュールを有効にするときの順序は非常に重要です。

次を含む/etc/modprobe.d/mshid.confという名前のファイルを追加します。

install hid-generic /sbin/modprobe hid ; /sbin/modprobe usbhid ; /sbin/modprobe -i hid-generic ; true

これにより、正しいロード順序が保証され、スクロール速度が正常になります。これは、システムの電源が入っているとき、トランシーバを取り外して追加するときにバックグラウンドで発生することです。これはUbuntu以外のディストリビューションで機能します。これを機能させるには再起動が必要です。

2
Vlad Tudorache

ハックですが、USBトランシーバーをアンプラグ/リプラグすると、Ubuntuで解像度が適切に設定され、非常に合理的なスクロール速度が得られます。私はこの数年、すべてのUbuntuリリースでこのトリックを使用しています。マシンを再起動することはめったにないので、それが私にとって最も簡単なソリューションです:)

おそらく誰かがこれがなぜ機能するのか説明できるでしょう。

2
Michael Sandman

以前の回答で100%カバーされていないユースケースがあるため、上記の受け入れられたソリューションから借用した次のスクリプトを共有したかったのです。これを行うにははるかにエレガントな方法があると確信していますが、これはうまくいきました。

#!/bin/sh

while true
do
xinput set-prop `xinput list|grep Nano|grep pointer|awk '{ print $8 }'|tr -d 'id='|sed -n 2p` 'Evdev Scrolling Distance' 10, 10, 10
sleep 5
done

スクリプトは、5秒ごとにxinputソリューションを実装し、2番目のポインター入力を探します(これは、常に制御されたスクロール速度です)。プロパティ番号が常に同じではないため、このコマンドを使用する必要がありました-ただし、リストの2番目は常に2番目でした。

ユースケース: USBスイッチャーを使用して複数のコンピューターを制御する場合、少なくとも1つはLinuxで、もう1つはWindowsです-LinuxからWindowsにLinuxに切り替えると、スクロール速度が変わります持続しない(xinput、.profile、またはmodprobeソリューションを使用しても)。

また、.profileソリューションには問題があります。トランシーバーを取り外してから再起動すると、スクロール速度が非常に遅くなります。これは、適切なスクロール速度を取り、中にあるものによって縮小するためですあなたのプロフィール。

上記で共有したスクリプトは、USBスイッチャーを使用しているときはいつでもNohupを介して実行でき、使用していないときは強制終了できます。繰り返しますが、エレガントではありませんが、影響は小さく、100%動作します。

0
Ben McMahon