From owner-freebsd-questions@FreeBSD.ORG Tue May 16 16:38:54 2006 Return-Path: X-Original-To: questions@freebsd.org Delivered-To: freebsd-questions@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED5F416A6E5 for ; Tue, 16 May 2006 16:38:54 +0000 (UTC) (envelope-from parv@pair.com) Received: from mta9.adelphia.net (mta9.adelphia.net [68.168.78.199]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7E32B43D91 for ; Tue, 16 May 2006 16:38:54 +0000 (GMT) (envelope-from parv@pair.com) Received: from default.chvlva.adelphia.net ([69.160.66.115]) by mta9.adelphia.net (InterMail vM.6.01.05.02 201-2131-123-102-20050715) with ESMTP id <20060516163853.FFYR8718.mta9.adelphia.net@default.chvlva.adelphia.net>; Tue, 16 May 2006 12:38:53 -0400 Received: by default.chvlva.adelphia.net (Postfix, from userid 1000) id 9B5D6B759; Tue, 16 May 2006 12:39:20 -0400 (EDT) Date: Tue, 16 May 2006 12:39:20 -0400 From: Parv To: Kyrre Nygard Message-ID: <20060516163920.GB9679@holestein.holy.cow> Mail-Followup-To: Kyrre Nygard , questions@freebsd.org References: <7.0.1.0.2.20060516102254.021e2b50@broadpark.no> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7.0.1.0.2.20060516102254.021e2b50@broadpark.no> Cc: questions@freebsd.org Subject: Re: Converting a zsh prompt to bash X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 May 2006 16:38:55 -0000 in message <7.0.1.0.2.20060516102254.021e2b50@broadpark.no>, wrote Kyrre Nygard thusly... > > > This one, with a real nice color setting: > > (kyrre@merhaba)(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 %n@%m %l ${bold}%3~${normal} # " export PS1 ;; esac ... similar thing is done for bash prompt. - Parv --