Hier gibt es zwei verschiedene Probleme, und ich werde versuchen, beide anzusprechen.
Der erste ist, wie man einen Befehl korrekt in zitiert .xbindkeysrc
.
Alles, was Sie tun müssen, ist, einen Befehl anzunehmen, der funktioniert bash
, und ihn dann in doppelte Anführungszeichen zu setzen.
Für einen Befehl mit einem Leerzeichen müssten Sie beispielsweise ausführen
"/home/user/My Programs/progname"
oder
/home/user/My\ Programs/progname
in bash
.
Was bedeutet, dass Sie brauchen
""/home/user/My Programs/progname""
oder
"/home/user/My\ Programs/progname"
in deiner .xbindkeysrc
.
Technisch passiert, dass xbindkeys das äußerste Paar doppelter Anführungszeichen entfernt und dann die verbleibende Zeichenfolge mit verwendet sh -c
.
In Ihrem Beispiel der Befehl
pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/'
funktioniert gut in bash, also denke ich, das problem ist woanders.
Versuchen Sie, xbindkeys
die -v
Option xbindkeys
auszuführen, die im Vordergrund ausgeführt wird, damit Sie Fehler auf Ihrem Terminal sehen können.
In meinem Fall zeigt es, dass die zugrunde liegende Ursache keine schlechte Quotierung ist, sondern pacmd
einen Fehler angibt
... No PulseAudio daemon running, or not running as session daemon.
aber wenn Sie Pulseaudio arbeiten, ich glaube, Sie ändern müssen pacmd
zu pactl
, weil der Mann Seite sagt, dass pacmd
keine Argumente übernimmt, und einige andere Beispiele auf der Web - Show mit pactl
für diesen Zweck.