
私はこれに慣れておらず、udev
USBマウスが接続されているときにタッチパッドを無効にするルールを作成したいと思います。
私が思いついた内容は次のとおりです(主に耳で)。
ACTION=="add", SUBSYSTEM=="input", ENV{ID_MODEL}=="USB_Mouse", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/nikitautiu/.Xauthority", ENV{REMOVE_CMD}="/usr/bin/synclient TouchpadOff=0", RUN+="/usr/bin/synclient TouchpadOff=1"
それにもかかわらず、所望の効果は生じなかった。コマンドは問題ないようですが、USBマウスが接続されているとルールは実行されません。
答え1
あなたのルールがなぜそんなに複雑なのか理解できませんか?特にこの部分は
ENV{ID_MODEL}=="USB_Mouse",\
ENV{DISPLAY}=":0",\
ENV{XAUTHORITY}="/home/nikitautiu/.Xauthority",\
ENV{REMOVE_CMD}="/usr/bin/synclient TouchpadOff=0"
最初の行では、ID_MODEL
反対だけが見える環境変数を照合します。次の3行は環境変数に値を割り当てます。同様に、ルールが適用されると、実行されたコマンドとしてのみ表示できます。udev
USB_Mouse
udev
synclient
このルールは決して適用されないと確信しています(ログファイルを解析してそれを確認できます)。これは、以前に環境で設定していない限り、変数にアクセスできる内容がudev
ない可能性が高いためです。ID_MODEL
USB_Mouse
ID_MODEL
udev
ほとんどの場合、十分なマウスの動作、ベンダーID、製品IDを一致させることをお勧めします。それからあなたのルールは次のようになります
ACTION=="add", ATTRS{idVendor}=="<idVendor>", ATTRS{idProduct}=="<idProduct>", RUN+="/usr/bin/synclient TouchpadOff=1"
出力を解析して合計を<idVendor>
取得できます。<idProduct>
lsusb -v
古典的な形式が与えられた16進値を受け入れることを覚えていません0xffff
。私はいつも0x
ルールの後半を受け入れます。
答え2
許可された回答が私のシステムでは機能しないため、以下は両方udev
に適用される規則です。gnome/gdm v. 3.16.2
udev/systemd v. 226
ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", \
ATTRS{bInterfaceSubClass}=="01", ENV{XAUTHORITY}="/run/user/1000/gdm/Xauthority", \
ENV{DISPLAY}=":0", ENV{REMOVE_CMD}="/usr/bin/xinput --enable 'SynPS/2 Synaptics TouchPad'", \
RUN+="/usr/bin/xinput --disable 'SynPS/2 Synaptics TouchPad'"
ENV{REMOVE_CMD}
デバイスを削除するために使用されるコマンド。
SynPS/2 Synaptics TouchPad
報告されたタッチパッドデバイスの名前xinput
。私のルールなどで使用されている項目は
ユーザーと一致する必要があります。行の末尾にバックスラッシュが必要です。それ以外の場合、ルールは複数行にまたがることはできません。ラインが好きなら:UID
ENV{XAUTHORITY}
1000
ID
udev
ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/run/user/1000/gdm/Xauthority", ENV{REMOVE_CMD}="/usr/bin/xinput --enable 'SynPS/2 Synaptics TouchPad'", RUN+="/usr/bin/xinput --disable 'SynPS/2 Synaptics TouchPad'"
答え3
KDE(プラズマ、sddm)に適した他の答えを提供してください。
/etc/udev/rules.d/61-touchpadoff.rules
次の内容でルールファイル名を追加しました。
ACTION!="add", GOTO="touchpadoff_end"
KERNEL=="mouse[0-9]", SUBSYSTEM=="input", SUBSYSTEMS=="usb", ENV{DISPLAY}=":0", ENV{REMOVE_CMD}="/usr/bin/xinput --enable 'Elan TouchPad'", RUN+="/usr/bin/xinput --disable 'Elan TouchPad'"
LABEL="touchpadoff_end"
タッチパッドハードウェアの名前を変更する必要があります。これを表示するには、次のコマンドを実行します。% xinput --list
これがKDE愛好家に役立つことを願っています。