Open alexislefebvre opened 6 months ago
A quick and dirty fix would be to replace the 0, 1, and 2s with 3s...
set -l hostcolor (set_color (uname -n | md5sum | cut -f1 -d' ' | tr -d '\n' | tail -c6 | sed 's/[0-2]/3/g'))
but that would change the color of some servers, which might cause some users of the theme to worry they're on the wrong server.
A more heavyweight solution that would retain the same unique colors currently assigned to each server would be to check for dark colors and brighten them.
set -l _hostcolor_rgb (uname -n | md5sum | cut -f1 -d' ' | tr -d '\n' | tail -c6 | sed 's/\([0-9a-f][0-9a-f]\)/0x\1 /g')
set -l _hostcolor_value ''
if test (math (string replace -a " 0x" " + 0x" $_hostcolor_rgb) ) -le (math 0x99) # true when darker than #333333
for _color in (string split " " (string trim $_hostcolor_rgb))
set _hostcolor_value "$_hostcolor_value"(math -b16 0x33 + $_color | sed 's/0x//g' | sed 's/[0-9a-f][0-9a-f][0-9a-f]/ff/g')
end
else
set _hostcolor_value (echo $_hostcolor_rgb | sed 's/\(0x\| \)//g')
end
set -l hostcolor (set_color $_hostcolor_value)
I use the dark GNOME theme in
gnome-terminal.
Lines 1 and 2 use the default theme, so
hostcolor
is used:https://github.com/netologist/theme-lambda/blob/f47786e1019b965d55d5433fb604593bbdaeed69/functions/fish_prompt.fish#L19
As you can see on the screenshot, the name of the machine is “serveur”, and it causes the issue.
The colour of the prompt is the same as the result of this command:
Lines 3 and 4 use a patch
I forced the colour on this environment:
Proposals
I don't have any idea to solve this,
hostcolor
may only use a color than is not too light or dark. Or a background may be used so that the prompt always have some contrast.