1. 15

Recently some people have expressed their bewilderment that I use a white background colour for my terminal emulator (and by extension, Vim).

I was surprised by the bewilderment, as a white background is the default for xterm, (u)rxvt, gnome-terminal, and probably some other popular terminal emulators, which is the reason I use it: I just never bothered the change xterm’s default, and now I’m used enough to it that I go out of my way to change it if it’s not the default.

A white background is also the default for almost all popular websites, word processors and other text editing software (spreadsheet, presentations, etc.), and many other applications, so it’s nice to have some parity. I never quite understood why terminals and editor/IDEs need to be different.

I’m curious how “unique” I am in this preference, and what colour scheme other lobsters use.

  1. 12

    I’ve gravitated towards using the light Solarized scheme in my terminals.

    Ever since I started using Unix and X I’ve had a fondness for backgrounds with X11 “ivory” color.

    1. 8

      Here’s another Solarized addict. Dark variant however. Easy on the eyes and most software has some sort of support or pre-made theme for it.

      1. 4

        I prefer solarized light too, though I used to like dark, over time light seems nicer to me.

        1. 2

          Solarized makes my eyes feel weird due to the lack of contrast. I tried it a few times, but it is not for me. I prefer more contrast.

        2. 7

          The Acme color scheme, of course!

          And no syntax highlighting either.

          Edit: I realized this probably sounds Plan 9 fanboyish - Acme is one of the best color schemes I’ve found for my terrible eyesight, and I wish I could use syntax highlighting but having that many colors on screen at once is a major distraction for my brain!

          1. 2

            Yes, I found a lovely Emacs plugin for acme colours and have written one for Vis myself, because it’s so soft on the eyes.

          2. 6

            I use light backgrounds when the environment I’m in is bright (like at a coffee shop, or the average office). Darker environments (like my room at 3am) I’ll switch to dark backgrounds, especially ones that play well with redshift/flux/windows night light. There are plenty of neat specific color schemes out there. I tend to bounce around them as my mood and tastes change by the day.

            1. 5

              It seems that people who prefer white/light backgrounds in terminal/editors are in minority. Personally I find light background less tiring for my eyes. I use Selenized color scheme.

              1. 4

                I use Solarized Light during the day and Dark during the night; I’ve written how I automated switching between the two on my blog. If I had to choose just one, I’d choose Light.

                1. 4

                  Dark all the way. Although I’ve recently started using CLion for Rust development and have stuck with the default light theme as I can’t find a dark one that I like. The only other time I switch to light is if I happen to be working outside. Screen shot in this tweet shows terminal and vim theme.

                  1. 4

                    I have issues distinguishing colors on a white background, and I like my shiny colors, so I use a dark background.

                    1. 3

                      I always try to go dark if it is possible. I’ve even switch apps because of it - for instance going from Slack to Mattermost. I almost nutted myself when macOS went dark mode and I even use Dark Reader in Firefox.

                      I do believe it’s better for my eyes going as dark as possible. If I by accident stumble upen some site or app filling the screen with white, it hurts. It burns. It makes my head hurt. It feels like I’m allergic to white almost :P

                      1. 3

                        White on black is common and readable at low brightnesses. Personally: Black background, white foreground. Monitor set to lowest brightness, 80% contrast, very warm colour temperature. No syntax highlighting.

                        1. 3

                          I use different colour combinations depending on the machine I’m working on. The local theme - as in ‘localhost’ - is nearly white text on dark grey background, remote machines get a pastel-like light coloured background with black text with a specific colour for each machine. This makes it easier to stay aware of what machine I’m working on.

                          1. 2

                            As far as I can tell, dark terminals are a meme on Reddit/other currently. Something about hackers in 80s films using green text on black backgrounds and how everyone wants to be this guy:


                            1. 2

                              I use black on white, and turn the light on in the room so the white wall behind the monitor equalizes, more or less, too. I find black on white to be the easiest to read in a variety of lighting conditions and allows me to turn the brightness of the monitor down.

                              1. 2

                                I recently switched to Dracula Theme - it’s available for all the tools I use (VSCode, VIM, iterm2) but tons more. Every now and then I want a light theme, Solarized is still the light color scheme to go for me. Just need some workflow to automate the light/dark switching.

                                  1. 2

                                    awesome, thank you!

                                1. 2

                                  I use light backgrounds everywhere too, reading on a dark background is more difficult for me. I use Hemisu light for terminals and soft morning for Emacs.

                                  1. 1

                                    I used the pastelmac color theme on emacs for a long time. I also liked the netbeans theme. These days it’s just plain black (fg) on beige or lemonchiffon (bg) with syntax coloring turned off.

                                    1. 14

                                      A while back, Eliot Miranda posted a detailed message for dark theme users on the squeak-dev mailing list. This is what he wrote:

                                      Hi Dark Themers,
                                      in an earlier life I worked in optics,
                                      designing holographic cameras for bubble
                                      chamber physics, so I know a little about
                                      focussing systems and depth of field.  The
                                      iris in the eye expands or contracts to allow
                                      or restrict the amount of light entering the
                                      eye, attempting to maintain a constant
                                      luminosity on the retina so that either not
                                      too little, or not too much light falls on the
                                      cones and rods in the retina.  When the iris
                                      is dilated (open) the eye allows as much light
                                      as possible into it.  You can visualize the
                                      light from a point (say a pixel) that reaches
                                      the iris as a cone.  The lens in the eye
                                      focuses this expanding cone back into a
                                      contracting one that comes to a point on the
                                      retina corresponding to the position of the
                                      pixel "out there on the screen".
                                      Focusing is achieved by a muscle around the
                                      eye's flexible lens, the cillary muscle, which
                                      squeezes the lens into a more spherical shape
                                      to cause rays entering the eye to bend more,
                                      brings no objects closer to the eye into
                                      focus, or by the cillary muscle relaxing,
                                      allowing the lens to stretch back to a flatter
                                      shape, to bend rays less, bringing objects
                                      further away into focus.  In old age
                                      shortsightedness is caused by the lens loosing
                                      its elasticity and remaining squeezed, and
                                      longsightedness by it losing flexibility and
                                      the cillary muscle losing strength so that the
                                      lens cannot be squeezed as much.  By the time
                                      we hit our 40's many of us will suffer one of
                                      these two extremes and have to wear glasses
                                      either for reading or for driving or, in my
                                      case, for both.
                                      Getting back to the cone of rays from a pixel
                                      that the iris and lens conspire to bring to a
                                      point on the retina, if there is a lot of
                                      light incident on the eye and the iris is
                                      undilated then this cone is much slimmer.  The
                                      result of these differing cones on focus is
                                      called depth of field.  When the cone is "fat"
                                      depth of field is reduced; only pixels in the
                                      same plane (actually a spherical surface, not
                                      a plane, because the retina is spherical; film
                                      cameras have planar light receptors; the eye
                                      and camera obscures etc have spherical light
                                      receptors) will be in focus; others out of the
                                      plane will produce a diffuse circle on the
                                      retina.  When the cone is "slim" (because more
                                      light is incident on the eye) depth of field
                                      is increased because the size of the out of
                                      focus diffuse circle is smaller. Consequently,
                                      when there is less light falling on the eye,
                                      depth of field is reduced; the cones are
                                      fatter and as the eye roams the cillary muscle
                                      must work to alter the curvature of the lens
                                      to keep things in focus.
                                      The implication for the dark theme is that,
                                      while it appears to have better contrast (it
                                      does not; but more on that below), the real
                                      effect is that it causes the eye to do more
                                      work than a light theme because the amount of
                                      light entering the eye is less.  So both in
                                      the short term and especially over the long
                                      term the dark theme, relative to the light
                                      theme, will tire your collate muscle and cause
                                      your lens to stiffen or squish sooner.
                                      Why then, if what I'm saying is true, did all
                                      those World War Two military aircraft use
                                      white letters on a black background?  My lotus
                                      europa is the same.  The disc of the
                                      instrument is illuminated by a lamp so one can
                                      see it at night, and were the panel painted
                                      white then, for the same contrast, much more
                                      light would hit the eye that for white letters
                                      on a black background and the pilot's (or
                                      driver's) night vision would be impaired as
                                      the iris would contract.
                                      I don't want to fear monger, but I do want to
                                      suggest that it is healthier and less wearing
                                      on the eyes to use light themes.
                                    2. 1

                                      I use different colour schemes for different environments so I can visually distinguish what I’m working on, but my default terminal is a black background.

                                      Bright screens tend to hurt my eyes and give me a headache, so lots of white cripples me after a while. I use the badwolf colour scheme in vim which is nicely dark and doesn’t have too much variety of colours, but just enough to allow me to distinguish keywords, functions, etc.

                                      1. 1

                                        I’m always a little amazed at my personal preferences. I can barely look at a website with a dark background before my eyes go sideways, but I have to have a dark background for cli and neovim or it’s too bright to focus.

                                        1. 1

                                          I use black at home in the dark and white when I’m on my laptop outside in brighter environments.

                                          I have script that switches between the two: https://www.youtube.com/watch?v=UEM_v8oVvS0

                                          1. 1

                                            I switch between a totally black and totally white colour scheme while in Emacs (the built in themes, “wheatgrass” and “whiteboard”), depending on my real-world environment, but tend to stick to the dark one, since long time exposures to a bright screen doesn’t seem to be good for my screen.

                                            My terminal (MATE) uses the “Black on light Yellow” scheme, which I find rather nice, and adds a contrast to other applications.

                                            1. 1

                                              Base16 eighties. I am very sensitive to brightness and this dull coloring scheme works wonders on my eyes.

                                              1. 1

                                                If you do some Googling on HCI/usability research, you’ll find studies suggesting that green-on-yellow and black-on-light-grey – sometimes qualified as for serif and sans-serif, respectively – get the highest overall readability scores. But also that the effect of specific color combinations is usually outweighed by the effect of contrast overall. There’s also a nice deep rabbit hole you can go down on font and case and how your eyes and brain recognize text shapes to help you read (shapes of words seem to be more important than individual letters, which is why mixed-case text is generally easier to read, for example).

                                                So really, just use whatever you like that provides sufficient contrast to be readable for you. I personally use light-on-dark (specifically, Solarized dark) for my terminals, and I do my coding in Emacs in a terminal. But that’s just my personal preference once I’ve got a choice of sufficient-contrast color options, and the most important thing I do, in my mind, is use a monospace font with a true bold variant, and default all my terminals to bold for the extra contrast.

                                                1. 1

                                                  you’ll find studies suggesting that green-on-yellow and black-on-light-grey – sometimes qualified as for serif and sans-serif, respectively – get the highest overall readability scores. But also that the effect of specific color combinations is usually outweighed by the effect of contrast overall.

                                                  I tried researching this a few years ago, but wasn’t able to find high-quality studies for this. Most studies I found were a small (often biased) sample size, tested printed text rather than computer screens, used CRT screens, or had methodology limitation. I can’t find my notes on it right now, but this was about 2-4 years ago.

                                                  That doesn’t mean those studies aren’t useful, just that saying “studies have shown that …” is a bit of a stretch.

                                                  If you know of good quality research on this then I’d love to know.

                                                2. 1

                                                  I usually use a dark background with light text, in part because I’ve spent a lot of late nights and long days staring at a screen. I also use thing like Redshift and flux a lot, for similar reasons.

                                                  When designing websites for my own personal use, I ended up with the aqua on dark blue you can see at https://idea.junglecoder.com.

                                                  Now, I’ve seen a wide range of preferences at different jobs, from standard Visual Studio white background with blue/green text, all the way to a lot of Green/black tmux panes.

                                                  Terminals and IDEs have some parity the the looks of a lot of video games, at least when it comes to UI colors, but are also usually far more customizable than most other programs when it comes to choice of color. O suppose a lot of people have a sort of matrix fantasy, or just like the different contrast levels


                                                  Fonts are another interesting area to experiment with. I’ve used a lot of defaults in things like PuTTY or the like, I like Iosevka a fair bit, and I have done a non-trivial amount of programming using Comic Sans.

                                                  1. 1

                                                    I recently learned that white is a better default background because to someone who can’t see red, red-on-white looks like black on white, which is still legible.

                                                    1. 1

                                                      After about 30 seconds of reading light text on a dark background, I start seeing horizontal stripes everywhere. Apparently this is somewhat common in aging eyes (I’m 50+). Since so many web sites seem to be in love with dark themes these days, I’ve had to install a browser plugin that lets me flip the colour scheme (Dark Reader).

                                                      1. 1

                                                        I’m with the crew that prefers to switch between light background in the day, and dark background at night.

                                                        1. 1

                                                          I too use a light colorscheme ~70% of the time. I don’t like heavy syntax highlighting, so I use a simple colorscheme like nofrils-light primarily.

                                                          1. 1

                                                            I prefer a white background in terminals because websites usually are too. Switching back and forth between different schemes is tiresome.

                                                            However, at work I recently switched to a dark background because there is to much crappy tooling which prints unreadable colors on a light background.

                                                            1. 2

                                                              too much crappy tooling which prints unreadable colors on a light background.

                                                              Yeah, that can be an issue; the best solution for this is to explicitly set the background and not just the text colour, or adding options to disable colours (for a lot of tooling colours aren’t really needed).

                                                              Most of the time maintainers are receptive to patches to fix these issue in my experience.

                                                              1. 1

                                                                I wrote my own terminal emulator to ensure all colors are visible on any background - it will just adjust output color requests to something easier on my eyes (through a pile of hacks, mostly, but meh it works for me). I got so tired of trying to read yellow on white…. or even blue on black.

                                                                1. 1

                                                                  Sounds interesting. Is the source for this available?

                                                                  1. 1

                                                                    Yeah, but no promises you can even get it to work: https://github.com/adamdruppe/terminal-emulator (like path names are hardcoded to my system in the makefile, but if you fix those it might work).

                                                                    This is one of the things I made purely for myself. But the code to hack up the colors is just this: https://github.com/adamdruppe/terminal-emulator/blob/master/main.d#L1302

                                                                    and I add other entries as needed for me, but just those adjustments have made a big difference to my eyes. Note that the function is called based on the background for that cell up above in the draw function https://github.com/adamdruppe/terminal-emulator/blob/master/main.d#L1034

                                                              2. 1

                                                                Zenburn or bust.

                                                                Solarized Dark works in a pinch.

                                                                1. 1

                                                                  I used a black background on my terminals for 20 years, mostly after starting out in text-mode DOS/Linux consoles. Paradoxically, I switched to a light (not white) background when Mac OS got night mode. It helped me realize that:

                                                                  • I’ve been gradually spending more and more time in the browser.
                                                                  • I still haven’t been able to use a dark background in my browser windows, after many many different attempts.
                                                                  • It feels better for the background to not change all the time when I switch windows.
                                                                  1. 1

                                                                    Solarized Dark. I used to tweak it a little but now I just run with the default. One change I do maintain is a jet black terminal background though. It’s nice to have that solid indication that you’re at the shell.