Có hai vấn đề riêng biệt ở đây và tôi sẽ cố gắng giải quyết cả hai.
Đầu tiên là làm thế nào để trích dẫn chính xác một lệnh trong .xbindkeysrc
.
Tất cả bạn phải làm là nhận một lệnh làm việc trong bash
, sau đó đặt dấu ngoặc kép xung quanh nó.
Ví dụ: đối với một lệnh có khoảng trắng trong đó, bạn phải chạy
"/home/user/My Programs/progname"
hoặc là
/home/user/My\ Programs/progname
trong bash
.
Có nghĩa là bạn cần
""/home/user/My Programs/progname""
hoặc là
"/home/user/My\ Programs/progname"
trong bạn .xbindkeysrc
.
Về mặt kỹ thuật những gì đang xảy ra là xbindkey loại bỏ cặp dấu ngoặc kép ngoài cùng, sau đó chạy chuỗi còn lại bằng cách sử dụng sh -c
.
Trong ví dụ của bạn, lệnh
pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'
hoạt động tốt trong bash, vì vậy tôi nghĩ rằng vấn đề là ở nơi khác.
Hãy thử chạy xbindkeys
với -v
tùy chọn, mà làm cho xbindkeys
chạy ở nền trước, do đó bạn có thể thấy bất kỳ lỗi nào trên thiết bị đầu cuối của mình.
Trong trường hợp của tôi, nó cho thấy nguyên nhân cơ bản không phải là trích dẫn xấu, nhưng pacmd
báo lỗi
...
No PulseAudio daemon running, or not running as session daemon.
nhưng nếu bạn có PulseAudio hoạt động, tôi nghĩ bạn cần thay đổi pacmd
đến pactl
, bởi vì trang người đàn ông nói rằng pacmd
không lấy đối số và một số ví dụ khác trên chương trình web bằng cách sử dụng pactl
vì mục đích này.