Matt Gemmell

TOLL is available now!

An action-thriller novel — book 2 in the KESTREL series.

★★★★★ — Amazon

Shady for tired eyes

development & source 3 min read

I often find my iMac’s screen too bright, even at the lowest brightness setting; I bet that many of you are in the same position. Today on Twitter, both Jeff LaMarche and Cyril Godefroy mentioned a similar thing.

One of my unfinished projects involves a semi-transparent black overlay on the main screen, and I always found it soothing when my eyes were tired; accordingly, I always meant to take ten minutes to whip up a little app which shaded my dual screens in that way, with a configurable shade opacity. The tweets about eye-strain today finally motivated me, so allow me to present: Shady.

Large version of the Shady application icon - a set of metal blinds partially covering a Mac desktop

(Many thanks to the talented Matheau Dakoske for the Shady icon!)

Shady is a small, free, and open source application which puts a semi-transparent black shade over your screen (indeed, over all your screens, if you have more than one attached), allowing you reduce the brightness of your Mac’s screen to far below its usual minimum setting.

Screenshot showing a window full of text, both with and without Shady active.

The shade will ignore your mouse clicks, naturally, so you can continue to use your Mac as usual. It’s a normal app so if you want to interact with it you can just switch to it via the Dock or the usual Application Switcher keyboard commands, or you can use the Shady menu-icon on the right side of your menubar.

Screenshot of the Shady global menu in the Mac menubar.

Whenever Shady is the frontmost app, you can press the Up-Arrow or Down-Arrow keys to lighten or darken the shade respectively (you’ll see a helpful reminder of these commands when Shady is the frontmost app).

Screenshot of Shady's help text overlay.

You can brighten the shade all the way up to your normal screen brightness, or darken it down to 90% shade (very nearly black). It’ll change in increments of 5%, and it starts at 40% opacity (or 60% transparency), which I find is quite comfortable. Shady will save your shade level and restore it next time you launch the app, and it’ll also automatically get out of your way when it’s launched (returning the focus to whatever app you were in when you launched Shady).

Shady doesn’t do anything funky to your system (it’s just a regular application; just quit it and trash it if you don’t want it anymore), and will not damage your screens in any way. It should, however, make your eyes feel better - as long as you don’t make your screen so dark that you’re straining to see anything!

If for some reason you want to tweak the code yourself, you can browse the project in my github repository, or you can just download the Shady application. Shady supports Mac OS X Leopard or later, including Snow Leopard.

Shady is completely free and open source, and I hope you’ll enjoy it. If you get some use from it, perhaps you’ll consider either surprising me with a small gift from my Wish List, or even making a donation:

Update: Shady was updated on Wednesday 4th November 2009, with the following changes:

  • Added very pretty icon created by Matheau Dakoske and another in the bundle by Jim Moore.
  • We now use Core Animation to provide smooth transitions between shade levels.
  • There's now a menu-icon (NSStatusItem) to allow changing the shade level from any application. The icon itself was a quick Photoshop job; feel free to contribute a better one.
  • You'll now see some helpful text about Shady's keyboard shortcuts when Shady is the frontmost application.
  • The command/Apple key is now optional when triggering the keyboard shortcuts to increase or decrease the shade, or to quit Shady.
  • Simplified and tidied up the code quite a bit.

Update: Shady was updated on Friday 6th November 2009, with the following changes:

  • There's now a Preferences window, containing the option to disable Shady's icon in the Dock, if you want to interact with it purely from its menubar icon.
  • Shady now embeds the Sparkle framework, so in future it will automatically update itself if you allow it to, or you can just choose "Check for Updates" from the Shady menu to do it manually.

    (You should keep in mind that the Xcode project for Shady now uses a Run Script build step to perform some tasks related to Sparkle automatically; in particular, it signs the binary using my private key. You will not have the private key on your system, so if you want to build Shady for yourself you should disable that Run Script build step.)

  • Note: the download URL has changed. If you're linking to Shady's download from elsewhere, take note.

Note: Shady has moved to my business site, Instinctive Code, so go there for more information and future updates. Shady is still free and open source, and is still being developed by me; it just has a new home on the web.