web-dev-qa-db-ja.com

マウスの感度が高すぎる-睡眠を妨害する

8200dpiのゲーミングマウスを購入しました。ただし、Linuxで使用すると問題が発生します。 PCを使用したり、ビデオを視聴したりしない場合、テーブルに触れたり、部屋を歩いている人に反応して、マウスが短い動きをすることがあります。これらの応答によりスクリーンセーバーが終了し、ビデオプレーヤーのGUIが表示されます。これは面倒です。
それに対処するにはどうすればよいですか?

7
Barafu Albino

可能な解決策は、以下のバックグラウンドスクリプトです。

何をする

  • (任意の)アイドル時間の後、スクリプトはマウスを無効にし、マウスを使って何をしてもマウスが反応しないようにします。私はこれを比較的短く設定するので、間に障害が発生する可能性はほとんどありません。
  • ただし、単純なキーストローク(任意)でマウスが再び有効になります。

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

使い方

  1. スクリプトにはxprintidleが必要です。

    Sudo apt-get install xprintidle
    
  2. スクリプトを空のファイルにコピーし、mouse_toosensitive.pyとして保存します

  3. ターミナルで実行して、マウスのデバイス(数値、整数)を見つけます。

    xinput list
    

    スクリプトのヘッドセクションで、デバイス番号と目的のアイドル時間の両方を設定します(スクリプトの説明を参照)。

  4. 次のコマンドを使用して、ターミナルウィンドウから実行してテスト実行します。

    python3 /path/to/mouse_toosensitive.py
    
  5. すべてが正常に機能する場合は、スタートアップアプリケーションに追加します。[ダッシュ]> [スタートアップアプリケーション]> [コマンドを追加]:

    /bin/bash -c "sleep 15 && python3 /path/to/mouse_toosensitive.py"
    
5
Jacob Vlijm

xscreensaverを使用している場合、-- pointerHysteresis にぴったり収まる構成パラメーターがあります。

マウスが1秒以内にこれよりも多くのピクセルを移動する場合は、それを無視します(「アクティビティ」と見なさないでください)。デスク。デフォルト:10ピクセル。

私が試みる別の解決策は、不要な動きを最小限に抑えることができるニースシリコンマウスパッドを購入することです。

2

もちろん、次のようなマウスコントロールを既に実験しているはずです。

xset mouse

$ xset mouse [speed] [threshold]

そして

入力デバイス番号を見つける

$ xinput
$ xinput --set-prop 9 'Device Accel Constant Deceleration' 3

使用可能な値を試しても解決しない場合は、マウスパッドをより多くのドラッグがあるサーフェスに変更してみてください。言い換えれば、その能力のさまざまな感度のために異なるタイプのマウスパッドで実験してください。

2
L. D. James

マウスの背面の下にインクペンを置き、光学センサーを移動に反応する距離以上に持ち上げ、マウスを再び使用する場合はインクペンを取り外します。

0
Alan P.