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>"
--
Dan Nelson
[EMAIL PROTECTED]
Hey Dan!
I can't find a list of what colors are available. Besides I doubt
that mine are accounted for.
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%} '
if [[ `whoami` = root ]] then
PROMPT=$'%{\e[01;31m%}(%{\e[22;31m%}%n%{\e[01;30m%}@'
PROMPT+=$'%{\e[22;31m%}%m%{\e[01;31m%})%{\e[01;31m%}%{\e[01;31m%}('
PROMPT+=$'%{\e[22;31m%}%D{%H:%M}%{\e[01;30m%}+%{\e[22;31m%}%D{%d/%m}'
PROMPT+=$'%{\e[01;31m%})%{\e[01;30m\e[00m%}\n%{\e[01;31m%}('
PROMPT+=$'%{\e[22;31m%}%#%{\e[01;30m%}:%{\e[22;31m%}%~%{\e[01;31m%})'
PROMPT+=$'%{\e[01;30m\e[00m%} '
fi
Anyway I just went ahead and tested this:
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}%{$b1}(%{$b2}%D{%H:%M}%{$b3}+%{$b2}%D{%d/%m}%{$b1})%{$b3}\n'
PROMPT+=$'%{$b1}(%{$b2}%#%{$b3}:%{$b2}%~%{$b1})'
fi
But I got:
/etc/zshrc:32: parse error near `)'
$a1}([EMAIL PROTECTED])
The:
if [[ $USER == root ]] ; then
a1="%{$fg[cyan]$bg[black]}"
else
a1="%{$fg[red]}$bg[black]}"
fi
PROMPT="$a1>"
Technique sounds very interesting, but it's getting a bit too
advanced for my part.
Take care man, and thanks again!
All the best,
Kyrre
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"