Jasdev requested this post a month ago and I’ve just gotten around to it. As the title suggests, my development environment is almost entirely monochromatic. I use the default Terminal theme on OS X and made my own theme for Sublime Text 3.
My Sublime theme Infimum is available on GitHub and I wrote a post about it before. Creating a theme is very simple. I used an online editor called TmTheme Editor. It’s not great but it has allowed me to make and view changes quickly. You can load a tmTheme file directly from a URL, so you can play around with Infimum from the GitHub repository. Many of the scopes are assigned the default style: black on white without any text decoration.
After using this theme for over a year, I decided that many syntax highlighting themes use colors excessively. They remind me of Winamp skins and Windows XP themes from way back. I don’t find them cool anymore.
My syntax highlighting settings offer minimal guidance. They help me find rough structure in my code and the occasional typos. Most importantly, they’re not visually distracting, unlike some from previous themes I used.
As the Sublime default, Monokai ended up being the theme I used when I first started using the editor. I tried it out again and looked for things that did not appeal to me. What stands out for me the most in the following image is how the header file has member function names highlighted in green but the source file does not. I don’t like those inconsistencies.
Solarized is (was?) another popular theme. I heard about it during high school (~8 years ago), and thought it was technical and fancy. I don’t think it provides enough contrast for me now.
I was surprised to find that it also has some weird inconsistencies. Take a look at the braces in the following image:
Why are two colors used? I just don’t get it.
Infimum isn’t perfect yet. I give it tweaks every now and then, but those have been rare. I don’t really notice it anymore, which was the entire point!
Scope | Hex |
---|---|
Comment | #999999 |
Number | #000000 |
Built-in constant | #333333 |
User-defined constant | #000000 |
Keyword | #000000 |
Storage | #000000 |
Storage type | #000000 |
Class name | #000000 |
Inherited class | #000000 |
Function name | #000000 |
Function argument | #000000 |
Tag name | #555555 |
Tag attribute | #000000 |
Library function | #000000 |
Library constant | #000000 |
Library class/type | #000000 |
Invalid | #FFFFFF (background #000000) |
Invalid deprecated | #474747 (background #E0E0E0) |