먼저 몇 가지 배경. 우분투 18.04를 사용합니다. Bluetooth 주변 장치 마우스/키보드를 사용하고 일단 연결되면 버튼 바인딩을 자동으로 다시 매핑하는 스크립트를 실행해야 합니다.
udevadm monitor --environment
장치가 연결될 때 발생하는 이벤트를 찾고 udevadm info -a <device path>
규칙을 만들 수 있는 속성을 찾는 데 사용합니다 . 출력은 다음과 같습니다.
KERNEL=="input73"
SUBSYSTEM=="input"
DRIVER==""
ATTR{name}=="BT Mouse"
ATTR{phys}=="e8:9c:67:ea:9c:36"
ATTR{properties}=="0"
ATTR{uniq}=="01:ac:78:f6:89:af"
그래서 나는 규칙을 만들었습니다 /etc/udev/99-btmouse.rules
.
ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="BT Mouse", RUN="/bin/bash /usr/local/bin/xsessionrc.sh"
나는 사용하여 확인했다
udevadm test <device path>
규칙이 올바른 형식인지 확인합니다. 산출:
Reading rules file: /etc/udev/rules.d/99-vrpark.rules
rules contain 786432 bytes tokens (65536 * 12 bytes), 50615 bytes strings
38504 strings (296742 bytes), 32602 de-duplicated (252030 bytes), 5903 trie nodes used
...
RUN '/bin/bash /usr/local/bin/xsessionrc.sh' /etc/udev/rules.d/99-vrpark.rules:1
ACTION=add
DEVPATH=<device path>
EV=17
ID_BUS=bluetooth
ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_5_1_0
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_PATH=pci-0000:00:14.0-usb-0:5:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_5_1_0
KEY=1f0000 0 0 0 0
MODALIAS=input:b0005v05ACp3232e0001-e0,1,2,4,k110,111,112,113,114,r0,1,8,B,am4,lsfw
MSC=10
NAME="BT Mouse"
PHYS="e8:9c:67:ea:9c:36"
PRODUCT=5/5ac/3232/1
PROP=0
REL=903
SUBSYSTEM=input
TAGS=:seat:
UNIQ="01:ac:78:f6:89:af"
USEC_INITIALIZED=8737148529
run: '/bin/bash /usr/local/bin/xsessionrc.sh'
Unload module index
Unloaded link configuration context.
규칙은 괜찮을 것 같지만 스크립트가 실행되지 않습니다. xsessionrc.sh는 다음과 같습니다:
#!/bin/bash
# Map buttons
konsole --noclose -e xinput set-button-map "BT Mouse" 11 12 13 14
스크립트 자체는 나에게 잘 작동합니다. 스크립트를 실행하기 위해 내 규칙을 얻는 방법에 대해 누군가 나에게 올바른 방향을 알려줄 수 있습니까?