I haven't tried it myself yet but I've had several people report that it doesn't work.
It is open source so if people are interested in updating it for Leopard compatibility then that's an option. I myself won't be able to get to it for a while yet due to other stuff that is more urgent.
I had WinSwitch installed before my Leopard upgrade and luckily mine is still working.
The only problem I've got is that I can't jump straight to another user - I have to go to the Login Window first. Bit of a pain but made up for by being able to still run things when I switch in and out.
Would be nice if someone could bring it right up to date though
Hmmm... Just made a donation because I've been using and liked WinSwitch for quite a while. It was working fine when transferred to a new Leopard machine, till I lost the user list in the menu and NOW I find that it's not compatible with Leopard. Looking forward to having such a useful and essential utility upgraded to Leopard--soon, please?
MenuCracker is what loads WinSwitch into the menu bar; the hack is necessary because Apple explicitly tries to stop third-party menu extras from loading and has done so since Mac OS X 10.2, I believe.
The trouble is that MenuCracker hasn't been updated since 2003; although fortunately it worked with Jaguar, Panther and Tiger, it looks like it might not work with Leopard.
So I need to find an alternative method which does work on Leopard. At this stage that's just speculation though because I haven't been able to confirm that MenuCracker is the source of the failur; it may be that the incompatibility stems from somewhere else.
fwiw, i think there are other incompatibility problems with leopard.
1] i made use of the comments above regarding installing manually. having had problems with "Activate WinSwitch", i had previously "uninstalled" prior to re-installing and getting the MenuCracker failures. but i believe it is the case that you must still execute "Activate WinsSwitch" per user prior to performing the manual install for each user. because without doing so, WinSwitch did not appear in the menubar.
2] even after performing the manual install, WinSwitch does not appear to show the list of users for me.
3] even after performing the manual install, WinSwitch does not use my customized user icons. (leopard allows you to take a user photo snapshot, which i have for one user, or import another picture from elsewhere, which i have for another user; the picture shown in winswitch appears to be neither)
4] when i get the system preferences via "Open Accounts...", the original system fast-user switching menu re-appears, together with a semi-transparent black area that i believe is meant to be the WinSwitch user warning that the system fast-user switching has been re-installed. however, the black area contains no text and cannot be made to go away until either the WinSwitch menu or the fast-user switching menu has been Cmd-dragged out of the menubar.
i am really torn about which of these items to use. WinSwitch has the keyboard shortcut allowing me to get to the login window, which is handy and allows me to switch users without keyboard, but it no longer has the list of users which allows me to bypass the login window if i want to switch straight. and since the icons no longer differentiate, that advantage is lost as well.
i'm hoping the 4 problems listed above are addressed soon. i would be glad to test any changes on my machine, as i use fast-user switching to switch between home & work accounts constantly.
I'm also experiencing all four of the problems described above.
I had it installed before upgrading to Leopard. I hadn't had any problems until my first reboot of the new year, which gives me this problem (submitted as bug #1185). MenuCracker 1.4 in WinSwitch 3.2.1 went crazy, locked SystemUIServer...
Thousands of system log entries like this, maybe 5-10 per second:
I only found two menu extras using MenuCracker: iStatmenus and WinSwitch. Uninstalled iStatMenus first, no good. Uninstalled WinSwitch (actually, moved it to '/Library/Menu Extras (disabled)') and the problem is solved.
WinSwitch is version 3.2.1 according to the Info.plist file. MenuCracker is version 1.4 according to ITS Info.plist file.
I may be missing something, but why does WinSwitch have to load into SystemUIServer's context at all (which is the only reason to use MenuCracker)? yes, granted, having WinSwitch be draggable to the spot the user would expect the fast user switching menu is great, but Apple has reserved NSMenuExtra for a reason (SystemUIServer is a core OS component whose stability is not be jeopardised by third parties). Why not simply create a NSSatusItem and live with the fact it will appear further left on the menu bar? Such a status bar item would not need to rely on potentially disruptive hacks, and would survive OS updates far more easily. I for one would actually prefer that, never mind menu placement?
Martin (who didn't feel like signing up to another forum to post).
Thanks for the comments, Martin.
The short answer is: that if WinSwitch didn't appear on the right then I would be inundated with user complaints, requests, and questions about the location. It's free software, and the donations have never covered the development or hosting costs, so I can't really afford to take the kind of action which would produce a large support burden.
The longer answer...
I actually happen to agree with most of what you say (the technical points), Martin, and if you look at another product of mine which loads in the menu bar (Synergy), you'll see that it uses the public NSStatusItem API rather than the private NSMenuExtra one. (And this is despite many requests from users for it to be relocatable in the menu bar.)
But WinSwitch is a replacement for the Fast User Switching menu, and users expect it to appear on the right. I think your point of view is a very rational one, but my experience with user feedback is that you are probably very much alone in preferring an NSStatusItem. I understand why it would be attractive to you (for the stability and the likely compatibility with future OS releases), but I also know that for 99.9% of users those concerns pale in comparison next to the issue of where on the menu bar the menu appears. It's only a cosmetic detail, but it really does matter to a lot of users.
As far as stability goes, WinSwitch itself is extremely simple and unlikely to cause a crash. It's open source so you can check it out yourself. You'll see that it's split into two pieces:
a background application which is not loaded into the SystemUIServer and therefore can't cause it to crash; this app handles things like preferences management, hot key control, notifications etc
a tiny menu extra which does nothing but draw the menu; it is only three files and it is fairly easy to audit (I'm not saying it is bug free — no software is — but it is not difficult to check over the code and state with a high degree of confidence that it is free of crashing bugs):
But I do think the ability to optionally run WinSwitch using NSStatusItem API is a good one. This was previously requested, albeit indirectly, in ticket #456. But the motivation for the request and the implementation were slightly different, so I'll open a new ticket for this particular issue: ticket #1266.
Vincent, thanks for such a fast and in depth reply.
I can see your point, of course, but I still would like to argue mine, which is not only a technical one, but also one by a user frustrated by the fact WinSwitch development seems to have been stalled by MenuCracker not working on Leopard. Also, Insanity have a frankly horrible reputation as to the effect of their hacks on system stability, so I'm not sure I look forward to them providing the replacement for MenuCracker…
Both worries would be alleviated greatly if the Leopard compatible version of WinSwitch was anywhere around the corner and it included a NSStatusItem mode (wink, nudge)… ah well, I'll wait and see :).
Martin (again, and still not signed up)
I remember playing with some Unsanity "Haxies" in the very, very early days of Mac OS X, probably around the Cheetah (10.0) timeframe, I think. But from very early on (roughly 2001) I've always tried to maintain a "clean" system so that I can do development in an environment that is as close as possible to the one that Apple ships with new machines. So I can't really comment on Unsanity's stability track record in intervening years... Nevertheless, as their very name suggests, they are and always will be "hacks". The name of "MenuCracker" also indicates its nature: it exploits a flaw in the API to circumvent Apple's attempt at preventing third-party use.
My main concern with Menu Extra Enabler is not that its a "hack" but rather that it is not open source. At least MenuCracker was open source. As such, I am not really interested in shipping a binary-only installer for a closed-source product alongside WinSwitch. It would be another story if it were open source, but it's not...
So what I am currently thinking of is going down two routes:
Offer an NSMenuExtra-based version of WinSwitch, but do not distribute an installer with it. Instead, it would come with instructions which state that it requires Menu Extra Enabler in order to work, and telling people where to download that if they want it. Then to "install" WinSwitch the user would just have to put it wherever they want to keep it and double-click it.
Offer an NSStatusItem-based version as an alternative.
This plan isn't entirely satisfactory seeing as the first option is quite complicated and will generate a lot of support requests; the vast majority of users really do prefer simple one-click installs. And the second option is much easier, but that will generate its own support requests from people who don't like where the menu appears in the menu bar.
So in any case, I would like to leave this issue for a while before making a final decision. Usually when I am not sure what course of action to take, I find that taking a step back and reflecting on things usually helps me arrive at the right solution. (Unfortunately only "usually" and not "always"...)
1) Develop WinSwitch as an NSStatusItem. Have it work easily with all configurations. Have it work without resort to undocumented API's. Have it work in the future. Save time on the developer. Have some old-timers complain about the icon being 100 pixels to the left on the menu bar.
2) Try to hack into the system to have it work as an NSMenuExtra. Have it break every time Apple updates the system. Have it cause various kinds of unforeseen problems. Cause extra work for the developer. Likely never ship it.
I think the choice is easy. As Steve Jobs once said, real artists ship. Let WinSwitch do what it does within Apple's constraints.
Let's not forget the third option:
3) Do nothing, and allow people who are interested in taking the project forward take advantage of the fact that WinSwitch is open source and can do whatever they want with it (your option 1 or 2, or theoretical possible options 4, 5, 6, 7, or anything else). I'm more than happy to accept patches and will incorporate them if they're up to scratch.
This is actually a fairly attractive option considering that:
I don't use WinSwitch myself
I haven't really used it since the Panther days
I have no interest in using it seeing as the built-in Fast User-Switching menu already does everything just as I personally would like
there's absolutely no economic incentive to work on it seeing as it is free and the donations never even came close to covering the bandwidth costs
there's no non-economic incentive either because I already have plenty of stimulating development projects on my plate
any less-than-optimal release will only generate support queries
I've already said what I think the options are — either pursue the NSMenuExtra path, or purse the NSStatusItem path — so your comment doesn't really add anything new (other than the fact that you put what I view as an excessively negative spin on the NSMenuExtra option, given the widespread successful use of the API by third party developers over the years). I could repeat the points that I've already made in this thread, but instead I'll just incorporate them here by reference.
Hmph. All I want is for actual user icons to show up in the as the icon of the Fast User Switching menu, rather than the generic "person" icon (for that matter, I wish I could replace *all* of my menu names with colorful icons...I miss Menuette!). I wish Apple did this (in Leopard; I haven't seen Snow Leopard or Lion). Since Apple doesn't, it would be wonderful if WinSwitch to offer this (for free or as, say, $5 shareware).