Mac software I use: Geektool releases your inner geek

Mac software I use: Geektool releases your inner geek

I recently posted a screenshot of my MacBook Pro’s desktop on the Google+ community for the Mac Power Users podcast. Someone had been asking for people to post the image and list the menubar apps they had running. But I got several people asking me about the Geektool stuff visible on the desktop.

Geektool is a fun Mac app that lets you place a web image, the contents of a text file, or the results of a shell script–what the program calls “geeklets”– on the desktop, on top of your selected wallpaper, but under all your open applications and documents. Here’s what the geeklets look like when the program is open.


And when the program is closed and they’re operating normally underneath.


What might you want such a program to do for you? For starters here’s what I have on my desktop:


Four separate geeklets make up the date and time block. Five more geeklets provide current temperature outdoors, high and low for the day plus brief forecast, current weather, and extended 7-day forecast. The next geeklet provides a list of top RAM processes, the 10 applications using the most memory, which lets me see at a glance a bit of what my computer is doing under the hood, as does the next geeklet that show the top CPU processes, the applications using the central processor. You can’t see it in the screenshot, but on this one, if an application reaches a certain threshold it turns yellow and then red, providing a visual warning for me.

CPU load gives a single numeric indicator of how hard the computer is working. Under normal, idle load it sits around 1.50, but when I’m encoding a video or doing other intensive work it jumps into the 50s or more. What the exact number indicates isn’t all that important. It just provides a relative indicator, just like you don’t have to understand what the RPM gauge on your car represents for it to tell you how hard your car is working.

Finally, the last one provides several details, including the number of unread mails (when Mail is running), space free on the hard drive, current wifi network, whether the Internet is reachable, and various CPU stats including the amount of time since the last restart of the computer, how many users logged in right now, and more CPU load averages.

So what’s under the hood of these geeklets. Most of them are either the results of Terminal commands[1] For example, the ‘Month’ geeklet that displays “July” is the result of the Terminal command date +%B, which means “show me the month formatted as a word, as opposed to a number.” That’s the simple one. Other Terminal commands are more complicated like the one that shows the CPU load: uptime|awk '{print $(NF-2)}'|grep -v average.

Now don’t be impressed at my awesome Terminal and grep skills. In fact, all of my geeklets are based on stuff I’ve found online, usually through simple Google searches for “geektool geeklet” and copying or downloading what other generous and smarter folks have shared.

In addition to the Terminal commands, there are also scripts, where Geektool references a file on the Mac that runs in a programming language, like Ruby. The RAM and CPU process geeklets as well as most of the weather geeklets all work off of Ruby scripts written by the prolific Brett Terpstra. Find all his Geektool posts here.

All of those so far, have been of the “shell” variety, but what about “file” and “image”. Image is useful if there’s an image file on your computer or on the Internet that changes content, but not name. For example, one of our local TV stations provides a graphic of the seven-day weather forecast (I know, I know, the weather again. I’m obsessed with the weather.) That image file doesn’t change its URL from day to day: So, if I put that on my desktop and set it to refresh, say, once per hour, I should get the updated 7-day forecast every day. You could do something similar with your favorite webcomic if they also keep the image name the same from day to day.

I don’t find myself using the “file” geeklet very often, but I’ve seen other users talk about keeping a to-do list in a text file and then using Geektool to display that on their desktop.

The uses for Geektool are only limited by your imagination and you aren’t limited to the utilitarian stuff I use. I’ve seen some very creative people make very dynamic computer desktops with Geektool.[2] Some even take advantage of the desktop wallpaper to interact with the geeklets, such as putting geeklet text on top of the image of a notebook as if it were written in it.

I’m always on the lookout for more cool geeklets so if you’ve come across any, be sure to let me know.

  1. The Terminal is a program on the Mac that provides access to the command line, a means of controlling the computer through typed text commands. The command line on the Mac gives access to the original, underlying UNIX operating system that lies at the heart of the Mac operating system and is extremely powerful.  ↩
  2. A few examples: AppStorm: Over 46 Powerful Geeklets and Scripts for the Geek Within You  ↩

Image Credit

  • geektool-full: Own photo
  • geektool-running: Own photo
  • geektools-explained: Own photo
  • shot47: TYnsoe | Copyright by owner. Used under Fair Use doctrine