It's a port to OS X El Capitan 10.11 and later of our beloved utility MenuMeters by Alex Harper, at http://ragingmenace.com. As he has not yet released the port to OS X 10.11 El Capitan, I made a minimal modification to the source code he has kindly made public so that it runs fine.
Confirmed to run OK on El Capitan 10.11, Sierra 10.12 and High Sierra 10.13.
Please report any issue at
"issues" at GitHub. If you don't know how to use "issues" at GitHub, you can email me at yuji.tachikawa at ipmu dot jp.
As you very well know and is shown in the screenshot above, there can be various utilities put on the right hand side of the menu bar. There are in fact two types of such menu bar items, one known as NSMenuExtra
's and another known as NSStatusItem
's. The former are loaded and displayed by SystemUIServer
, a process provided by the system. The latter can be displayed by any app written by any developer. One good thing about the former is that you can rearrange them by ⌘-dragging the menu items. I have no idea why ⌘-dragging was not provided for the latter by the system. (On macOS Sierra 10.12, Apple finally implemented and enabled ⌘-dragging for all NSStatusItem
's, including this port of MenuMeters. But this happened later than the need to port MenuMeters to El Capitan 10.11.)
Anyway, due to this better behavior of NSMenuExtra
's, people often wanted to write their own. In fact until and including OS X 10.1, Apple allowed it. But since 10.2, Apple had a code that blocked SystemUIServer
to load non-system-provided NSMenuExtra
's. But until Yosemite, there was a known way to work around it, available as an open-source code as MenuCracker. MenuMeters used this to inject their own NSMenuExtra
's to SystemUIServer
; in fact MenuMeters' author is one of the main authors of MenuCracker.
Essentially, until Yosemite, SystemUIServer
had a fixed list of allowed NSMenuExtra
s. MenuCracker was an NSMenuExtra
that pretended to be one of those allowed ones, which, once loaded inside SystemUIServer
, removed these checks, so that more NSMenuExtra
s can be loaded without any problem. In El Capitan, Apple added a more stringent check of the allowed NSMenuExtra
's, and MenuCracker no longer works.
So, how did I port MenuMeters to El Capitan, then? Well, I just gave up having ⌘-dragging. Then all I had to do was to, basically speaking, replace the occurrences of "NSMenuExtra
" by "NSStatusItem
", since the two APIs are almost the same.