
저는 이것에 익숙하지 않으며 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
오직 반대만 볼 수 있는 환경 변수를 일치시킵니다. 다음 세 줄에서는 환경 변수에 값을 할당합니다. 마찬가지로 규칙이 적용되면 실행된 명령으로만 볼 수 있습니다.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 매니아들에게 도움이 되기를 바랍니다.