MMaxime Devos wrote on 20 Jul 2022 12:45
EMACSLOADPATH not set when using Guix System + Guix Home + SLIM + Mate
(address . email@example.com)
(the SLIM + Mate might be irrelevant, untested)
I am using Guix System and Guix Home. In Guix Home, I've added the
"emacs" and "emacs-magit" packages (and some others):
Toggle quote (21 lines)
> (list "git" "irssi" "evolution" "openssh" "gnupg" "htop"
> "bash" "coreutils" "bash-completion"
> "emacs" "emacs-magit" "emacs-paredit"
> "icedove" "gnunet" "seahorse" #;"icedove-wayland")))
> (list (service
> '(("grep" . "grep --color=auto")
> ("ll" . "ls -l")
> ("ls" . "ls -p --color=auto")))
> (list (local-file ".bashrc" "bashrc")))
> (list (local-file
For completeness, here is the .bash_profile and .bashrc (unmodified from
base installation, except for removing a redundant alias):
Toggle quote (2 lines)
> # Honor per-interactive-shell startup file
> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
Toggle quote (28 lines)
> # Bash initialization for interactive non-login shells and
> # for remote shells (info "(bash) Bash Startup Files").
> # Export 'SHELL' to child processes. Programs such as 'screen'
> # honor it and otherwise use /bin/sh.
> export SHELL
> if [[ $- != *i* ]]
> # We are being invoked from a non-interactive shell. If this
> # is an SSH session (as in "ssh host command"), source
> # /etc/profile so we get PATH and other essential variables.
> [[ -n "$SSH_CLIENT" ]] && source /etc/profile
> # Don't do anything else.
> # Source the system-wide file.
> source /etc/bashrc
> # Adjust the prompt depending on whether we're in 'guix environment'.
> if [ -n "$GUIX_ENVIRONMENT" ]
> PS1='\u@\h \w [env]\$ '
> PS1='\u@\h \w\$ '
After a "guix home reconfigure" and after a few reboots, I tried out
emacs-magit, but there was no match for the "M-x magit-status". It
turned out that $EMACSLOADPATH was unset. However, it is set in
Toggle quote (23 lines)
> # Source this file to define all the relevant environment variables in
> # for this profile. You may want to define the 'GUIX_PROFILE' environment
> # variable to point to the "visible" name of the profile, like this:
> # GUIX_PROFILE=/path/to/profile ; \
> # source /path/to/profile/etc/profile
> # When GUIX_PROFILE is undefined, the various environment variables refer
> # to this specific profile generation.
(nevermind the >, that's just me not making the terminal wide enough
Weirdly, EMACSLOADPATH is not set (tested in a terminal), but PATH,
GIT_EXEC_PATH, BASH_LOADABLES_PATH, INFOPATH and XDG_DATA_DIRS are set.
Also, inside a login shell (bash --login) (started inside the graphical
environment), EMACSLOADPATH is not set.
Also, if I do "source ~/.guix-home/setup-environment", then
$EMACSLOADPATH" is set.