Re: Converting a zsh prompt to bash

2006-05-19 Thread Thomas Dickey
> Hey Dan!
> 
> Your prompt is truly wonderful.
> It inspired me to grow up, as far as my shell is concerned.

hmm - no: grownups use tput rather than hardcoding things.

-- 
Thomas E. Dickey
http://invisible-island.net
ftp://invisible-island.net


pgpaAKCgMiHgm.pgp
Description: PGP signature


Re: Converting a zsh prompt to bash

2006-05-19 Thread Kyrre Nygard

At 22:48 18.05.2006, Dan Nelson wrote:


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]


This is what I'm now going to settle with.

The screen function was really wicked. I've always felt lost
while I'm messing about my screens.

If you have any advice, please make them regarding this setup:

if [[ `whoami` = root ]] then

a1="%{$fg_bold[red]%}"
a2="%{$fg_no_bold[red]%}"

else

a1="%{$fg_bold[cyan]%}"
a2="%{$fg_no_bold[cyan]%}"

fi

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

if [[ $+WINDOW = 1 && $TERM = screen* ]] then

PROMPT="$a1([EMAIL PROTECTED])$a2($WINDOW)(%D{%d/%m}+%D{%H:%M})"$'\n'
PROMPT+="$a2(%~) %{$reset_color%}"

fi

Thanks :)

Kyrre


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


Re: Converting a zsh prompt to bash

2006-05-19 Thread Kyrre Nygard

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:

Re: Converting a zsh prompt to bash

2006-05-18 Thread Dan Nelson
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]
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Converting a zsh prompt to bash

2006-05-18 Thread Kyrre Nygard

At 19:50 18.05.2006, Eric wrote:

> 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?
>

post a screenshot somewhere =) sounds like you like your new prompt
quite a bit =)


The prompt is the same however the way of writing it into the zshrc
is now, thanks to Mr. Dan Nelson, much better.

Why a screenshot? There's no virus in it. Give it a go :)

And the best of luck to you,

-- Kyrre

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


Re: Converting a zsh prompt to bash

2006-05-18 Thread Eric
> 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?
> 

post a screenshot somewhere =) sounds like you like your new prompt
quite a bit =)

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


Re: Converting a zsh prompt to bash

2006-05-18 Thread Kyrre Nygard

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?

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]"


Re: Converting a zsh prompt to bash

2006-05-18 Thread Dan Nelson
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]"


Re: Converting a zsh prompt to bash

2006-05-18 Thread Kyrre Nygard

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


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


Re: Converting a zsh prompt to bash

2006-05-17 Thread Dan Nelson
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]
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Converting a zsh prompt to bash

2006-05-17 Thread Kyrre Nygard

At 18:39 16.05.2006, Parv wrote:

in message <[EMAIL PROTECTED]>,
wrote Kyrre Nygard thusly...
>
>
> This one, with a real nice color setting:
>
> ([EMAIL PROTECTED])(09:58+16/05)
> (%:~)
>
> Requires all this:
>
> 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
>
> I was wondering, were I to convert to bash, how would it then look like?

All you need to do is replace zsh provided format strings to that of
similar  bash escape sequences.  For example, zsh '%n' (for
username) corresponds to bash '\u', '%~' to '\w', and so on.

I personally put the color, bold, normal, etc. sequences in a
separate file, which is sourced inside the file setting prompt.
That gives less of gobbledygook to parse.  For zsh, i have somewhere
in ~/.zshrc ...

  #  http://www103.pair.com/parv/comp/unix/cf/sh/var/colors
  . ~/cf/sh/var/colors

  case $TERM in
*xterm* | *rxvt* )
  PS1="# ?:%? %j %l ${bold}${yellow_fg}%~${normal}${normal}"
  PS1="$PS1 %n.${bold}${cyan_fg}%m${normal}${normal}"
  PS1="
  $PS1 (%D{%a %b%d %I%M})
  #! "
  export PS1
