Wincent Login Tool 1.0 and 2.0 released and source code repository now public

Wincent Login Tool is a small command line utility for managing login items. It was never really intended to be a separate product, but others started using it because they had seen me using it inside the Synergy installer to update the login items (see "Install" for more information on the installer itself).

A short while ago one of those users informed me that the tool would only work on Intel machines running Snow Leopard if the optional Rosetta environment was installed, and that a Universal Binary was therefore required (see issue #1313 for more info).

Today I’m releasing two versions of the tool: a 1.0 release which is a Universal Binary which can run on versions of Mac OS X as far back as Jaguar, and a 2.0 release which uses new APIs and runtime features and will only run on Leopard and up. At the same time I’m releasing the source code under the BSD license.

This is part of a general move towards open source that I’ve been working on for a long, long time now. If you’re interested to hear about my motivation, see the post I published last month, "Embracing open source".

Differences between the two versions

The 1.0 release is the Jaguar Universal Binary. It will run on PowerPC processors right back to Jaguar and on Intel processors back to Tiger.

It runs on versions of Mac OS X up to Leopard. Will probably work on Snow Leopard too although I can’t test that as I don’t have access to it.

The 2.0 release is an enhanced version that runs only on Leopard and up.

The main difference between the two versions is that the 1.0 series directly manipulates the ~/Preferences/loginwindow.plist file in order to manage login items. This was never officially supported by Apple. And it’s not guaranteed to be reliable. For example, at least on Leopard, you can verify for yourself that the file is correctly modified, but your changes won’t necessarily be reflected in the "Accounts" preference pane immediately, even if you close the System Preferences application and re-open it.

The 2.0 series, on the other hand, uses new APIs recently added by Apple (new in Leopard, I think) to manage login items. This is the official, supported way to do things, but it only works on Leopard and up (and in any case I’ve built the 2.0 series using Garbage Collection which is only available on Leopard). Switching to this new API was desirable because not only was the method used in 1.0 unsupported, but the previously supported method recommended by Apple (talking to the System Events application via AppleScript or Apple Events) was at best unreliable and at worst horribly broken on Leopard.

Source code release

I’ve also made the Git source code repository open, and the code is available under the BSD license. You can browse the repo here:

Periodically-updated backup mirrors are already in place at GitHub and Gitorous:

Binary downloads

There are no official product pages yet, and perhaps there never will be, but pre-built executables have been placed at the following locations: