Skip to content
This repository


to the NerdTool wiki!

Bug tracking/feature request

Before you ask

Yes, this project used to be called “GeekTool 3”, but the original developer decided to pick up this project again! So to prevent confusion, this project has been renamed to “NerdTool” (or “Nerdtool”, whichever happens to be more convenient to type). So if you happen to see some references to GeekTool, that’s why.

I’m not changing the repository name because it would simply cause confusion and would be more trouble than it’s worth. Everyone now knows that if they want the real Geektool 3, they will go here :)


I did not develop GeekTool; I’m just picking up the reigns where the last developer left off, in a new project. The original source code is freely available for download here. If you don’t know what Geektool is, it is a program that lets you output shell (Terminal) commands to your desktop. It can do just about anything that the shell can do, which is just about everything.

I am updating it because I got frustrated with a few user interface bugs, so I decided to overhaul the entire program. I am trying to keep most of the original code of the program, but I am tearing out old code by the pages; few comments + different mindset from original dev = completely different beast. Sorry for the debasement of fundamental programming rules, but it had to be done.


Please make a list of the bugs you find (preferably in the Issues section). Also, a list of features you would like to see in the wiki page would be a great resource as well.

Project layout

You will notice there are two branches.


This is the old “geektool” branch. I guess it’s not the “master” branch anymore, but I digress. No further development is being done on this line


This branch has the following goals:

  • unite everything under one process
  • convert from a system preference pane → standard application
  • create a lightweight, viewer only application should the application be too resource intensive
    • this does not mean have two different processes for normal use; the main application and the viewer will be separate and independent. However, they will most likely share the same code for the creation of log windows.

All work will be done in the “Nerdtool” Xcode project.

The Plan

Complete | In Progress | Comments

  1. Get interface up and running
  2. Have everything on preferences side (except log movement/display) almost flawless
  3. Implement log display/movement
    • into preferences (new idea) OR
    • into daemon program (original code)
  4. Fix lots of things
    • strip out dead code
    • implement some new stuff (most notably Quartz)
    • get interface working (so it can be used standalone (beta!))
    • Make sure groups are reliable and robust
    • Create log importer
    • Integrate Sparkle auto-updating framework
  5. Release version 0.5 beta
    • fix issues community finds
    • implement useful features the community wants
  6. Release version 1.0


Here is a what I am going to attempt to do with the program:

  • Attempt to preserve as much as the original program, like:
    • Preference/Menu independence
    • Feature set
    • Interface and workflow
  • Convert as much Carbon stuff into Cocoa stuff
  • Fix many bugs, like:
    • Entry overwrite because not active selection
    • Text “push” when resizing a log window to something close to its minimum size
  • Add additional features, such as:
    • Batch log editing
    • Different “group” approach
    • Exposé snapping
  • Major changes from GeekTool 2
    • Groups will be handled differently
    • Some features may not make it (like some obscure text shadowing or borders)
    • Preference file will be different, and there will be no backwards compatibility (but there will probably be an importer)


If you have ideas/complaints/comments on the project, just put them in the page below.


Something went wrong with that request. Please try again.