Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A nice little preview. I can see its appeal although I'm not sure I'm ready to make the switch. One little pet peeve though. Why do so many Mac apps want to create a menuling now? It's not the Windows system tray. There's no good reason why this mail client needs a menuling. It can communicate everything through its Dock icon.


menuling

From a Cocoa perspective it's actually called an NSStatusItem (Status Item), appearing the NSStatusBar (Status Bar).

From a user perspective (per Apple's Human Interface Guidelines), it's called a "Menu Bar Extra" appearing inside the "Menu Bar". Though I think that's a little bit stupid for a name.

Apple does warn developers from making NSStatusItem's/Menu Bar Extra's: http://developer.apple.com/library/mac/#documentation/UserEx...

However, they tend to be more robust for certain applications than a Dock icon or Dock Icon Menu's. You can have clickable buttons, have single- and double-click behavior, display graphics, etc...

On a downside, if you don't have enough screen space to show them, they'll start to disappear. They are ordered based on which app loaded theirs first and cannot be re-ordered.

--------------------

Apple's "Menu Bar Extras" don't exist within NSStatusBar. These include the clock, battery icon, bluetooth icon, etc... They live in a private API of Apple's.

Apple's always appear on the far-right, are the last to "disappear" if there's not enough space for them to fit. Unlike 3rd party NSStatusItem's, you can re-position Apple's by Control-Clicking on them and moving them around (except for Spotlight's).

--------------------

Since 3rd party NSStatusItem's are not going away anytime soon, there's a need for a Mac app (or OS X update) that'll let you condense them into some sort of manageable GUI element.

All NSStatusItems appear under a single instance of NSStatusBar. It would be possible to write an app that'll extend NSStatusBar's class (overriding it, swizzle it, etc...) which would allow you to do custom stuff with them. Perhaps add ordering support, hiding support, grouping them inside a mini-window accessible by a single "Menu Bar Extra" you click to access them.

For example (excuse the crappiness - I mocked it up in 5 min, credit goes to Snippit for the window graphic):

http://www.dave-gallagher.net/coding/menuBarMockup.jpg

It would be nice to add "lesser-used" Menu Bar Extra's to something like that, hiding them out of the way.


Hold down command and drag to reorder


Control-Click only works for Apple's Menu Bar Extra's, not 3rd party one's, unfortunately. :)


Well, a small correction. Certain ones, most notably iStat Menus, can be moved with command-click.

In the old days, a hack was used to make this work by tricking the system into thinking it was a built-in, but unused, menubar item, often the drawing tablet's status item. I believe this was done through a "haxie", from Unsanity. I'm not sure how iStat Menus does it, but I'd hazard a guess at the same way.

Disclaimer: I'm working off shaky knowledge that I learned three or four years ago, before I was even a dev.


iStat Menus works the same way, yes. The private API is called NSMenuExtra. It's considerably different from NSStatusItem in that NSStatusItems are created by an open application, whereas NSMenuExtras are created by plugins to SystemUIServer. (This makes stability an issue in NSMenuExtras, as one crashy plugin will make the whole status area disappear.)


This makes stability an issue in NSMenuExtras, as one crashy plugin will make the whole status area disappear.

Is that what happens now? They used to make the whole windowserver disappear. Not fun.

I honestly can't understand why Apple doesn't improve support for plain NSStatusItems. There's no reason why they can't have command-drag remove and reordering as well. They're just windows, after all.


Interesting. I wonder if they do it by drawing to Apple's private NSStatusBar-like API instead? I'll have to look into that...


IIRC, 'back in the day' when I was on OSX I remember that the behavior for Apple statusbar apps was different than if you went about it in the kosher, Apple-approved fashion.

It might have been the option-click-drag re-arranging or the option-click-drag-to-desktop to remove from the statusbar (or both of those). Maybe those have since become part of the standard API though.


For programs that sit in the background (ie. Dropbox), the menuling is better. However I prefer the black "Leopard" style menulings. I disable it if it has color because it's distracting.


I personally roll sans-Dock, so I like it, but it should definitely have an option to turn it off. Seems like this one isn't even half-risen, let alone fully-baked, but it's tasty enough (extended metaphors are fun).


I agree that some applications have very little need to add an status bar item. Fortunately, most of the ones I use allow you to turn the feature off.

On the other hand, I hide the dock on my laptop. Having a status bar item in application like this is pretty valuable for me as it allows me (in the case of Mailplane) to quickly navigate my accounts and see newer emails without focusing the main application.


I definitely agree. The menu bar isn't for every app to clutter up with pointless menus like the Windows system tray is (was?)


The Windows tray was never ment to store pointless menus, but there was a documented API and programmers started using it because it was convenient. Same situation here.

As a side story, a friend sent me a VMWare image, but I run VirtualBox. Instead of converting the thing, I installed the trial version of VMWare Fusion on my Mac. Version 3 apparently has a menulette to access your VMs applications directly. After the trial expired I no longer have the option to remove the menulette, without uninstalling VMWare entirely. It used to be the case that a simple alt(option) click and drag would poof the icon away. More developers are failing to implement these "conveniences" properly.


I'm sorry, I meant to say what the windows task bar turned into. The developers probably meant well.


Well, the dock takes up a lot of space and for a lot of people it's not always visible. The menu bar is always there, ready to display information.


And through Growl.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: