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.