At 22:48 18.05.2006, Dan Nelson wrote:
In the last episode (May 18), Kyrre Nygard said:
> At 17:02 18.05.2006, Dan Nelson wrote:
> >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]
>
> Oh man! That is absolutely gorgeous!!!
> Thank you so much :)))
>
> My /etc/zshrc is now worth $10.000 (up from $7.000)
>
> Don't sell it on eBay you all: http://paste.husk.org/5717
>
> Just out of curiosity Dan, how does your prompt look like?
Mine's strictly functional. User, host, path in left prompt; error
status in right prompt. Within screen, I add the window number to the
left prompt and the date&time to the right prompt so I know how long
I've left a window idle.
if [[ $+WINDOW = 1 && $TERM = screen* ]] ; then
PROMPT="([EMAIL PROTECTED]) %B%/>%(#/#/)%b "
RPROMPT="%(?.. %B%?%b)%t %D{%m/%d}"
else
PROMPT="([EMAIL PROTECTED]) %B%/>%(#/#/)%b "
RPROMPT="%(?..%?)"
fi
--
Dan Nelson
[EMAIL PROTECTED]
Hey Dan!
Your prompt is truly wonderful.
It inspired me to grow up, as far as my shell is concerned.
Based on your design, I came up with this:
if [[ `whoami` = root ]] then
a1="%{$fg_bold[red]%}"
a2="%{$fg_no_bold[red]%}"
else
a1="%{$fg_bold[cyan]%}"
a2="%{$fg_no_bold[cyan]%}"
fi
if [[ $+WINDOW = 1 && $TERM = screen* ]] then
PROMPT="$a1([EMAIL PROTECTED]) [$WINDOW] $a2%~ >%{$reset_color%} "
RPROMPT="%D{%H:%M} %D{%d/%m}"
fi
PROMPT="$a1([EMAIL PROTECTED]) $a2%~ >%{$reset_color%} "
RPROMPT="%D{%H:%M} %D{%d/%m}"
And I think I'm keeping it like that.
Unless you have any suggestions on how to simply its setup?
It takes up a lot of lines, maybe it could shrink a little.
I hope you don't consider me stealing your design.
If that's the case I'll revert back to my old one.
It's kinda nice though, isn't it? :)
All the best,
Kyrre
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"