最初に達成する必要があるのは、マウスをオフにすることですが、これは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
次は、自動的に実行することです;;)この例では、キーボードショートカットでマウスを無効にし、マウスの左ボタンと右ボタンを押すことで有効にします。
このために、actkbd -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
同様に、「オン」イベントを処理する必要があります。
- マウスデバイスのハンドラーを確認する
- を使用して左+右マウスボタンのキーコードを確認する
actkbd
- に入れて
actkbd.conf
- actkbdデーモンを実行して、マウス入力デバイスを監視します
デーモンの実行は、環境内のinitスクリプトまたは自動実行スクリプトとして実現できます。
マウスを自動的にオフにするために、入力デバイス(cat /dev/input/event5
)を監視し、入力がないときにオフにすることができます...
私の短いイントロがあなたに役立つことを願っています...;)
actkbd
!質問を投稿した後、私はすでにを使用することを考え出していましたがxinput
、マウスボタンを押してマウスを再度有効にする方法がわかりませんでした。