Adding Color and Art to your Command Line
On GUI Shaming and a Mountain of Hot Takes
I will admit, I’m a GUI girl at heart. I love a good app design and user experience. For me I find discovering options within an application more intuitive with visual cues of some kind.
However, like any good engineer, I believe in using the right tool for the job. A lot of times, this means I do basic work in a GUI but then end up opening a terminal when I need to do something more complex. This is especially true with git. I have used different clients over the years (I <3 Git Fork currently - https://git-fork.com/), and it’s gorgeous for when I just need to pull or push a branch. Anything more complex (say an interactive rebase, where I only want to keep some commits) and I open up a command line.
But here’s the thing. I still want my tools to be pretty. And this is not my personal aesthetic…
Luckily, CLIs give lots of customization options. So with that background, here are some of the plugins and libraries I’ve used to make my tools more beautiful. So that even when you are digging into linux logs, you can have some visual delight.
I recently read Scott Hanselman’s post, How to Make a Pretty Prompt.. - I wholeheartedly second his recommendations of Windows Terminal, Oh My Posh, and ligature fonts. This is what my setup looks like now: (Yes, I’m a fan of light themes. I’m going to destroy any hardcore tech cred I may have in one post!)
Another thing I’ve embraced is using color when writing C#.Net command line utilities. This library is awesome https://github.com/tomakita/Colorful.Console - super easy to use because it overrides the built-in Console object. Go ahead, welcome your users (or, um, yourself) with a pink robot.
string robot = @" , ,
(\____/)
(_oo_)
(O)
__||__ \)
[]/______\[] /
/ \______/ \/
/ /__\
(\ /____\";
char[] robotChars = robot.ToCharArray();
Console.WriteAscii("Hello there!", Color.DarkOrchid);
Console.Write(robotChars, Color.Pink);
For something more professional, maybe you want to generate your work logo as ascii art when starting up a utility.
It doesn’t take much time and I’m all about adding fun to my projects, especially when developing something on the side.
“People will stare. Make it worth their while.” —Harry Winston