diff options
Diffstat (limited to 'shellenv/dircolors-solarized/README.md')
-rw-r--r-- | shellenv/dircolors-solarized/README.md | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/shellenv/dircolors-solarized/README.md b/shellenv/dircolors-solarized/README.md new file mode 100644 index 0000000..388daa6 --- /dev/null +++ b/shellenv/dircolors-solarized/README.md @@ -0,0 +1,384 @@ +<h1>Solarized Color Theme for GNU ls (as setup by GNU dircolors)</h1> + +This is a repository of themes for GNU ls (configured via GNU +dircolors) that support Ethan Schoonover’s [Solarized color +scheme](http://ethanschoonover.com/solarized). + +See the [Solarized homepage](http://ethanschoonover.com/solarized) +for screenshots, details and color theme implementations for terminal +emulators and other applications, such as Vim, Emacs, and Mutt. + +Quick note for MacOS users: Your OS does not use GNU ls, so you can not use +this themes. However, [@logic](https://github.com/logic) provided something +your can use in [this issue](https://github.com/seebi/dircolors-solarized/issues/10). +Another option (as [proposed](https://github.com/seebi/dircolors-solarized/issues/10#issuecomment-2641754) +by [@metamorfos](https://github.com/metamorfos)) is to install GNU ls with +homebrew (coreutils). + +<h2>(Selected) Table of Contents</h2> + +* [Repositories](#repositories) +* [Themes](#themes) + * [Theme #1: "256dark"](#256dark) + * [Theme #2: "ansi-\*"](#ansi) +* [Installation](#installation) +* [Understanding Solarized Colors in Terminals](#understanding-solarized-colors-in-terminals) + +<h2 id="repositories">Repositories</h2> + + * The main Solarized repository: [/altercation/solarized](https://github.com/altercation/solarized) + * These themes as a separate repository: [/seebi/dircolors-solarized](https://github.com/seebi/dircolors-solarized) + +<h2 id="themes">Themes</h2> + +First, note that "256 colors" does not necessarily mean better than "ANSI". +Read on for more details. + +1. "256dark" - Degraded Solarized Dark theme for terminal emulators and + newer dircolors that both support 256 colors. This theme allows for the display + of the *approximate* Solarized palette, but it's very easy to set up and allows + for the use of many more colors beyond the 16 in Solarized. + (By [seebi](https://github.com/seebi)) + + Note: In the future, it may be possible to change the approximate + Solarized colors to the exact Solarized palette; and this theme would + automatically improve. Work on an appropriate .Xresources has not yet + started. (See [256-color remapping discussion](https://github.com/altercation/solarized/issues/8).) + +2. "ansi-universal" - Universal theme for 16-color or 256-color + terminal emulators and any version of dircolors. It is optimized for + Solarized Dark and Light and acceptable with default ANSI colors. This theme allows + for the display of the *exact* Solarized palette, but it requires the reconfiguration + of the terminal emulator's ANSI color settings and limits you to the 16 + Solarized colors. (By [huyz](https://github.com/huyz)) + + "ansi-dark" - Tweaked version of "ansi-universal", slightly more + optimized for the Solarized Dark palette to the slight detriment of the + Solarized Light palette. + + "ansi-light" - Tweaked version of "ansi-universal", slightly more + optimized for the Solarized Light palette to the slight detriment of the + Solarized Dark palette. + +<h3 id="256dark">Theme #1: "256dark" (by <a href="https://github.com/seebi">seebi</a>)</h3> + +<h4 id="256dark-features">Features / Properties</h4> + + * Solarized :-) + * Comment style for backup and log and cache files + * Highlighted style for files of special interest (.tex, Makefiles, .ini ...) + * Bold hierarchies: + * archive = violet, compressed archive = violet + bold + * audio = orange, video = orange + bold + * Tested use-cases: + * latex directories + * source code directories + * Special files (block devices, pipes, ...) are inverted using the + solarized light palette for the background + * Symbolic links bold and distinguishable from directories + +<h4 id="256dark-screenshots">Screenshots</h4> + +Here is a [screenshot](https://github.com/seebi/dircolors-solarized/raw/master/img/dircolors.256dark.png) of a prepared session which shows the content of the test-directory.tar.bz2. +It is captured from an [iterm2](http://iterm2.com/) using the [dz-version of the awesome Inconsolata font](http://nodnod.net/2009/feb/12/adding-straight-single-and-double-quotes-inconsola/) (but you can use any terminal emulator supporting 256colors). + +![session](https://github.com/seebi/dircolors-solarized/raw/master/img/dircolors.256dark.png) + +Some more screenshots are provided by [andrew from webupd8.org](http://www.webupd8.org/2011/04/solarized-must-have-color-paletter-for.html). + +<h3 id="ansi">Theme #2: "ansi-\*" (by <a href="https://github.com/huyz">huyz</a>)</h3> + +This theme and its variants require that the terminal emulator be properly +configured to display the Solarized palette instead of the 16 default ANSI +colors. + +<h4 id="ansi-features">Features / Properties</h4> + +This theme called "ansi-universal" and its variants "ansi-dark" and +"ansi-light", were designed to work best with both Solarized Dark and Light +palettes, but also to work under terminals' default ANSI colors. In other +words, these themes were designed with a "fallback" scenario: if you happen to +find yourself on a terminal where the Solarized palette has not been set up, +you won't have elements become invisible, incrediby hard to read, or a boring +gray. + +Thus, the universal theme was designed with these 4 palettes in mind: + +- Solarized Dark: "ansi-universal" works best when the terminal emulator is + set to this scheme +- Solarized Light: "ansi-universal" works best when the terminal emulator is + set to this scheme +- Default terminal ANSI Colors with a dark background +- Default terminal ANSI Colors with a light background + +The "ansi-dark" and "ansi-light" are slightly optimized versions of "ansi-universal" +for Solarized Dark and Solarized Light, respectively, if you're willing +to sacrifice a bit of universality. + +Colors were selected based on the characteristics of the items to be displayed: + +- Visibility generally follows importance, with an attempt to let unimportant + items fade into the background (which is not always possible when + simultaneously supporting dark and light backgrounds) +- Loud colors are chosen to call attention to noteworthy items + +<h4 id="ansi-screenshots">Screenshots</h4> + +Solarized Dark (this example uses iTerm2 on OS X): + +![Solarized Dark](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-dircolors-in-iTerm2-solarized_dark.png)] + +To see what this theme looks like when the terminal emulator is set with different color palettes: + +* [Solarized Light (with iTerm2 on OS X)](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-dircolors-in-iTerm2-solarized_light.png) +* [Default dark background of iTerm on OS X](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-dircolors-in-iTerm-dark.png) +* [Default light background of iTerm on OS X](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-dircolors-in-iTerm-light.png) +* [Default dark colors of PuTTY on Windows](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-dircolors-in-PuTTY-dark_default.png) +* [Default light colors of PuTTY on Windows](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-dircolors-in-PuTTY-light_system.png) (Select "Use system colors") + + +<h2 id="installation">Installation</h2> + +### Downloads + +If you have come across these themes via the [dircolors-only repository] on +github, you may want to check the main [Solarized repository] to see if there +are official themes. + +In the future, the [dircolors-only repository] may be kept in sync with the main +[Solarized repository], but the [dircolors-only repository] may be left separate +for installation convenience and to include the latest improvements. + +At this time, issues, bug reports, changelogs are to be reported at the +[dircolors-only repository]. + +If you want to access the latest improvements to a specific theme, then go to +that theme's unique github directory: + +* "256dark": https://github.com/seebi/dircolors-solarized +* "ansi-\*": https://github.com/huyz/dircolors-solarized + +[Solarized repository]: https://github.com/altercation/solarized +[dircolors-only repository]: https://github.com/seebi/dircolors-solarized + +### General Instructions + +The Solarized color themes are distributed as database files for GNU +dircolors, which is the application that sets up colors for GNU ls. +To use any of the database files, run this: + + eval `dircolors /path/to/dircolorsdb` + +To activate the theme for all future shell sessions, copy or link that file to +`~/.dir_colors`, and include the above command in your `~/.profile` (for bash) +or `~/.zshrc` (for zsh). + +For Ubuntu 14.04 it is sufficient to copy or link database file to `~/.dircolors`. +Statement in `~/.bashrc` will take care about triggering eval command. + +### Additional Instructions for 256-color Solarized Themes, e.g. "256dark" + +For the 256-color Solarized dircolors themes, such as "256dark", you need a 256-color +terminal (e.g. `gnome-terminal` or `urxvt`) and a correct `TERM` variable, +e.g.: + + export TERM=xterm-256color # for common 256 color terminals (e.g. gnome-terminal) + export TERM=screen-256color # for a tmux -2 session (also for screen) + export TERM=rxvt-unicode-256color # for a colorful rxvt unicode session + +### Additional Instructions for ANSI Solarized Themes, e.g. "ansi-universal" + +For the ANSI Solarized dircolors themes (which work with both 16-color and +256-color terminals) you must configure your terminal emulator (See the +section "Understanding Solarized Colors in Terminals" for a detailed +explanation behind these settings): + +1. Make sure that you have changed your terminal emulator's color settings to + the Solarized palette. + +2. Make sure that bold text is displayed using bright colors. For example, + - For iTerm2 on OS X, this means that Text Preferences must have the `Draw + bold text in bright colors` checkbox *selected*. + - For Apple's Terminal.app on OS X, this means that Text Settings must + have the `Use bright colors for bold text` checkbox *selected*. + +3. It's recommended to turn off the display of bold typeface for bold + text. For example, + - For iTerm2 on OS X, this means that Text Preferences should have the + `Draw bold text in bold font` checkbox *unselected*. + - For Apple's Terminal.app on OS X, this means that Text Settings + should have the `Use bold fonts` checkbox *unselected*. + - For XTerm, this may mean setting the `font` and `boldFont` to be the + same in your .Xresources or .Xdefaults, e.g.: + + xterm*font: fixed + xterm*boldFont: fixed + +Example: for iTerm2, these are the correct settings: + +![iTerm bold settings](https://github.com/huyz/dircolors-solarized/raw/master/img/screen-iTerm2-bold-options.png) + + +<h2 id="understanding">Understanding Solarized Colors in Terminals</h2> + +### How Solarized works with ANSI-redefinition themes + +8- or 256-color terminal programs such as dircolors use color codes that +correspond to the expected 8 normal ANSI colors. dircolors additionally +supports bold, which terminal emulators will usually display by using the +*bright* versions of the 8 ANSI colors and/or by using a bold typeface with a +heavier weight. (Note that different terminal emulators may have slightly +different ideas of what color values to use when displaying the 16 [ANSI color +escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors).) + +In order to be displayed by 8- or 256-color terminal programs, which cannot +specify RGB values, Solarized must replace the default ANSI colors. Since the +Solarized palette uses 16 colors, not only must this color scheme replace the +8 normal colors but must also take over the 8 *bright* colors, for a total of +16 colors. This means that a Solarized terminal application loses the ability +to bold text but gains 8 more Solarized colors. + +About half of the Solarized palette is reminiscent of the original ANSI +colors, e.g. Solarized red is close to ANSI red (or more precisely, the +general consensus of what ANSI red should look like). But the rest of the +Solarized colors do not correspond to any ANSI colors, e.g. there is no ANSI +color that corresponds to Solarized orange or purple. + +This means that, for example, if the dircolors theme wants to display "green", a +Solarized terminal will display something close to green, but if the theme +wants to display "bold yellow" or "bright yellow", a Solarized terminal will +not be able to display it. However, a Solarized theme will be able to display +the new colors orange and purple and also several shades of gray. This is +again thanks to the replacement of the ANSI *bright* colors; e.g. ANSI "bold +red", which is usually displayed as "bright red", will now show as Solarized +orange, while ANSI "bold blue", which is usually displayed as "bright blue", +will now be a shade of gray. + +#### Terminal Emulator + +Because dircolors is entirely dependent on the terminal emulator for the +display of its colors, you cannot directly tell a dircolors theme to display +Solarized orange, e.g. by specifying an RGB value. Instead, the theme's colors +must be chosen using the available color codes (either ANSI or one of the 256 +XTerm colors) with the expectation that the terminal emulator will display +them as appropriate Solarized colors. For example, the dircolors color +format `01;31` which normally would be "bold red" is expected to be displayed +by the terminal emulator as Solarized orange. + +So in order for dircolors to display the *exact* Solarized palette, you have +to set your Terminal emulator's color settings to the Solarized palette. The +[Solarized repository] includes theme settings for some popular terminal +emulators as well as Xresources; or you can download them from the official +[Solarized] homepage. If you use the 16-color themes *without* having +changed your emulator's palette, you will get a strange selection of colors +that may be hard to read or gray. + +Yes, this means that, to use the *exact* Solarized theme for dircolors, you +need to change color settings for not one but two different programs: your +terminal emulator and dircolors. The two sets of settings will work in +concert to display Solarized colors appropriately. + +#### Bold Settings + +Historically, there has been a one-to-one correspondence between the bolded +versions of the 8 default ANSI colors and the bright versions of the 8 default +colors. Back in the day, when a color program demanded the display of bold +text, it was probably just easier for terminal emulators to display a brighter +version of whatever color the text was (and expect the user to interpret that +as bold) than to display a typeface with a bold weight. + +Nowadays, it is easy for terminal emulators to display bold typefaces, so it +doesn't make sense for bolded text to change color, but the confusing +association remains. In fact, new terminal emulators allow users to break the +correspondence between bold and bright and can simply change the font. + +However, ANSI terminal applications such as older dircolors only +have a conception of bold and don't know about the possibility of using up to +16 colors. So to use all 16 Solarized colors, we change the semantics of +"bold" in the theme to mean that we want to access the 8 new Solarized colors, +including the grays. Recall the example above, where we described that the +dirco color format `01;31`, which would have normally displayed bold red, is +expected to show up as Solarized orange. + +This is why it is important to *not* break the association between bold and +bright colors. Many terminal emulators offer an option to disable the use of +bright colors for bold, and you must not do so. Often, new users of Solarized +will be confused when they change their terminal emulator's color palette to +Solarized but haven't yet installed Solarized-specific color themes for all +their terminal applications (e.g. mutt, ls's dircolors, irssi, and their +colorized shell prompts). They will see texts that are hard to read or +disappear entirely. The solution isn't to disable bright colors; the solution +is to install Solarized color themes for all terminal applications and then you +will have all 16 colors. + +Also, because the semantics of "bold" are lost in favor of more colors, it +also makes sense to disable the display of bold text as a bold typeface. It +won't hurt to see bold typefaces wherever the new 8 Solarized colors are +displayed but it doesn't make much sense anymore. + +### How Solarized works with 256-color themes + +Newer versions of dircolors, as well as modern terminal emulators, support 256 +colors. Since 256 > 16, does this mean that 256-color dircolors themes are +better than ANSI dircolors themes for displaying the Solarized palette? Not +necessarily. Solarized is a 16-color palette with unique RGB values. +256-color terminal emulators have more colors than the ANSI palette but +completely different RGB values. (See [8-bit color +graphics](http://en.wikipedia.org/wiki/256_colors).) The "256dark" +theme was designed to use these standard fixed colors. + +#### How Solarized could work with 256 colors without touching ANSI + +There is ongoing +[discussion](https://github.com/altercation/solarized/issues/8) on how to +reconfigure the approximate Solarized colors (the default 256 XTerm colors) to +display the exact Solarized colors. The benefit of this approach is that the +ANSI colors would not be messed with, and all the existing terminal +applications (with non-Solarized-aware color themes) that expect ANSI colors +would get ANSI colors; i.e. you would not see text accidentally disappear or +turn gray on you as soon as you change your terminal emulator's ANSI color +settings to Solarized. + +The disadvantage of such a solution means that 8-color terminal applications +such as irssi or older dircolors would not be able to display Solarized +colors, no matter what theme they used. + +Work on an official solution has not yet started but the +[discussion](https://github.com/altercation/solarized/issues/8) has presented +some working solutions, at least for XTerm and possibly other Linux terminal +emulators. + + +The Solarized Color Values +-------------------------- + +L\*a\*b values are canonical (White D65, Reference D50), other values are +matched in sRGB space. + + + SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB + --------- ------- ---- ------- ----------- ---------- ----------- ----------- + base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 + base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 + base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 + base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 + base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 + base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 + base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 + base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 + yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 + orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 + red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 + magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 + violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 + blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 + cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 + green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 + +NOTE: + +* For "256-color" themes, the XTERM/HEX column lists the approximate Solarized + colors that are used (note the RGB values in the XTERM/HEX column only + approximates the RGB values in the HEX column). +* For "ANSI" themes, the TERMCOL column lists the ANSI colors that are replaced + with the Solarized colors listed under the HEX column. |