タッチパッドを自動的に無効化/有効化するスクリプトを作成しようとしてbash
いi3wm
ますxinput
。スクリプトのアイデアは、異なるコンピュータ間で簡単に転送できるようにすることであるため、タッチパッドのデバイスIDを自動的に抽出しようとしています。
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DLL07BE:01 06CB:7A13 Mouse id=14 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=22 [slave pointer (2)]
⎜ ↳ DLL07BE:01 06CB:7A13 Touchpad id=15 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ Integrated_Webcam_HD: Integrate id=13 [slave keyboard (3)]
↳ Intel HID events id=16 [slave keyboard (3)]
↳ Intel HID 5 button array id=17 [slave keyboard (3)]
↳ Dell WMI hotkeys id=18 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=19 [slave keyboard (3)]
私はそれを実装し、私が達成した最高は次のとおりですid
。Touchpad
awk
$ xinput | awk '/Touchpad/ && /id=/ { print $6 } '
id=15
問題は、6番目の列が毎回デバイスIDではないため、最初に含む行を取得し、次の数字を印刷して最初のTouchpad
スペースid=
/タブを切り取る必要があることです。
ベストアンサー1
の場合はxinput
コマンドが必要です。装備パラメータ(たとえば--enable device
)は、デバイスの名前またはIDを使用できます。
たとえば、次の両方が同じです。
xinput --enable 'DLL07BE:01 06CB:7A13 Touchpad'
xinput --enable 15
デバイスのフルネームが事前にわからない場合は、出力を使用してxinput --list --name-only
一致する名前を見つけます。
xinput --list --name-only | grep Touchpad
xinput --enable "$(xinput --list --name-only | grep Touchpad | head -n 1)"
man 1 xinput
このオプションは、で説明されているようにデバイス--list
パラメータも受け入れます。したがって、特定の名前のIDを印刷できます。
xinput --list --id-only 'DLL07BE:01 06CB:7A13 Touchpad'
またはIDが付与された名前:
xinput --list --name-only 15