;;

* )
  PS1="# %j [EMAIL PROTECTED] %l ${bold}%3~${normal}
  # "
  export PS1
;;
  esac


... similar thing is done for bash prompt.


  - Parv

--


Hello again man!

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}%{$b1}(%{$b2}%D{%H:%M}%{$b3}+%{$b2}%D{%d/%m}%{$b1})%{$b3}\n'
PROMPT+=$'%{$b1}(%{$b2}%#%{$b3}:%{$b2}%~%{$b1})'
fi

I would appreciate your green light before I test this :)

Thanks again,
Kyrre


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


Re: Converting a zsh prompt to bash

2006-05-17 Thread Kyrre Nygard

At 18:39 16.05.2006, Parv wrote:

in message <[EMAIL PROTECTED]>,
wrote Kyrre Nygard thusly...
>
>
> This one, with a real nice color setting:
>
> ([EMAIL PROTECTED])(09:58+16/05)
> (%:~)
>
> Requires all this:
>
> 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
>
> I was wondering, were I to convert to bash, how would it then look like?

All you need to do is replace zsh provided format strings to that of
similar  bash escape sequences.  For example, zsh '%n' (for
username) corresponds to bash '\u', '%~' to '\w', and so on.

I personally put the color, bold, normal, etc. sequences in a
separate file, which is sourced inside the file setting prompt.
That gives less of gobbledygook to parse.  For zsh, i have somewhere
in ~/.zshrc ...

  #  http://www103.pair.com/parv/comp/unix/cf/sh/var/colors
  . ~/cf/sh/var/colors

  case $TERM in
*xterm* | *rxvt* )
  PS1="# ?:%? %j %l ${bold}${yellow_fg}%~${normal}${normal}"
  PS1="$PS1 %n.${bold}${cyan_fg}%m${normal}${normal}"
  PS1="
  $PS1 (%D{%a %b%d %I%M})
  #! "
  export PS1
;;

* )
  PS1="# %j [EMAIL PROTECTED] %l ${bold}%3~${normal}
  # "
  export PS1
;;
  esac


... similar thing is done for bash prompt.


  - Parv

--


Hey Parv!

This sounds truly fabulous man,
I guess there's no need for me to switch to bash after all :)

But like in the case of:

local Normal="[0m"

What's with that weird character?

Thanks!

Kyrre


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


Re: Converting a zsh prompt to bash

2006-05-16 Thread Parv
in message <[EMAIL PROTECTED]>,
wrote Kyrre Nygard thusly...
>
> 
> This one, with a real nice color setting:
> 
> ([EMAIL PROTECTED])(09:58+16/05)
> (%:~)
> 
> Requires all this:
> 
> 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
> 
> I was wondering, were I to convert to bash, how would it then look like?

All you need to do is replace zsh provided format strings to that of
similar  bash escape sequences.  For example, zsh '%n' (for
username) corresponds to bash '\u', '%~' to '\w', and so on.

I personally put the color, bold, normal, etc. sequences in a
separate file, which is sourced inside the file setting prompt.
That gives less of gobbledygook to parse.  For zsh, i have somewhere
in ~/.zshrc ...

  #  http://www103.pair.com/parv/comp/unix/cf/sh/var/colors
  . ~/cf/sh/var/colors

  case $TERM in
*xterm* | *rxvt* )
  PS1="# ?:%? %j %l ${bold}${yellow_fg}%~${normal}${normal}"
  PS1="$PS1 %n.${bold}${cyan_fg}%m${normal}${normal}"
  PS1="
  $PS1 (%D{%a %b%d %I%M})
  #! "
  export PS1
;;

* )
  PS1="# %j [EMAIL PROTECTED] %l ${bold}%3~${normal}
  # "
  export PS1
;;
  esac


... similar thing is done for bash prompt.


  - Parv

-- 

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