/selenized

selenized color palette - balanced colors for your terminal

Primary LanguageShell

Selenized color palette

Selenized is a color palette for terminal emulators. I used CIELAB color space to ensure balanced contrast and lightness across the whole palette, for great readability without tiring the eyes. Also, I carefully adjusted accent colors to be both pleasing and clearly distinguishable (even on poor quality screens). Selenized comes in 3 variants (medium, dark and black) so that you can pick the one that works best in your working environment.

You can read more about the design here.

Installation

Ready-to-use config files are available for the following terminals:

If your terminal is not listed here, you can always manually copy hex values into its preferences. Please consider sending me a pull request with the resulting configuration so that I can add it to officially supported terminals :-)

Palette variants

Selenized medium

Selenized medium screenshot

Relatively high lightness of this version makes it well suited for using side-by-side with programs that have black text on white background (e.g. pdf documents, many websites etc.).

Selenized dark

Selenized dark screenshot

It has exactly the same hues and overall contrast as the medium version, just the lightness is shifted. It will feel familiar to people used to Solarized palette.

Selenized black

Don't like colorful backgrounds and prefer oldschool black-and-white look? Or maybe you'd like some more contrast? Try this variation.

Selenized black screenshot

Selenized light

I plan to add a dark-on-light variant when I finish adjusting current ones.

Features

Comfortable contrast

A couple years ago I noticed that my eyes quickly grew tired when I was working in a terminal. It turned out that the problem was the palette I was using at that time - it was white text on dark violet background (default Ubuntu terminal colors - see example). High contrast like that tires the eye - that's why professional graphic software often use gray in their interfaces.

Selenized contrast sample

Selenized has moderate-to-low contrast - the difference in LAB lightness between foreground and background is 50, which is exactly half the distance between pure black and white. The result is easy on eyes but still very readable, even on poor displays - see a side-by-side comparison of Selenized and Ubuntu palettes.

Balanced accent colors

It's not just foreground and background colors that matter. Lightness of all accent colors need to be carefully adjusted, too: we want them to be equally readable against the background, but at the same time they cannot have exactly the same lightness because that would make them harder to tell apart (for example, our eyes expect yellow to be brighter than orange and orange brighter than red).

Selenized accent colors diagram

I have fine-tuned the lightnesses to ensure that all colors present an even contrast, even red and blue (which are too dark in many palettes). You can read more about accent color lightness and see a comparison between Selenized and other palettes here (warning: extreme ugliness of some palette examples may scorch your eyes!).

Variants for different conditions

Reducing contrast inside terminal window is one thing, but what about the contrast of the whole desktop? If you have your terminal side-by-side with a window that has black text on white background (e.g. a document viewer or a browser), the resulting contrast between the two windows will make Selenized dark less readable. That's why Selenized includes a "medium" variant - it has exactly the same hues and overall contrast, just the lightness is shifted: this ensures better readability and prevents eye fatigue when used next to a bright/high-contrast window.

Selenized next to black&white Wikipedia

There is also a "black" variant meant for people who need higher contrast - either due to especially bad display/lightness conditions, or because they are not yet used to low contrast palettes.

What about Solarized?

Selenized is based on color palette called Solarized (yay, I have forked a color scheme!). The name is derived from the greek word 'selene', which means the moon (as opposed to the sun in Solarized). I really liked the design principles behind Solarized, but there are a couple issues with it (which Selenized aims to solve). You can read more about the differences here.

FAQ

Program X doesn't looks good when I use Selenized in my terminal.

Some command-line programs make assumptions about the colors set in the terminal - for example, they may assume that some color will work well as the background color. Using them in a terminal that uses Selenized palette may require adjusting their color settings - for an example, see this issue about using Selenized with Midnight Commander.

Development & Contributing

Selenized is still work-in-progress. Here are some of my plans for the future:

  • add ready-to-use config files for more terminals
  • support more command-line programs (add selenized skins/configs for them - in particular I'd like to fine-tune dircolors to look as good as possible with Selenized)
  • add a dark-on-light variant of the palette
  • extend Selenized to 8 accent colors (add orange and violet, like in Solarized)
  • add color schemes for popular IDEs
  • add a script that would allow adjusting Selenized to your taste using a web interface
  • maybe even create a library that would allow adjusting LAB lightness in arbitrary color palettes based on the experience I got creating Selenized
  • research perceptually uniform color spaces - maybe they could be used to improve consistency of Selenized colors even further? See here and here.

If you'd like to help with any of these, please get in touch - open a pull request or contact me at jan.warchol@gmail.com.

Also, open an issue if you found a program that doesn't look good with Selenized terminal or encountered a situation where Selenized was not readable enough. Until version 1.0 I'm open to suggestions on adjusting the colors.

Forking

You are welcome to adjust Selenized to your taste - I can imagine that some people may want to change the hue of the background/content colors or adjust the contrast slightly. When doing so, please keep in mind the following (especially if you'd like to publish your fork and use "Selenized" in its name):

  • always use CIELAB color space to check lightness of the resulting colors. You don't need Photoshop for this - there are online tools for CIELAB-sRGB conversion (although they may produce slightly different results than Photoshop).
  • keep overall contrast (i.e. difference in CIELAB lightness between foreground and background colors) between 45 and 65 units. Anything outside this range is really not good.
  • keep accent color contrast (i.e. difference in CIELAB lightness between accent color and background) above 30 units. This really is the minimum.
  • preferably don't change accent color hues and their relative lightness at all.