From within byobu, just run:
I've helped bring a touch
of aubergine to the Ubuntu server before. Along those lines, it has long bothered me that Ubuntu's bash
package, out of the box, creates a situation where full color command prompts
are almost always disabled.
Of course I carry around my own, highly customized ~/.bashrc
on my desktop, but whenever I start new instances of the Ubuntu server in the cloud, without fail, I end up back at a colorless, drab command prompt, like this:
You can, however, manually override this by setting color_prompt=yes
at the top of your ~/.bashrc
, or your administrator can set that system-wide in /etc/bash.bashrc
. After which, you'll see your plain, white prompt now show two new colors, bright green and blue.
That's a decent start, but there's two things I don't like about this prompt:
- There's 3 disparate pieces of information, but only two color distinctions:
The colors themselves are
- a user name
- a host name
- a current working directory
- a little plain
- and non-communicative
"Colour is an effective, powerful and instantly recognisable medium for visual communications. To convey the brand personality and brand values, there is a sophisticated colour palette. We have introduced a palette which includes both a fresh, lively orange, and a rich, mature aubergine. The use of aubergine indicates commercial involvement, while orange is a signal of community engagement. These colours are used widely in the brand communications, to convey the precise, reliable and free personality."
With this inspiration, I set out to apply these rules to a beautiful, precise Ubuntu server command prompt within Byobu
First, I needed to do a bit of research, as I would really need a 256-color
palette to accomplish anything reasonable, as the 8-color
palettes are really just atrocious.
The 256-color palette is actually reasonable. I would have the following color palette to chose from:
That's not quite how these colors are rendered on a modern Ubuntu system, but it's close enough to get started.
I then spent quite a bit of time trying to match Ubuntu color tints against this chart and narrowed down the color choices that would actually fit within the Ubuntu design team's color guidelines.
This is the color balance choice that seemed most appropriate to me:
A majority of white text, on a darker aubergine background. In fact, if you open gnome-terminal on an Ubuntu desktop, this is exactly what you're presented with. White text on a dark aubergine background. But we're missing the orange, grey, and lighter purple highlights!
That number I cited above -- the 3 distinct elements of [user, host, directory] -- are quite important now, as they map exactly to our 3 supporting colors.
Against our 256-color mapping above, I chose:
- Username: 245 (grey)
- Hostname: 5 (light aubergine)
- Working directory: 5 (orange)
- Separators: 256 (white)
And in the interest of being just a little more "precise", I actually replaced the trailing $ character with the UTF-8 symbol ?. This is Unicode's U+276D character, "MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
". This is a very pointed, attention-grabbing character. It directs your eye straight to the flashing cursor, or the command at your fingertips.
Gnome-terminal is, by default, set to use the system's default color scheme, but you can easily change that to several other settings. I often use the higher-contrast white-on-black or white-on-light-yellow color schemes when I'm in a very bright location, like outdoors.
I took great care in choosing those 3 colors that they were readable across each of the stock schemes shipped by gnome-terminal.
I also tested it in Terminator and Konsole, where it seemed to work well enough, while xterm and putty aren't as pretty.
Currently, this functionality is easy to enable from within your Byobu
environment. If you're on the latest Byobu
release (currently 5.57), which you can install from ppa:byobu/ppa
, simply run the command:
Of course, this prompt most certainly won't be for everyone :-) You can easily disable the behavior at any time with:
While new installations of Byobu
(where there is no ~/.byobu
directory) will automatically see the new prompt, starting in Ubuntu 13.10 (unless you've modified your $PS1
in your ~/.bashrc
). But existing, upgraded Byobu
users will need to run byobu-enable-prompt
to add this into their environment.
As will undoubtedly be noted in the comments below, your mileage may vary on non-Ubuntu systems. However, if /etc/issue does not start with the string "Ubuntu", byobu-enable-prompt
will provide a tri-color prompt, but employs a hopefully-less-opinionated primary colors, green, light blue, and red:
If you want to run this outside of Byobu
, well that's quite doable too :-) I'll leave it as an exercise for motivated users to ferret out the one-liner you need from lp:byobu
and paste into your ~/.bashrc