In the last episode (May 18), Kyrre Nygard said:
> At 17:04 17.05.2006, Dan Nelson wrote:
> >In the last episode (May 17), Kyrre Nygard said:
> >> Do you think this would work?
> >>
> >> I tried applying your principles, as well as some information design:
> >>
> >> local a1="01;36m"
> >> local a2="22;36m"
> >> local a3="01;30m"
> >>
> >> local b1="01;31m"
> >> local b2="22;31m"
> >> local b3="01;30m"
> >>
> >> PROMPT=$'%{$a1}([EMAIL PROTECTED])'
> >> PROMPT+=$'%{$a1}('{$a2}%D{%H:%M}%{$a3}+%{$a2}%D{%d/%m}%{$a1})%{$a3}\n'
> >> PROMPT+=$'%{$a1}(%{$a2}%#%{$a3}:%{$a2}%~%{$a1})'
> >>
> >> if [[ `whoami` = root ]] then
> >> PROMPT=$'%{$b1}([EMAIL PROTECTED])'
> >> PROMPT+=$'%{$b1}(%{$b2}%D{%H:%M}%{$b3}+%{$b2}%D{%d/%m}%{$b1})%{$b3}\n'
> >> PROMPT+=$'%{$b1}(%{$b2}%#%{$b3}:%{$b2}%~%{$b1})'
> >> fi
> >
> > Note that zsh provides symbolic variables for color setting:
> >
> > autoload -U colors
> > colors
> > echo "$fg[blue]$bg[red]blue on red!"
> >
> > so you don't have to memorize the numbers.  See the zshcontrib
> > manpage, "OTHER FUNCTIONS" section.
> >
> > If the only difference between your root prompt is color, you can
> > also just set a1,a2,a3 to different values within your if block,
> > then set PROMPT outside of it.
> >
> > if [[ $USER == root ]] ; then
> >  a1="%{$fg[cyan]$bg[black]}"
> > else
> >  a1="%{$fg[red]}$bg[black]}"
> > fi
> > PROMPT="$a1>"
> 
> Hey Dan!
> 
> I can't find a list of what colors are available. Besides I doubt 
> that mine are accounted for.

There are only so many ways to combine 8 colors :)  From the manpage:

  colors This function initializes  several  associative  arrays  to  map
         color names to (and from) the ANSI standard eight-color terminal
         codes.  These are used by the prompt theme system  (see  above).
         You seldom should need to run colors more than once.

         The  eight  base  colors  are:  black, red, green, yellow, blue,
         magenta, cyan, and white.  Each of these  has  codes  for  fore-
         ground  and  background.   In addition there are eight intensity
         attributes: bold, faint, standout,  underline,  blink,  reverse,
         and  conceal.   Finally,  there  are  six  codes  used to negate
         attributes: none (reset all attributes to the defaults),  normal
         (neither  bold  nor faint), no-standout, no-underline, no-blink,
         and no-reverse.

> I'd be very grateful if you could at least try this prompt out so you 
> know my request:
> 
> PROMPT=$'%{\e[01;36m%}(%{\e[22;36m%}%n%{\e[01;30m%}@'
> PROMPT+=$'%{\e[22;36m%}%m%{\e[01;36m%})%{\e[01;36m%}%{\e[01;36m%}('
> PROMPT+=$'%{\e[22;36m%}%D{%H:%M}%{\e[01;30m%}+%{\e[22;36m%}%D{%d/%m}'
> PROMPT+=$'%{\e[01;36m%})%{\e[01;30m\e[00m%}\n%{\e[01;36m%}('
> PROMPT+=$'%{\e[22;36m%}%#%{\e[01;30m%}:%{\e[22;36m%}%~%{\e[01;36m%})'
> PROMPT+=$'%{\e[01;30m\e[00m%} '

How about something like:

autoload -U colors
colors

if [[ $USER == root ]] ; then
 c1="%{$fg_no_bold[cyan]%}" # base color1
 c2="%{$fg_bold[cyan]%}"    # base color2
 c3="%{$fg_bold[black]%}"   # punctuation
else
 c1="%{$fg_no_bold[red]%}" # base color1
 c2="%{$fg_bold[red]%}"    # base color2
 c3="%{$fg_bold[black]%}"  # punctuation
fi

PROMPT="$c2([EMAIL PROTECTED])($c1%D{%H:%M}$c3+$c1%D{%d/%m}$c2)"$'\n'
PROMPT+="$c2($c1%#$c3:$c1%~$c2) %{$reset_color%}"

-- 
        Dan Nelson
        [EMAIL PROTECTED]
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to