How to GeekTool your Mac to Awesomeness

by Milind Alvares

How to GeekTool your Mac to Awesomeness

by Milind Alvares on May 22, 2009

Post image for How to GeekTool your Mac to Awesomeness

geektoolEver since we started the Flickr Desktop Pool, I’ve marvelled at the cool desktops which generally involve some tooling around with GeekTool. It’s something that brings in such a lot of dynamics to your desktop while keeping a low overhead, and allowing you to customise it to the last pixel.

Here’s a little screencast I’ve put together, to get you started on GeekTool. It’s a really simple tool, which just takes a little time and understanding to get used to.

First, watch this little video screencast (download link at bottom or subscribe to podcast) on how to setup GeekTool, and then proceed on to find some interesting GeekTool scripts you can use. You can start with some scripts I’ve collected below. It’s by no means exhaustive.


"date +"%I:%M %p" (which results in 11:30 pm)

If you want a 24 hour clock (e.g. 03:00 a.m.) then replace %I with %H. If you want to add seconds there, add %S to the mix. Remember to change the refresh rate to every 1 second if you’re adding seconds.


"date +"%A %d %b" (which results in Monday 12 June)

World Clock:

TZ=NewZealand/GMT-13 date +"Wellington:%l:%M %p on %d %B"

Just change the names and GMT value to get the required clock.


uptime | awk '{sub(":", "h ", $3); sub(",", "min", $3); print "Time since last system boot: " $3}'

(results in 14h 23min)

RSS feed
Download the file from here, copy it to your home folder (or wherever). Then open it in a plaintext editor and change the RSS feed to whatever you choose. Then in the terminal, enter “sudo chmod u+x ~myhomefolder/”. Once that is done, add “sh ~myhomefolder/ -4″ to your shell script. As demoed in the screencast.

Using GeekTool to add an xkcd comic on your desktop.

S.M.A.R.T status alongside your hard drives (via Bioneutral)

diskutil info disk0s2 | grep Verified > /dev/null

Replace ‘disk0s2′ with the disk ID of choice. You can find the disk ID in system profiler. Once you’ve added that, go to the last tab “Icon”. Select “Show icon” and click on default. That will place a little green blip whenever that disk is fine. You can then place the green blip next to your hard drives on the desktop, to tell you that everything is A OK. Doesn’t work on external drives though.

Add a title

If all you need to do is add a title or bit of text on your desktop, simply type in 

echo "my title"

Adding a semicolon (;) at the end will break the line. 

Memory Hoggers

top -orsize -FR -l1 | grep % | grep -v Load | grep -v COMMAND | cut -c 7-8,64-69

Change the number 8 to the number of processes you want displayed.

CPU Usage:

echo CPU usage
top -l 1| awk '/CPU usage/ {print $8, $9}'
top -l 1| awk '/CPU usage/ {print $10, $11}'
top -l 1| awk '/CPU usage/ {print $12, $13}'

Memory Usage:

top -l 1 | awk '/PhysMem/ {print "Used: " $8 " Free: " $10}'

Adding iTunes data on your desktop is best done with Bowtie. There’s loads of themes for that, so you don’t have to do any of the work.

If you’ve got some cools scripts up your sleeve, do share them in the comments.

[Flickr desktop pictured above by A. Till]

{ 12 comments… read them below or add one }


SA is the new, old TUAW, keep up the good work.



Great tutorial! Just the link to GeekTool seems to be missing :-)



Thanks for this! One note, the rss feed from this site displays funny characters.



Really useful tutorial. Was looking for the link to download Geek Tools all over this article but couldn’t find it though. Thanks Pepa for providing the link.



The fonts displayed by GeekTool are not antialiased like the rest of Macintosh fonts for me, which makes them very ugly. Is there a way around this?



Set the text shadow on , but with opacity to 0. Forces anti-aliasing.



Thanks for this great tutorial.

with shell “cal” i posted the calender on my desktop. How should i change the shell to begin the calender with monday, not with sunday?



Thanks for the tutorial. My time is stuck on the initial time when i entered the shell command. It is not updating, seems to be stuck. i have the refresh rate set to 10s. any idea what is going wrong??



Fantastic! Very impressed! You have created a VERY useful resource.

Have a look at your site using Firefox 3.6


Rick Yaeger

Ooh… I love GeekTool! This is a great resource! I didn’t know a lot of these codes. Thanks guys!! I’ll link you up soon.


dave kovac

Hi, I find Geektool very useful, though not usable. I have no idea why but anytime I run it (have it enabled), the processor temperature jumps to 98°C, 0.00% is idle (‘system’ eats up from 40 to 60 %). I have no special geeklets enabled: just time, date, system info etc. Could anyone suggest any solution (despite disabling Geektool)?

P.S. Late 2007 Santa Rosa MBP. Geektool itself won’t take more than 1% of processor.



Your uptime command is broken if the computer has been up for more than one day (which, hopefully, it has). Here is a script that works:

uptime | awk ‘{
if ($4 == “days,”) {
sub(“:”, “h “, $5);
sub(“,”, “min”, $5);
print “Uptime: ” $3 “days ” $5
} else {
sub(“:”, “h “, $3);
sub(“,”, “min”, $3);
print “Uptime: ” $3


Leave a Comment

We'd love it if you would add your opinion to the article or discussion, whether positive or negative. We reserve the right to moderate comments at our discretion.

Previous post:

Next post: