InputManagers on Leopard
Contrary to most rumors, input managers still work on Leopard (at least on my pre-GM seed), but for an input manager to be loaded there are now a few requirements it needs to fulfill.
This is taken from the ApplicationKit release notes:
The valid installation is now restricted to the
/Library/InputManagersfolder only. Bundles in other locations are silently ignored.
All the files in the bundle and
/Library/InputManagersfolder itself must be owned by the root user and admin group. No files inside the bundle can have group or other write permissions.
Processes running with the root privilege (
getuid() == 0or
geteuid() == 0) cannot load any bundle input manager.
Processes running with the wheel group privilege cannot load any bundle input manager.
The process must be in the active workspace session at the time of loading the bundles.
The process must not be tainted by changing user or group id (checked by
No 64-bit processes can load any bundle input managers.
First item says that other locations are silently ignored, this however has not been my experience. I had to remove
~/Library/InputManagers before I got mine working (presumably I could have settled with removing the contents of that folder).
So if you want Edit in TextMate to work on Leopard, here is what to run from Terminal (assuming
TextMate.app is in
# Remove old version
rm ~/Library/InputManagers/Edit\ in\ TextMate
# Create InputManagers folder
sudo mkdir /Library/InputManagers
# Copy the input manager to /Library
sudo cp -pR /Applications/TextMate.app/Contents/Resources/Edit\ in\ TextMate /Library/InputManagers
# Ensure everything is owned by root
sudo chown -R root:admin /Library/InputManagers
A downside with this (apart from the hassle) is that this is deep-copying the input manager, so when it gets updated, you need to make a new full copy to
/Library/InputManagers to get the improvements.
Also, Apple writes in the same release notes that:
The automatic loading of bundles located in
InputManagersfolders is now officially unsupported […] This functionality is likely to be disabled in a future release.
So for how long they will stay around is unknown.