Ejecutar script desde la configuración de i3

Ejecutar script desde la configuración de i3

Pregunta:

Estoy usando i3-wm y tengo Mod3 funcionando como tecla de acceso rápido. Tengo lo siguiente en ./config/i3/config:

#This command works
  bindsym Mod3+f exec "firefox" 

#This doesn't work nor do my other scripts
  bindsym Mod3+w exec "openBrowser" 

Ambos comandos funcionan bien cuando los ejecuto desde bash, pero solo el comando 'firefox' se ejecuta con la tecla de acceso rápido. Ejecutar mi propio script no funciona.

Detalles adicionales:

openBrowser es un script /opt/bin/que se encuentra en mi camino. También intenté hacer:

#This command works
  bindsym Mod3+f exec /opt/bin/openBrowser

También probé otros scripts, ninguno de los cuales funciona cuando los invoca i3. Por lo tanto, he determinado que no es un problema con el guión.

También noté que cuando estoy en bash, si hago Mod3+w, mi cursor parpadea, mientras que si hago Mod3+[cualquier tecla no configurada] la tecla escribe su valor en la pantalla. Entonces parece que i3 al menos está intentando ejecutar la función.

Respuesta1

Intenté duplicar el problema que usted describe. Lo que encontré es que tenía dos archivos de configuración de i3 al mismo tiempo. ~/.config/i3/configy ~/.i3/config.

En mi caso, la edición ~/.config/i3/configno tuvo ningún efecto porque parece que ~/.i3/configla supera.

Es una posibilidad remota, pero vea si tal vez tiene más de un archivo de configuración y posiblemente esté editando el incorrecto.

Respuesta2

El execcomando inicia una aplicación pasando el comando que usted especifica a un shell. Esto implica que sus programas serán buscados en su $PATH. El valor predeterminado $PATHgeneralmente no incluye /opt/bin, por ejemplo mi es:

andreatsh@debian:~ 11:28 > echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Intente agregar /opt/bina su ruta, ingrese su ~/.bashrc:

export PATH=$PATH:/opt

Hice algunas pruebas y esto me resuelve el problema. Ahora:

bindsym Mod3+w exec somescript
bindsym Mod3+w exec /opt/bin/somescript

tienen el mismo comportamiento y el script funciona.

información relacionada