Reputation: 1600
I want to make my hostname in my terminal orange. How do I do that?
Upvotes: 35
Views: 57137
Reputation: 13402
Running the following code in your terminal should tell you whether your terminal supports 256 colors.
for COLOR in {0..255}
do
for STYLE in "38;5"
do
TAG="\033[${STYLE};${COLOR}m"
STR="${STYLE};${COLOR}"
echo -ne "${TAG}${STR}${NONE} "
done
echo
done
it also shows you the code for each color in the form 38;5;x
where x
is the code for one of the 256 available colors.
Also, note that changing the "38;5"
to "48;5"
will show you the background color equivalent. You can then use any colors you like to make up the prompt as previously mentioned.
Upvotes: 52
Reputation: 42235
First off, I'm not sure what terminal you're using or if it will even support the color orange. Mine supports the following: Red, Blue, Green, Cyan, Yellow, Magenta, Black & White. And here's how I get colors in my terminal:
You need to first load the colors using autoload
. I use the following to load the colors and assign them to meaningful names
#load colors
autoload colors && colors
for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
eval $COLOR='%{$fg_no_bold[${(L)COLOR}]%}' #wrap colours between %{ %} to avoid weird gaps in autocomplete
eval BOLD_$COLOR='%{$fg_bold[${(L)COLOR}]%}'
done
eval RESET='%{$reset_color%}'
You can set the hostname in your prompt using the %m
string. So to set, say a red hostname, you'd do
${RED}%m${WHITE}\>
which will print something like bneil.so>
Upvotes: 27
Reputation: 32449
<ESC>[33mHostname<ESC>[0m
Being the escape character \x1b
Upvotes: 4