OK, so I disabled home-bash-service-type
and home-zsh-service-type
and tried my guix home
configuration in guix home container
. It looks like only creates a .profile
file, there is no .bashrc
or .zshrc
or anything else.
The content of the .profile
file are,
MachineY% cat .profile
HOME_ENVIRONMENT=$HOME/.guix-home
. $HOME_ENVIRONMENT/setup-environment
$HOME_ENVIRONMENT/on-first-login
Similar to what I have on my regular system.
I also tried installing Guix
on a VM
everything default, didn’t even change my user shell
to zsh
and it generates a .bashrc
, .bash_profile
and .zprofile
file by default,
Here are the contents of .bashrc
as@guix-virt ~$ cat .bashrc
# 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* ]]
then
# 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.
return
fi
# Source the system-wide file.
[ -f /etc/bashrc ] && source /etc/bashrc
alias ls='ls -p --color=auto'
alias ll='ls -l'
alias grep='grep --color=auto'
Here are the contents of .bash_profile
,
as@guix-virt ~$ cat .bash_profile
# Set up Guix Home profile
if [ -f ~/.profile ]; then . ~/.profile; fi
# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
# Merge search-paths from multiple profiles, the order matters.
eval "$(guix package --search-paths \
-p $HOME/.config/guix/current \
-p $HOME/.guix-profile \
-p /run/current-system/profile)"
# Prepend setuid programs.
export PATH=/run/setuid-programs:$PATH
Here are the contents of .zprofile
,
as@guix-virt ~$ cat .zprofile
# Honor system-wide environment variables
source /etc/profile
# Merge search-paths from multiple profiles, the order matters.
eval "$(guix package --search-paths \
-p $HOME/.config/guix/current \
-p $HOME/.guix-profile \
-p /run/current-system/profile)"
# Prepend setuid programs.
export PATH=/run/setuid-programs:$PATH
There is no
GUIX_PROFILE="/home/apoorv/.config/guix/current" . "$GUIX_PROFILE/etc/profile"
So I guess we can leave it. I think this is for foreign distributions only, like when you install guix
on another distribution.
Though it does have (in both .bash_profile
and .zprofile
) this,
# Merge search-paths from multiple profiles, the order matters.
eval "$(guix package --search-paths \
-p $HOME/.config/guix/current \
-p $HOME/.guix-profile \
-p /run/current-system/profile)"
Though when I put this in .zprofile
and manage it via guix home
none of the programs installed via guix home
shows up in dmenu
.