I have been a casual user and fan of GeekTool for a number of years.
GeekTool provides a means to add images, code, logs or web content to small, pre-defined locations on your desktop so they lay behind your application windows and can refresh at a time rate that you set within the code.
GeekTool allowed me to explore a bit of coding and customize my desktop with geeklets that provided me both useful information and needed distraction during my workday. I explored the (now aging) repository of geeklets from time to time and through trial and error, found a desktop array that did what I needed. I had to install Perl and iCalBuddy to get some of them to work so I was always learning something new during that time.
When I moved to two monitors, I did learn something. Geeklets don’t like to live on a second monitor. They want to live only on the primary monitor. And, as luck would have it, my desk arrangement was so that I actually used my secondary monitor as my main screen. I tried and tried to get my geek lets to live where i wanted them to live but ultimately, I found that I had to move them manually every morning. That was fine.
For about three days.
So, I challenged myself to make my desktop pretty and useful again using this new tool. After gathering all of my scripts from GeekTool into Notational Velocity (I really should write another post about how useful this text only tool is for keeping things like this together and searchable)
My main widgets/geeklets that I wanted to recreate were:
- Link to my calendar to show the events for the next two days
- Monthly calendar with current date highlighted
- Current weather and forcast
- Satellite of weather
- RSS feeds
- Server status
I managed to find replacement widgets for all of these or re-wire some to do what I wanted. I did learn that, while there is a decent directory, most of these are in Github and that is the better place to find updated code and forks of existing codebases.
Then, I figured out how to customize them via the index.coffee file to position them where I wanted and change font size, type and color to all match the layout I had in mind. The only major hoops I had to jump through were creating a todo list in plain text and naming it ToDo.list rather than using the .txt extension and creating some server monitoring links within StatusCake to keep my server status on my desktop. I even managed to get the current xkcd comic on my desktop, which was one of the failing geeklets that led me down this path to begin with!
I am hoping to play with this some more in the future when I get another free afternoon but for now, this will work and I have all of the code on my desktop to continue to explore it.