アイドル状態のときにXorgでマウス(タッチパッドではありません!)を無効にする

アイドル状態のときにXorgでマウス(タッチパッドではありません!)を無効にする

私は熱心なキーボードユーザーですが、まだ時々マウスが必要です。手の動きを最小限に抑えるために、マウスをキーボードの下に置きます。 (しかし、マウスをこのように使用すると、手はより自然になります。)

私は現在使用しています整えるマウスを使用しないときは、ポインタを隠します。残念ながら、入力中に時々スワイプしてポインタが再び表示されることがあります。これにより、ポインタが別のウィンドウの上に移動し、現在のウィンドウからフォーカスが遠くなります。 (私は混乱しているので、このオプションを変更することはできません。)

私は現在、特定のアイドル時間が過ぎるとポインタを隠すことができるだけでなく、マウスを完全に無効にする可能性を探しています。マウスボタンをクリックするかマウスホイールを使用すると、マウスが再びアクティブになります。

答え1

最初にすべきことはマウスをオフにすることですが、Xでのみ可能です。このために我々はxinput

コンピュータ(Xサーバー)に接続されている入力デバイスを検索する必要があります。

pbm@tauri ~ $ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech USB Mouse                          id=10   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     [...]

私たちが使用する必要があるデバイスはA4Tech USB Mouseですid=10。次に、デバイスのプロパティを確認する必要があります。

pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
       Device Enabled (121):   1
       [....]

デバイスをシャットダウンするには、プロパティを変更する必要がありますDevice Enabled

xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

開いてみてください:

xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1

以下は自動化することです... ;) この例では、キーボードショートカットでマウスを無効にし、マウスの左 + 右ボタンを押して有効にします。

この目的のために私達は利用できますモバイル知識ベース- Xサーバーの外部で動作するキーボードショートカットデーモンです(しかし排他的なものではありません)。

まず、actkbd:の空の構成ファイルを生成する必要がありますtouch /etc/actkbd.conf。以下は、コンピュータに接続されているデバイスを検索することです。

pbm@tauri ~ $ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3 
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5 
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10

[...]

このセクションで最も興味深いのは、キーボードとマウスデバイスの名前とハンドラです。

まず、キーボードショートカットでマウスをオフにするので、キーIDを見つける必要があります。

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `

キーIDが何であるかを知ったら、それを設定ファイル(/etc/actkbd.conf)に入力する必要があります。

29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

テストするにはactkbdデーモンモードで実行する必要があります。

pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D

同じ方法で「open」イベントを処理する必要があります。

  1. マウスデバイスハンドラを確認してください。
  2. マウスの左 + 右ボタンのキーコードを確認するには、次のコマンドを使用します。actkbd
  3. それを入れてactkbd.conf
  4. actkbdデーモンを実行してマウス入力デバイスを監視する

デーモンの実行は、環境のinitスクリプトまたは自動実行スクリプトとして実装できます。

マウスを自動的にオフにするには、入力デバイス(cat /dev/input/event5)を監視し、入力がないときにマウスをオフにします。

私の簡単な紹介が役立つことを願っています... ;)

答え2

試してみましたか?「ポインタキャプチャ」Gnomeパネルアプレット

マウスポインタを画面領域に固定して、ポインティングデバイスを他のタスクに使用できます。たとえば、この機能を使用すると、電動チェアユーザーが単一の電動チェアジョイスティックを使用して電動チェアとマウスポインタを制御できます。

ポインタキャプチャパネルアプレットは、決定的な方法でポインタをドロップするまで、ユーザがポインタをロックできる領域をパネルに作成します。

ポインタキャプチャパネルアプレットは、GNOMEデスクトップメニューバー/システムパネルを右クリックして[パネルに追加]を選択し、ポインタキャプチャを選択して[追加]ボタンをクリックしてインストールできます。

gnome.orgの説明が明確でない場合は、マウスを入力またはクリックするとカーソルが消え、2回目のクリックなどの定義された操作が行われるまで再び表示されない領域がパネルに作成されます。必ず必要だと思いますか?

関連情報