summaryrefslogtreecommitdiffstats
path: root/.bashrc
diff options
context:
space:
mode:
Diffstat (limited to '.bashrc')
-rw-r--r--.bashrc57
1 files changed, 37 insertions, 20 deletions
diff --git a/.bashrc b/.bashrc
index 7addfca..b725d67 100644
--- a/.bashrc
+++ b/.bashrc
@@ -28,26 +28,43 @@ if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
-b_prompt() {
- case $TERM in
- xterm*)
- local TITLEBAR="\[\033]0;${debian_chroot:+($debian_chroot) }\h:\w\007\]"
- ;;
- *)
- local TITLEBAR=''
- ;;
- esac
-
- PS1="${TITLEBAR}\
-$([ $(id -u) = "0" ] && printf "\[\e[1;31m\]")\
-: ${debian_chroot:+($debian_chroot) }\
-\h:\w\
-$([ -n "$GUIX_ENVIRONMENT" ] && printf " [env]")\
- ;\
-$([ $(id -u) = "0" ] && printf "\[\e[00m\]")\
- "
-}
-b_prompt
+# Set a fancy prompt (non-color, unless we know we "want" color).
+case "$TERM" in
+ xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# Uncomment for a colored prompt, if the terminal has the capability;
+# turned off by default to not distract the user: the focus in a
+# terminal window should be on the output of commands, not on the
+# prompt.
+# force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and
+ # such a case would tend to support setf rather than setaf.)
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# Set the title to user@host:dir for some terminal emulators.
+case "$TERM" in
+ xterm*|rxvt*|foot*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\a\]$PS1"
+ ;;
+ *)
+ ;;
+esac
# cursor
# ------