Tôi đã tạo một kịch bản để xoay máy tính bảng Wacom Bamboo của mình 180 độ. Nó hoạt động tốt khi tôi thực thi nó như chính tôi (người dùng) hoặc root, nhưng khi bắt đầu từ udev
(tức là khi cắm máy tính bảng vào một usb
cổng) thì nó sẽ không hoạt động.
Quy tắc của Udev :
SUBSYSTEMS=="usb", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ATTRS{manufacturer}=="Wacom Co.,Ltd.", RUN+="/usr/local/bin/red-wacom-bamboo.sh"
Tập lệnh Wacom /usr/local/bin/red-wacom-blyn.sh :
#!/usr/bin/env bash
exec > /tmp/red-wacom.log
exec 2>&1
# I had to do this otherwise xsetwacom would say:
# "Failed to open Display ."
# Is there a way to do this without using my username?
export XAUTHORITY=/home/redsandro/.Xauthority
export DISPLAY=:0
/usr/bin/xsetwacom set "Wacom Bamboo 2FG 4x5 Pen stylus" Rotate half
/usr/bin/xsetwacom set "Wacom Bamboo 2FG 4x5 Finger touch" Rotate half
Kết quả trong /tmp/red-wacom.log :
Cannot find device 'Wacom Bamboo 2FG 4x5 Pen stylus'.
Cannot find device 'Wacom Bamboo 2FG 4x5 Finger touch'.
(Lưu ý rằng lỗi trong nhật ký có nghĩa là chính quy tắc udev không phải là vấn đề.)
Tôi đã thử thiết lập một sleep
trong kịch bản, có thể nó cần một vài ms. Nhưng điều đó không có ích.
- Tại sao tập lệnh này không hoạt động khi được gọi trực tiếp từ
udev
?- Làm thế nào để tôi sửa lỗi này?
- Tôi có thể gọi một tập lệnh từ
udev
một người dùng cụ thể không? (ví dụ: đồng bộ hóa/home
với ổ đĩa sao lưu ngoài - / home / chỉ hiển thị cho người dùng của nó)
55
? Tôi luôn sử dụng ý tưởng rằng "vô số mục được xử lý sau cùng, vì vậy tốt nhất là bỏ qua số cho mục nhập tùy chỉnh."