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 bash
y 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 xbindkeys
con la -v
opción, que hace que se xbindkeys
ejecute 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 pacmd
un error
...
No PulseAudio daemon running, or not running as session daemon.
pero si tiene PulseAudio funcionando, creo que necesita cambiar pacmd
a pactl
, porque la página del manual dice que pacmd
no toma argumentos, y varios otros ejemplos en la web muestran pactl
para 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