外部キーボード/マウスが接続されているときにxinputを使用してノートブックキーボード/マウスを自動的に無効にする方法は?

外部キーボード/マウスが接続されているときにxinputを使用してノートブックキーボード/マウスを自動的に無効にする方法は?

マウスとキーボードを無効にするために使用できることを知っていますxinput。通常、マウスとキーボードを接続するたびに、次の3つのコマンドを入力します。

xinput float 'AT Translated Set 2 keyboard'

xinput float 'Ideapad extra buttons'

xinput float 'SynPS Synaptics Touchpad'

私は通常名前の代わりにid値を使用しますが、あなたは私のドリフトを理解しています。

もしそうなら、キーボードが接続されるたびに私のコンピュータが上記の2つのコマンドを実行し、マウスが接続されているときに私のコンピュータが次のコマンドを実行するようにそれを自動化する方法はありますか? reconnectを実行してマウス/キーボードを取り外したときにデバイスを再度有効にするのと同じですxinput

答え1

私はこれをやったことはありませんが、他のSEサイトに基づいて助けをしようとします。

基本的にフォローこの回答udevファイルを変更してスクリプトを提供することで起動できるはずです。

/etc/udev/rules.d/00-usb-keyboard.rules

ATTRS{idVendor}=="09da", ATTRS{idProduct}=="0260", OWNER="YOURUSERNAME"
ACTION=="add", RUN+="/home/YOURUSERNAME/.bin/usb-keyboard-in_udev"
ACTION=="remove", RUN+="/home/YOURUSERNAME/.bin/usb-keyboard-out_udev"

/home/ユーザー名/.bin/usb-keyboard-in_udev

#!/bin/bash
/home/YOURUSERNAME/.bin/usb-keyboard-in &

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/YOURUSERNAME/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
YOUR_COMMAND_HERE

/home/ユーザー名/.bin/usb-keyboard-out_udev

#!/bin/bash
/home/YOURUSERNAME/.bin/usb-keyboard-out &

/home/ユーザー名/.bin/usb-keyboard-out

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/YOURUSERNAME/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
YOUR_COMMAND_HERE

これらすべてのスクリプトには実行権限()が必要ですchmod +x

答えに基づいて:

USBキーボードベンダーと製品IDは、lsusbコマンドの出力に応じて変更する必要があります(たとえば、USBキーボードのlsusb出力は、Bus 001 Device 006:ID 09da:0260 A4 Tech Co.、Ltd)。

関連情報