Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I set my prompt to be colourized in 256 colours? I am looking for an equivalent to the bash prompt:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "
share|improve this question
Shame on anyone who stared but not upvoted! – phunehehe Nov 25 '11 at 12:20
export PS1='%{[38;5;24m%};%{[0m%} ' is exactly what I wanted. – Sardathrion Nov 25 '11 at 12:32
up vote 8 down vote accepted

First, ensure that your terminal supports 256 colors, which I suppose you already have. Second, use a PS1 variable with the correct code, for example:

export PS1='%{^[[01;38;05;214;48;05;123m%}%m%{^[[0m%} '

This will give you a prompt with the host name in bold, with a foreground color of 214 and a background color of 123.

Note that the ^[ is "entered" by typing Ctrl+v and Ctrl+[. See this excellent article "That 256 Color Thing" for the whole list of attributes.

share|improve this answer
Yes, I am using urxvt 256 colour enable terminal. – Sardathrion Nov 25 '11 at 12:31
How can I verify if my terminal supports 256 colors? For example, does gnome-terminal (Ubuntu) support 256 colors? – Amelio Vazquez-Reina Mar 31 '13 at 17:39
Use this script (full article frexx.de/xterm-256-notes). gnome-terminal does support 256 colors. – phunehehe Apr 1 '13 at 4:11
The host of the link is broken (502 bad gateway). – Pikrass Jun 7 '13 at 13:56
@Pikrass I have 404 not found. – Totor Jan 2 '14 at 1:03
export PS1='%F{214}%K{123}%m%k%f'

From man zshmisc:

   %F (%f)
          Start (stop) using a different foreground colour, if supported by the terminal.  The colour may be specified two ways: either as a numeric argument, as normal, or by a sequence in braces following the %F, for example %F{red}.  In the latter case the values allowed are as described for the fg zle_highlight attribute; see  Char‐
          acter Highlighting in zshzle(1).  This means that numeric colours are allowed in the second format also.

   %K (%k)
          Start (stop) using a different bacKground colour.  The syntax is identical to that for %F and %f.

Also to try it out it could be used like that:

$> print -P '%F{214}%K{123}%m%k%f'
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.