まず、いくつかの背景。 Ubuntu 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
スクリプト自体は私にとってうまくいきます。スクリプトを実行するための私のルールを取得する方法について誰かが私に正しい方向を伝えることができますか?