il menu i3 non naviga in $ PATH


13

Voglio eseguire uno script di shell ~/.local/bin/test.shtramite dmenu. Se corro dmenuvia $mod+De test.shcerco la voce non riesco a trovarla.

Il percorso ~/.local/binè già impostato sulla mia $PATHvariabile in~/.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

Ho anche rimosso ~/.cache/dmenu_rune riavviato i3. Cosa posso fare per avviare lo script di test tramite dmenu?

Risposte:


7

Elimina ~/.cache/dmenu_runo ~/dmenu_cache, a seconda di ciò che hai, e accedi nuovamente. Dopo aver ricaricato il tuo PATH da .profile dopo aver effettuato l'accesso, dmenu dovrebbe rigenerare la cache da $ PATH. dmenu sembra essere cattivo nel rinnovare la propria cache e deve essere costretto a farlo a volte.

Verifica inoltre di aver abilitato il bit eseguibile per lo script:

$ ls -l ~/.local/bin/test.sh
-rwxrwxrwx 1 user group 152 Jan 11 04:09 /home/user/.local/bin/test.sh

Siamo spiacenti, ho dimenticato di menzionare che ho già rimosso ~/.cache/dmenu_rune riavvia l'i3 ma non influisce sul comportamento di dmenu.
Hölderlin,

@ Hölderlin È importante disconnettersi e riconnettersi per ricaricare~/.profile
Kenneth B. Jensen

4

Ho avuto lo stesso problema.

Questo post sul forum di Arch Linux descrive il problema:

L'impostazione di $ PATH in ~ / .bashrc non garantisce che il tuo WM / dmenu erediti questo ambiente.
Una domanda più pertinente da porre è "Come si accede?" Di solito l'env esportato in ~ / .bash_profile o ~ / .profile è disponibile nelle tue applicazioni X.
Avvia dmenu_run come fai normalmente, quindi in dmenu, digita
echo $PATH > /tmp/path
quindi in un terminale, cat /tmp/pathper vedere cos'è $ PATH.

Nel mio caso, le directory $ PATH impostate nel mio ~/.profilenon sono state raccolte da dmenu. Il mio gestore di finestre viene avviato da .xinitrc e l'aggiunta di un ulteriore export PATH=$PATH:/dir/of/interestfile .xinitrc prima che la exec my_wmriga risolvesse il problema. È un po 'goffo però.

Come notato in precedenza, ho dovuto rimuovere il ~/.cache/dmenu_runfile e accedere nuovamente dopo aver apportato la modifica per farlo funzionare.


2
Per alcuni provare echo $SHELL > /tmp/shellpotrebbe anche valerne la pena. Pensavo che il mio fosse in uso, bashma risulta che è stato utilizzato, zshquindi ha controllato diversi file di configurazione. Ho anche provato a inserirlo xinitrce a i3configurarlo, ma nessuno di questi ha funzionato - ma / etc / zprofile ha funzionato! Il ~ / .zshrc locale non era abbastanza. /etc/profilepuò funzionare anche in entrambi zshe bash.
Miyalys,

0

Pubblico l'algoritmo completo:

  1. Inserisci env vars in ~/.profileo ~/.xprofile(Crea se non esiste), non in~/.bashrc
  2. rm -f ~/.cache/dmenu_run
  3. Esci e accedi

Per eseguire il debug di env vars digitare:

  1. Nel dmenu: echo $PATH > /tmp/path
  2. Nel terminal: cat /tmp/path
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.