Skip to content
The Solcounter MenuExtra for OS X
Objective-C C
Find file
New pull request
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Preference Pane


This project is an open-source menubar clock and calendar for the UNIX / Julian date system. It is implemented as an NSMenuExtra, and the source code may interest those of you attempting to build your own MenuExtras for OS X.


You can download a compiled copy of from the GitHub downloads section:

Once you’ve downloaded (or compiled, see below) a copy of, simply double-click the Solcounter.prefPane to install it, and then enable in the preference pane. To later uninstall, all you need to do is uncheck that checkbox, and then right-click on the preference pane’s icon and select ‘Remove “Solcounter” Preference Pane.’

Enabling automatically activates MenuCracker, and disabling via the preference pane automatically disables MenuCracker. However, if you simply drag out of the menubar, it will not disable MenuCracker; MenuCracker will continue to be active indefinitely. You can subsequently remove MenuCracker by re-enabling and then disabling via the preference pane.


To build for yourself, you’ll need to procure the NSMenuExtra headers. I can’t distribute these with the project, as I’m unsure of the legal status of headers derived from Apple’s proprietary binaries. This, however, is not difficult.

First, you need class-dump; I suggest installing it via Homebrew; it’s as simple as brew install class-dump. You can also get it from Steve Nygard’s website.

Next, you’ll want to dump the headers into your home folder:

mkdir -p ~/Code/Headers
class-dump -ISHo ~/Code/Headers/SystemUIPlugin \

Finally, the headers need to be slightly modified before they’ll be useful.

for header in ~/Code/Headers/SystemUIPlugin/*.h; do
  sed -E -i '' -e 's/^(#import)/\/\/ \1/g' $header
  sed -E -i '' -e 's/^(@class)/\/\/ \1/g' $header
  sed -E -i '' -e 's/struct (CGPoint)/\1/g' $header

(P.S. I tried to get this to catch all the messed up struct declarations in the headers, but my sed-fu is too low. If you’re trying to use this to develop other MenuExtras, you’ll need to either fix that last sed, or go manually replace all the extra struct Foo declarations in the dumped headers.)

Once you’ve got the headers, you need to build itself before you can build the Solcounter.prefPane (which is necessary to install and control Open the Solcounter.xcodeproj at the root of the project directory, and activate the ‘Release’ target, then select “Build > Build and Analyze.” If there are no errors or warnings during the build process, you’re good to go; you can now open the preference pane .xcodeproj (in the ‘Preference Pane’ subdirectory) and do the same thing: activate the ‘Release’ target, and select “Build > Build and Analyze.”

Once the preference pane has compiled, simply double-click the product to install it, and open it to enable!

Something went wrong with that request. Please try again.