8200dpiのゲーミングマウスを購入しました。しかし、Linuxで使用すると問題が発生します。パソコンを使わないときや動画を見ないときは、テーブルに触れたり、部屋の中を歩いている人に反応して、マウスが短い動きをすることがあります。これらの応答によりスクリーンセーバーが終了し、ビデオプレーヤーのGUIが表示されます。これは面倒です。
それに対抗するにはどうすればよいですか?
承認された回答:
考えられる解決策は、以下のバックグラウンドスクリプトです。
機能
- (任意の)アイドル時間の後、スクリプトはマウスを無効にし、マウスを使用する操作に反応しなくなります。これは比較的短く設定するので、間に邪魔になる可能性はほとんどありません。
- ただし、単純なキーストローク(任意)でマウスが再び有効になります。
xprintidle
以降 (画面上で発生することではなく)マウスまたはキーボードのイベントによってトリガーされる場合、スクリプトは、たとえば、映画を再生します。
そうすれば、コントロールやコンピューターに簡単にアクセスしながら、不要なマウス操作によって何かが中断されることを恐れる必要がなくなります。
いつものように(そしてバックグラウンドスクリプトではそうあるべきですが)、スクリプトは実質的にリソースを消費しないように書かれています。
スクリプト
#!/usr/bin/env python3
import subprocess
import time
# ---
# set your device (mouse), as found from the command: xinput list
device = 8
# set the desired idle time (in seconds) to disable the mouse
set_idletime = 5
# ---
# don't change anything below
idle1 = 0
while True:
time.sleep(1)
idle2 = int(int(subprocess.check_output(["xprintidle"]).decode("utf-8").strip())/1000)
if all([idle1 <= set_idletime, idle2 > set_idletime]):
subprocess.Popen(["xinput", "set-prop", str(device), "Device Enabled", "0"])
elif idle2 < idle1:
subprocess.Popen(["xinput", "set-prop", str(device), "Device Enabled", "1"])
idle1 = idle2
使用方法
-
スクリプトには
xprintidle
が必要です :sudo apt-get install xprintidle
-
スクリプトを空のファイルにコピーし、
mouse_toosensitive.py
として保存します -
ターミナルで実行して、マウスのデバイス(数値、整数)を確認します:
xinput list
スクリプトのヘッドセクションで、デバイス番号と目的のアイドル時間の両方を設定します(スクリプトの説明を参照)。
-
次のコマンドを使用してターミナルウィンドウから実行し、テスト実行します。
python3 /path/to/mouse_toosensitive.py
-
すべてが正常に機能する場合は、スタートアップアプリケーションに追加します。ダッシュ>スタートアップアプリケーション>コマンドを追加します:
/bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"