Tidak ada jawaban di sini yang berfungsi untuk saya, dan opsi yang ingin saya tetapkan tidak dapat ditentukan dalam xorg.conf
:
$ xsetwacom -x get 'Wacom Intuos PT S Pad pad' button 1
Button: Actions are not supported by xorg.conf. Try shell format (-s) instead.
Saya akhirnya harus memulai skrip dengan layanan systemd yang dipicu oleh aturan udev:
$ cat /etc/udev/rules.d/99-wacom.rules
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="056a", ENV{ID_MODEL_ID}=="0302", TAG+="systemd"
Vendor dan id model dapat ditemukan berjalan lsusb
dengan perangkat terhubung.
Untuk memuat ulang aturan udev:
$ udevadm control --reload-rules
$ udevadm trigger
The TAG+="systemd"
memungkinkan layanan systemd lainnya (sistem atau pengguna) tergantung pada perangkat (register sebagai unit perangkat, lihat man systemd.device
). Untuk menemukan nama unit perangkat dijalankan udevadm monitor
dan sambungkan ke tablet. saya mendapat
UDEV [2918.098423] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
...
Untuk memeriksa apakah systemd mengambilnya, lakukan
$ systemctl status /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/
● sys-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.3.device - CTH-480 [Intuos Pen & Touch (S)]
Loaded: loaded
Active: active (plugged) since Mon 2016-06-20 11:14:20 UYT; 29min ago
Device: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3
Jadi unit perangkat sys-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.3.device
, dan dapat digunakan dalam unit layanan systemd
$ cat .config/systemd/user/wacom.service
[Service]
Type=forking
Restart=no
ExecStart=/path/to/wacom-pad-button-setup
[Install]
WantedBy=default.target
WantedBy=sys-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.1.device
WantedBy=sys-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.2.device
WantedBy=sys-devices-pci0000:00-0000:00:1d.0-usb2-2\x2d1-2\x2d1.3.device
Ada satu unit perangkat per port usb.
Kemudian aktifkan dan muat ulang unit dengan systemctl --user enable wacom.service
dan systemctl --user daemon-reload
.
Script masih perlu sedikit tidur untuk xsetwacom untuk menemukan perangkat, dan untuk mengatur $DISPLAY
dan $XAUTHORITY
. Type=oneshot
berfungsi dengan baik ketika mencolokkannya, tetapi itu tidak berjalan jika perangkat sudah terhubung saat mem-boot komputer. Itu sebabnya saya perlu menggunakan layanan pengguna daripada sistem, dan mengapa unit juga memilikinya WantedBy=default.target
. Masalah dengan oneshot adalah ia memblokir startx. Type=forking
dan Restart=no
memberitahu systemd untuk tidak menunggu proses bercabang skrip untuk keluar, sehingga skrip kemudian dapat tidur di latar menunggu Xorg untuk memulai.
$ cat bin/wacom-pad-button-setup
#!/bin/rc
{
sleep 2
if (~ $DISPLAY ()) {
DISPLAY=:0
XAUTHORITY=/home/spelufo/.Xauthority
}
xsetwacom set 'Wacom Intuos PT S Pad pad' button 9 'button +3 -3'
xsetwacom set 'Wacom Intuos PT S Pad pad' button 8 'button +4 -4'
xsetwacom set 'Wacom Intuos PT S Pad pad' button 3 'button +1 -1'
xsetwacom set 'Wacom Intuos PT S Pad pad' button 1 'button +2 -2'
} &
55
? Saya selalu menggunakan gagasan bahwa "entri tanpa nomor diproses terakhir, jadi yang terbaik untuk melewati angka untuk entri khusus."