Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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
1  
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
1  
add comment

2 Answers 2

up vote 7 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? –  user815423426 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 at 1:03
show 1 more comment
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
add comment

Your Answer

 
discard

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.