If you're using a operating system other than Mac, replace all instances of
This tutorial was created on a Macbook Pro running OS X Snow Leopard (10.6.8). You will need a Gmail account to use the mail icon.
I use the Segoe UI font on this tutorial, which is not normally available for use on a Mac. You can find this font on your own or use an alternative such as Open Sans.
I will assume that you know the basic commands, such as ⌘ + A (Select All), ⌘ + C (Copy), ⌘ + V (Paste).
This is not compatible with any operating system other than Mac OS X.
You will need to download GeekTool and install it on your computer. I also recommend that you bookmark TextEdit by dragging it from the Applications folder into your dock.
Download the zip file from the resources page. Unzip the file and move it to a permanent place on your computer, somewhere you won't move it from for as long as you have this geeklet. For the purpose of this tutorial, I have left it on the desktop.
Open your System Preferences and click on the
GeekTool icon in the bottom section labelled
Other. This should take you to the GeekTool preferences panel. See the
Manage Groups section in the upper right corner? You're going to need to add five groups. Click on the
+ icon and add
Photobooth, in that order.
Be sure to check off all the boxes next to the groups you just created and uncheck
Default. In the end, your groups should look like this:
Now open that
glets folder and find
time-bg.glet. This is the background for your time geeklet and the very first part of the entire widget. Double-click to open - a dialogue box should pop up. This will happen for every geeklet you open. Click
The background should show up in the top left corner!
time-block.glet. See how the font is too small?
Select the geeklet by clicking on it.
Click here to set font & color on the geeklet menu and set the font to
Now go back to
glets and find
weather-info.glet. This geeklet is your weather background and also contains the information to display your weather icon and temperature. On the geeklet menu, copy the entire string and paste it into a TextEdit document.
See how there's a URL that leads to a city's Yahoo weather page? You will need to select that entire URL and copy it.
Open your browser and paste that into your address bar and hit Enter. Now look for the search bar for different cities and search your city. Click on the city name once it pops up, let the page load, and copy the new URL. Leave this page open.
Paste it where the old URL was in the TextEdit document, then copy the entire string.
Paste it where the old string was on the geeklet menu, and hit Enter. Also, under
Groups on the geeklet menu, check the box for
Weather and uncheck the box for
Time. This puts your weather geeklet in a separate group. Be sure to check the box for
Weather FIRST before unchecking the box for
Time, or else your geeklet will disappear!. You will need to repeat this for the rest of your geeklets.
weather-label.glet, select the geeklet by clicking on it, and change the font to
Segoe UI. Open
weather-icon.glet. Remember to change each geeklet's group to
Weather after opening it.
weather-temp.glet and set the group to
Weather. The font should already be set to
Segoe UI. Copy the string from the
Command section and paste it into a TextEdit file.
Go back to the weather page and copy just the numerical part of the URL - it is called the WOEID and should be seven or eight numbers.
The current URL is
Change the last part from
w=WOEID&u=f where WOEID is the URL part that you copied. For example, for LA, I would change to
w=12795619&u=f, and my entire new URL would be
Copy the new URL and paste it back into the
Command section, then hit Enter.
If you would like to switch from Fahrenheit to Celsius, you must change all instances of F into C - the f at the end of the URL and two F's in the string.
curl --silent "http://weather.yahooapis.com/forecastrss?w=12795619&u=f" | grep -E '(Current Conditions:|F
//' -e 's/\(.*\), \(.*\) F$/\2˚/'
should change to this:
curl --silent "http://weather.yahooapis.com/forecastrss?w=12795619&u=c" | grep -E '(Current Conditions:|C
//' -e 's/\(.*\), \(.*\) C$/\2˚/'
mail-label.glet. Set the font to
Segoe UI. Set each geeklet's group to
Set local path to the location of
mail.png, inside your
If you have never saved your Gmail username and password, log out of your Gmail account and log in again. When it prompts you, save your password.
mail-count.glet and click inside the
Command section. Press ↓ once and then replace
username with your Gmail username, then hit Enter.
Go back to
glets and open:
ical-date.glet(font should be set at
ical-day.glet(set the font to
ical-label.glet(set the font to
Make sure to set each geeklet's group to
Calendar after opening.
Download iCalBuddy, unzip the file, and move it into your
glets folder. Open the iCalBuddy folder and follow the instructions to install it.
This step is optional but is recommended to check your iCal tile.
Open iCal and create a new event that is either happening now or will happen within the next couple of hours.
Go back to your
glets folder and open
ical-event.glet. Click on the geeklet and set the font to
Segoe UI. Set the group to
photo.glet and set the group to
Set local path to whatever photo you would like to have up. You will need to change the dimensions of this geeklet to fit your image perfectly. The entire column is exactly 310px wide, you will need to do some math. Height / (Width / 310) = New height. So if you have a 640 x 480px image, 480 / (640 / 310) ≈ 233.
If you would like another image underneath, click the image icon on the GeekTool preference panel and drag it onto your desktop. Figure out how far below your image needs to be - the first image's position was at 15 x 250px, my image was 233px tall, and the spacing between each geeklet is 5px. So, 250 + 233 + 5 = 488. The second image's position should be 15 x 488px. Calculate the new height the same way as the previous step.
You're finished! Enjoy your new Windows 7 geeklet. I hope you enjoyed this tutorial, and if you have any questions, please direct them to my contact page.