In the Classic days, if you wanted to use a window that wasn't frontmost, you could click anywhere on it to bring it to the front. Mac OS X introduced a feature called "click-through" where certain controls, like the "traffic-light" buttons in the window title, would work even for background windows. Applications can also make other controls, or even the entire window, work with click-through. To make things a little confusing, in older versions, click-through was off by default for Carbon apps, but on by default for Cocoa apps.
Some people (including myself) never got used to click-through; if you too wish to have more control over what happens when you click on a background window, Klicko may solve your problem. Klicko also has two other convenient functions: window maximizing and bringing all windows of some application to the front.
Klicko is a System Preferences panel written in Cocoa. It doesn't hack the system, other applications, inject code or do anything magic. See below for details. Version 1.1.1 is for Mac OS X 10.5 (Leopard) and up, for both PowerPC and Intel. It will work on 10.6 (Snow Leopard), although it will restart the System Preferences application into 32-bit mode; a 64-bit version will be released soon.
Klicko is freeware. However, if you think it was useful to you, you may contribute with a donation.
Klicko is currently localized into English, Portuguese (Brazilian), German (with the help of M. Uli Kusterer) and French (by Ronald Leroux). Please contact me if you're interesting in doing some other language (Japanese and Spanish would be welcome).
Here's the Klicko preferences tab:
The popup menu in the window title is important. If it's set to "Excluded Applications", all windows belonging to the applications listed in the window won't be affected by Klicko; if it's set to "Included Applications", only those applications will be affected. That is, the popup changes the nature of the application list. Usually, you would set it to "Excluded" and list only the (hopefully few) applications you find incompatible.
You can add any running application by clicking on the "+" button; a pop-up menu will appear. You can also drag applications (running or not) from the Finder into (and out of) the window, of course. If you have several copies of an application installed, putting one of them in will work for all. In the example above, Klicko won't affect any of Safari's windows. Note that if you set the pop-up to "Included Applications", and put no application into the list, Klicko will have no effect at all.
Klicko has three functions which can be individually enabled, as you see in the preferences:
- Block click-through in inactive windows (see exceptions below)
- Bring all windows of an application forward by control-option-command-clicking on any of them; this also lets you bring all Finder windows forward by control-option-command-clicking on the desktop
- Maximize windows with the Zoom button; may not work for all applications
Beyond that, at any time you can direct any click to a window by holding down any modifier key. Some applications don't use standard windows or use them in a way that Klicko can't activate properly; if you find that clicking on a window has no effect at all, hold down a modifier key and try again, or try the exclusion list. Here are some known problem applications (which are added to the exclusion list automatically):
- Adobe Photoshop: fails to accept clicks in the main window while auxiliary windows like "Color Range" are on top.
- Aperture: fails to accept clicks after exiting full-screen mode.
- iMovie: accepts no clicks at all in the main window.
Klicko relies on the Accessibility interface, but you don't have to turn it on the System Preferences. Some applications may not implement Accessibility in a way that Klicko understands, and so one or all of the functions may not work properly for those. Please use the exclusion list in such a case.
Note that there's no way to disable the highlighting of the window "traffic light" buttons, so, to minimize user confusion Klicko always allows click-through on those buttons. Klicko will also always pass through clicks on windows belonging to background or full-screen applications, to dialogs, palettes, and similar interface elements, and to the Finder desktop.
Note that with click-through blocking, if you want to start a drag from a background window (say, a Finder window), you must hold down any modifier key first.
Code Signing: Klicko is codesigned for extra security. Basically, this means that you can verify if the application's executable has been signed by a specific developer, and that you can have some assurance that code or resources have not been tampered with by third parties.
To check that Klicko's signature is intact, open Terminal, paste in the following command, and press the Return key:
codesign -dvvv -r- /Library/PreferencePanes/Klicko.prefPane
(assuming that you installed Klicko for all users; otherwise, type a tilde (~) before the /Library part.)You should see several result lines in the Terminal. Authority=Rainer Brockerhoff should be present, and identify the author. The last line should end with ...root = H"4cbb97c74336f7ee6aa566122a5e7688e1c725dc" and uniquely identify the author's signature. Now run the following command:
codesign -vv /Library/PreferencePanes/Klicko.prefPane
If the Klicko bundle is intact, this should display valid on disk; otherwise you'll see code or signature modified. In the latter case, throw it into the Trash.
The Klicko background application is also codesigned. To check it, just substitute its path in the commands above (note the quotes around the path, necessary because it contains a space):
codesign -dvvv -r- "/Library/Application Support/Klicko.klicko/klickod"
codesign -vv "/Library/Application Support/Klicko.klicko/klickod"
Release Notes: Version 1.1.1 (207)
- Some applications reported to be incompatible are now added to the exclusion list during installation.
- The updating process is now more reliable and uses less system resources.
- Several bugs and edge cases have been fixed.
Release Notes: Version 1.1 (201)
- The Klicko preferences panel now supports full keyboard access and VoiceOver.
- Several small bug fixes for updating and error logging.
Release Notes: Version 1.1 (199)
- For all previous builds since 1.1 (187), if you have Klicko installed for all users, the auto-update process may fail. Please download and install the disk image manually. From this version on, the problem should be fixed.
- Cleared up some spurious error logging by the background process.
Release Notes: Version 1.1 (197)
- Fixed some more updating edge cases, especially when the network status changes, or when more than one user is logged in.
- The "Check Updates" button again remains enabled at all times.
- The background process could get confused when logging in, or with fast user switching.
Release Notes: Version 1.1 (193)
- Fixed several edge cases for both automatic and manual updates.
- Fixed an interference with Exposé's Active Screen Corners.
Release Notes: Version 1.1 (189)
- The automatic update now doesn't autoconnect if you're not on broadband.
- Small bug fixes.
Release Notes: Version 1.1 (187)
- Klicko can now check for updates automatically.
- Small bug fixes in the preferences panel.
Release Notes: Version 1.1 (181)
- Fixed a problem with Exposé.
- French localization is included again.
Release Notes: Version 1.1 (179)
- Klicko is now a System Preferences panel. If you use any previous version, delete it before installing this one.
- More and better preferences, and built-in version checking, updating and uninstalling.
- You can now maximize windows by clicking on the Zoom button (may not work for all applications).
Release Notes: Version 1.0.1 (123)
- After blocking a mouse-down event, Klicko in some cases failed to block the corresponding mouse-up event, confusing the application.
- Control-option-command-clicking on a window now brings all windows belonging to that application to the front.
Release Notes: Version 1.0.1 (120)
- Works again for buttons in sheets. (I think this broke in build 113.)
Release Notes: Version 1.0.1 (119)
- Klicko now complains if you turn off "access for assistive devices" while it is running.
- Now works OK with some non-standard windows. One example is Firefox popup menus.
Release Notes: Version 1.0.1 (113)
- All known bugs, edge cases and a few memory leaks have been fixed.
Release Notes: Version 1.0.1 (109)
- Partially worked around an Accessibility problem in Cocoa applications.
Release Notes: Version 1.0.1 (103)
- Klicko now handles clicks on its own windows more consistently.
- A code signature error has been fixed.
- The algorithm Klicko uses to bring background applications to the front should now be more reliable.
Release Notes: Version 1.0.1 (97)
- If you install Klicko in the main /Applications folder, and don't want "access for assistive devices" turned on the System Preferences, you can now authorize Klicko to ask for an administrator password and set itself to not require this option.
- Klicko is now codesigned for extra security.
- If you don't like the Klicko icon (hint, hint) you can make your own custom icon, and paste it into Klicko's Get Info window (in the Finder). Klicko will use this icon in the Dock, and the 16x16 version in the menu bar. You can change the icon even while Klicko is running.
Release Notes: Version 1.0 (87)
- Clicking on Growl notifications now works OK.
- Some problems with full-screen apps and GUI utilities have been solved.
Release Notes: Version 1.0 (79)
- Clicking on Dashboard widgets - even if they're run on the desktop - now works OK.
- The "NSAccessibilityException" log problem is now definitely solved.
Release Notes: Version 1.0 (73)
- Fixed a spurious "Can't run application" error when deleting applications from the list with the "delete" key.
- Better error display for run-time exceptions.
Release Notes: Version 1.0 (71)
- Fixed a bug that caused the console to fill with "NSAccessibilityException" lines for certain applications.
Release Notes: Version 1.0 (67)
- This is the first released version.