Tips and Tricks About Computers, Web Development, Linux, the Internet and the Like
Posts tagged customization

Customizing Colors for Your .bashrc
Oct 21st
Posted by Tyler Mulligan in Application Management
I’m working on organizing my dotfiles and part of that process has led me to clean up the way I address colors. I came across a few good sources, for .bashrc colors and decided it’d be better to create my own. I would like to have used the ones I found on the Arch wiki but the aliases were a bit odd to me. They also break consistency as you scroll down. I’m not sure if this is due to it being a collaborative wiki or it’s a way to teach multiple syntaxes/approaches. In either case I figured the aliases weren’t as “standard” as I thought they might be in that world.
So I decided to copy them the best of the bunch into geany and modify them with regular expressions. I used column selection to speed up some of the tasks, such as Title Case formatting and typing the prefixes.
# define colors Black='\e[0;30m' # Black / Regular Red='\e[0;31m' # Red Green='\e[0;32m' # Green Yellow='\e[0;33m' # Yellow Blue='\e[0;34m' # Blue Purple='\e[0;35m' # Purple Cyan='\e[0;36m' # Cyan White='\e[0;37m' # White BBlack='\e[1;30m' # BBlack / Bold BRed='\e[1;31m' # BRed BGreen='\e[1;32m' # BGreen BYellow='\e[1;33m' # BYellow BBlue='\e[1;34m' # BBlue BPurple='\e[1;35m' # BPurple BCyan='\e[1;36m' # BCyan BWhite='\e[1;37m' # BWhite UBlack='\e[4;30m' # UBlack / Underline URed='\e[4;31m' # URed UGreen='\e[4;32m' # UGreen UYellow='\e[4;33m' # UYellow UBlue='\e[4;34m' # UBlue UPurple='\e[4;35m' # UPurple UCyan='\e[4;36m' # UCyan UWhite='\e[4;37m' # UWhite BGBlack='\e[40m' # BGBlack - background BGRed='\e[41m' # BGRed BGGeeen='\e[42m' # BGGreen BGYellow='\e[43m' # BGYellow BGBlue='\e[44m' # BGBlue BGPurple='\e[45m' # BGPurple BGCyan='\e[46m' # BGCyan BGWhite='\e[47m' # BGWhite NC='\e[0m' # Text Reset / No Color
Here is a test case:
for c in {,B,U,BG}{Black,Red,Green,Yellow,Blue,Purple,Cyan,White}; do echo -e ${!c}$c${NC}; done; echo -e "${NC}"Here is the same test case without the aliases
for c in {0,1,4}\;{30..37} {40..47}; do echo -e \\e[${!c}${c}m${c}m\\e[0m; done;Here's a PS1 you can try it with
PS1="${debian_chroot:+($debian_chroot)}\[${BWhite}\]\u\[${NC}\]\[${Yellow}\]@\[${White}\]\h\[${NC}\]:\[${BBlue}\]\w\[${NC}\]$ "I plan to use these quite often as I build out my .bash_aliases but the most immediate use you might find useful is the PS1 generation tool I’ve setup an alpha of http://interwebninja.com/ps1-o-matic/
ps1-o-matic-0.5 video in action
![]()
![]()
![]()
![]()
Below is a screenshot of how I’m revising the script to use only javascript objects rather than relying on html inputs to store values:

I’m currently at the point where I’m using jquery ui’s draggable and sortable to allow segments to be moved around but I have nothing worth sharing yet. Stay tuned, I’ll be checking the source into my github account soon.