i3 dmenu no busca $ PATH

13

Quiero ejecutar un script de shell a ~/.local/bin/test.shtravés de dmenu. Si funciono dmenua través $mod+Dy busque la entrada test.shno pude encontrarlo.

La ruta ~/.local/binya está configurada para mi $PATHvariable en~/.profile

$ echo $PATH
/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

También eliminé ~/.cache/dmenu_runy reinicié i3. ¿Qué puedo hacer para iniciar el script de prueba a través de dmenu?

Hölderlin
fuente

Respuestas:

7

Elimine ~/.cache/dmenu_runo ~/dmenu_cache, según lo que tenga, y vuelva a iniciar sesión. Después de que su PATH se vuelva a cargar desde .profile después de iniciar sesión, dmenu debería regenerar el caché desde $ PATH. dmenu parece ser malo para renovar su propio caché, y necesita ser obligado a hacerlo a veces.

También verifique que haya habilitado el bit ejecutable para el script:

$ ls -l ~/.local/bin/test.sh
-rwxrwxrwx 1 user group 152 Jan 11 04:09 /home/user/.local/bin/test.sh
Kenneth B. Jensen
fuente
Lo siento, olvidé mencionar que ya eliminé ~/.cache/dmenu_runy reinicié el i3 pero no afecta el comportamiento de dmenu.
Hölderlin
@ Hölderlin Es importante que cierre sesión y vuelva a iniciar sesión para volver a cargarlo~/.profile
Kenneth B. Jensen
4

Yo tuve el mismo problema.

Esta publicación del foro de Arch Linux describe el problema:

Establecer $ PATH en ~ / .bashrc no garantiza que su WM / dmenu heredará este entorno.
Una pregunta más relevante es "¿Cómo iniciar sesión?" Por lo general, el entorno exportado en ~ / .bash_profile o ~ / .profile está disponible en sus aplicaciones X.
Inicie dmenu_run como lo hace normalmente, luego en dmenu, escriba
echo $PATH > /tmp/path
Entonces en una terminal, cat /tmp/pathpara ver qué es $ PATH.

En mi caso, los directorios $ PATH establecidos en mi ~/.profileno fueron recogidos por dmenu. Mi administrador de ventanas se inicia desde .xinitrc, y agrego un adicional export PATH=$PATH:/dir/of/interesten el archivo .xinitrc antes de que la exec my_wmlínea solucione el problema. Sin embargo, es un poco torpe.

Como se señaló anteriormente, tuve que eliminar el ~/.cache/dmenu_runarchivo e iniciar sesión nuevamente después de realizar el cambio para que funcione.

ishigoya
fuente
2
Para algunos intentarlo echo $SHELL > /tmp/shelltambién podría valer la pena. Pensé que el mío estaba usando, bashpero resulta que lo usó, zshasí que verificó diferentes archivos de configuración. También intenté ponerlo xinitrcy i3configurarlo, pero ninguno de los funcionó, ¡pero / etc / zprofile lo hizo! El ~ / .zshrc local no fue suficiente. /etc/profilepuede funcionar tan bien en ambos zshcomo bash.
miyalys
0

Publico el algoritmo completo:

  1. Coloque las carpetas en ~/.profileo ~/.xprofile(Crear si no existe), no en~/.bashrc
  2. rm -f ~/.cache/dmenu_run
  3. Cerrar sesión e iniciar sesión

Para depurar env vars escriba:

  1. En dmenu: echo $PATH > /tmp/path
  2. En terminal: cat /tmp/path
Rostislav Teryaev
fuente