Simple Terminal Colors

October 9th, 2023
tech
I work in the terminal a lot and I often want to write programs that color their output a bit. For example, perhaps I'm looking at a sequencing read and I want to know what part of it was the reason it was flagged. I could use colorama, termcolor, or another library, but including a dependency for something this simple is not really worth it. Instead, printing colored text is as simple as:

COLOR_RED_BOLD = '\x1b[1;31m'
COLOR_BLUE_BOLD = '\x1b[1;34m'
COLOR_END = '\x1b[0m'
print(
  "One fish, two fish, " +
  COLOR_RED_BOLD + "red" +
  COLOR_END + " fish, " +
  COLOR_BLUE_BOLD + "blue" +
  COLOR_END + " fish.")

I usually just want one or two highlight colors, typically in bold, and rarely find the six standard colors limiting. It's especially helpful if you want to draw your eye to something specific, while maintaining the context around it when you need to look further.

How compatible is this? Will someone with a non-ANSI terminal someday run my code and complain? One data point is that I wrote icdiff with this approach in 2009, and it's been reasonably popular. While I've gotten hundreds of bug reports this has never been one people have complained about.

Comment via: facebook, lesswrong, mastodon, substack

Recent posts on blogs I like:

The odds are good and the goods are great

I stole the title and thesis of this post from the great etirabys and arguably I should just link her post.

via Thing of Things August 31, 2026

Bug blindness

I used to wonder why I see so many more bugs than most people. I easily observe hundreds to thousands of bugs per week and nothing seems to work, but most people I talk to don't see anything like this. For a long time, I thought this had something to …

via Posts on August 30, 2026

Microfictions 2

A few more microfictions, still no LLMs.

via Evan Fields August 7, 2026

more     (via openring)