Hay dos problemas separados aquí, y trataré de abordar ambos.
El primero es cómo citar correctamente un comando en .xbindkeysrc.
Todo lo que tiene que hacer es tomar un comando que funcione bashy luego poner comillas dobles a su alrededor.
Por ejemplo, para un comando con un espacio en él, tendría que ejecutar
"/home/user/My Programs/progname"
o
/home/user/My\ Programs/progname
en bash.
Lo que significa que necesitas
""/home/user/My Programs/progname""
o
"/home/user/My\ Programs/progname"
en su .xbindkeysrc.
Técnicamente, lo que sucede es que xbindkeys elimina el par más externo de comillas dobles, luego ejecuta la cadena restante con sh -c.
En su ejemplo, el comando
pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'
funciona bien en bash, así que creo que el problema está en otra parte.
Intente ejecutar xbindkeyscon la -vopción, que hace que se xbindkeysejecute en primer plano, para que pueda ver cualquier error en su terminal.
En mi caso, muestra que la causa subyacente no es una mala cita, sino pacmdun error
...
No PulseAudio daemon running, or not running as session daemon.
pero si tiene PulseAudio funcionando, creo que necesita cambiar pacmda pactl, porque la página del manual dice que pacmdno toma argumentos, y varios otros ejemplos en la web muestran pactlpara este propósito.
Como solución alternativa, cree un script de shell ~ / bin / mychangevolume con los comandos sin escape como aparecerían en la línea de comandos. Algo como
Luego llame a este script desde .xbindkeysrc
fuente