The problem with checking $TERM is you end up having to add every new terminal type that is capable. In addition to foot, I know of kitty, alacritty, wezterm, and there are likely more.

The comments around this section of skel.bashrc are unclear, talking about setting a "fancy prompt (non-color)" then setting color_prompt=yes.

Given this, I propose to use a color prompt on any terminal that is capable of it, with the uncomment override back to a plain prompt. Using tput for detection basically means having ncurses-bin as a Recommends, so we may want a better way of doing this detection.

Patch attached.
--- /etc/skel/.bashrc	2020-02-25 06:44:22.000000000 -0500
+++ .bashrc	2023-09-08 09:51:44.086826241 -0400
@@ -35,33 +35,23 @@
     debian_chroot=$(cat /etc/debian_chroot)
 fi
 
-# 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
+# Determine if terminal is color capable
+if [ -x /usr/bin/tput ] && [ $(tput colors) -ge 8 ];
+then
+    color_prompt=yes
+else
+    color_prompt=
 fi
 
+# Uncomment to force plain prompt
+#color_prompt=no
+
 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
+unset color_prompt
 
 # If this is an xterm set the title to user@host:dir
 case "$TERM" in

Reply via email to