aboutsummaryrefslogtreecommitdiff
path: root/gnu/home/services
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-12-27 21:52:59 +0100
committerLudovic Courtès <ludo@gnu.org>2023-01-05 15:00:27 +0100
commit086df6ef213d44d4b75c263033552eef6b2bd868 (patch)
treee17a7ca433e668e207c4ae37aead48c17aa7aa10 /gnu/home/services
parent2127e56bd8b3ee8ae5b6cde1b7ed5bf50cf7127b (diff)
downloadguix-086df6ef213d44d4b75c263033552eef6b2bd868.tar.gz
guix-086df6ef213d44d4b75c263033552eef6b2bd868.zip
system: Define default 'PS1' in /etc/bashrc rather than ~/.bashrc.
Users can override 'PS1' in ~/.bashrc if they wish. Previously, on Guix Home, the "default" 'PS1' would be set in ~/.bashrc when 'home-bash-configuration-guix-defaults?' is true, preventing users from overriding it via the 'environment-variables' field of 'home-bash-extension'. * gnu/system/shadow.scm (%default-bashrc): Remove 'PS1' setting. * gnu/system.scm (operating-system-etc-service): Define PS1 in /etc/bashrc. * gnu/home/services/shells.scm (add-bash-configuration): When 'home-bash-configuration-guix-defaults?' is true, add a default 'PS1' to ~/.bash_profile.
Diffstat (limited to 'gnu/home/services')
-rw-r--r--gnu/home/services/shells.scm9
1 files changed, 9 insertions, 0 deletions
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index d7dd579293..3326eb37f4 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -407,6 +407,15 @@ if [ -f ~/.profile ]; then source ~/.profile; fi
# Honor per-interactive-shell startup file
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
"
+
+ ;; The host distro might provide a bad 'PS1' default--e.g., not taking
+ ;; $GUIX_ENVIRONMENT into account. Provide a good default here when
+ ;; asked to. The default can be overridden below via
+ ;; 'environment-variables'.
+ (if (home-bash-configuration-guix-defaults? config)
+ "PS1='\\u@\\h \\w${GUIX_ENVIRONMENT:+ [env]}\\$ '\n"
+ "")
+
(serialize-field 'bash-profile)
(serialize-field 'environment-variables)))