dmenu setzt keine Umgebungsvariable gemäß meinem .bash_profile, wenn Emacs ausgeführt wird

1

Ich habe folgende ~ / .bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

und ~ / .bashrc

### Check for shell interactivity.

if [[ $- != *i* ]] ; then
    return
fi

### Nyan-cat prompt.

PS1="\`if [ \$? = 0 ]; then echo \[\e[35m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\` \$ "

### PATH

export PATH=$PATH:$HOME/bin

Also wenn ich Emacs vom Terminal aus starte alles OK. Wenn ich es mit dmenu(getenv "PATH") starte und die exec-pathVariable kein ~/binVerzeichnis enthält .

Wenn ich es in xfce mit xfrun4Befehl mit der gleichen Bash-Konfiguration mache, funktionieren alle Nähte auch.

Was ist das Problem mit dem Menü?

proofit404
quelle
Diese Frage braucht ein bisschen Arbeit ... sehr verwirrend. Wie auch immer, ich würde einen Blick auf die Dmenu-Dokumentation werfen, da Sie Emacs auf andere Weise problemlos ausführen können. Vielleicht führt dmenu die Bash-Konfigurationsdateien nicht standardmäßig aus?
Peter Jenkins
Oder lädt es die Konfiguration einmal (beim Start) und Sie haben Ihr Profil danach aktualisiert?
gt6989b
Nein, meine Konfiguration ändert sich nicht, nachdem ich dwm session gestartet habe.
Proofit404

Antworten:

1

Ich behebe mein Problem beim Bearbeiten meiner ~/.xsessionDatei. Fügen Sie Folgendes hinzu, bevor Sie dwm ausführen.

export PATH=$PATH:$HOME/bin

Jetzt können Sie dieselben Zeilen aus Ihrer .bashrcDatei entfernen .

proofit404
quelle
0

TERM = in der Emacs-Shell dumm, damit der interaktive Test am oberen Rand Ihres .bashrc-Profils nicht abgelaufen wird.

Versuchen Sie, das Material, das Sie für sicher halten, im nicht interaktiven Modus auszuführen (denken Sie an Umgebungsvariablen, die sich nicht auf rsync, git, Remote-ssh-Befehl, Cron-Jobs usw. auswirken), über den Test für den interaktiven Modus zu verschieben, wo es am zurückgegeben wird Anfang des Skripts.

freegnu
quelle
1
M-x shellgut laufen. Aber wenn ich compileoder comintBefehle aufrufe, funktioniert die Umgebung nicht mit dem ~/binVerzeichnis.
Proofit404