lima
lima copied to clipboard
Only set the prompt color on a dark terminal background
The lima color has usability issues in light theme
Closes #485
I thought I had already written this for the previous PR, but cannot find the comment again:
I feel using patch to make so many complex changes to .bashrc is the wrong approach, and not maintenance friendly (updating the patch will be error-prone if/when the upstream source is going to change).
I would rather see this change appended as a single block at the end of .bashrc, or maybe even in a separate file, so it is just called from it. We should not modify the upstream logic, but just determine the conditions under which we want to modify the prompt, and then just overwrite the setting that has already been setup earlier. That way our logic should become much simpler (I hope).
I also feel that we are trying to support too many different configurations.
I think the plan was to have the patch fail, if/when the original ever changes...
There is a unset color_prompt force_color_prompt which makes it harder.
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
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
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
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
Didn't change anything regarding chroot or xterm, only the color of the prompt.
The main changes were: 1) adding 256 + truecolor 2) opting out in light theme
I also feel that we are trying to support too many different configurations.
Currently there are 4 terminal color profiles: Ascii, ANSI, ANSI256, TrueColor
https://github.com/muesli/termenv#query-terminal-support
Originally it only used color=true/false, and "green" works with either theme.
Could revert the lima color, and go back to changing the prompt instead...
That [LIMA] would make it work in monochrome as well: https://github.com/lima-vm/lima/pull/433#issuecomment-978881137
Who uses light themes anyway ;-)
New cyan color works in both.