No longer works on MacOS Sierra or Later
Due to changes in the way Apple configures Accessability preferences, the KeyclickServer (inside
the preference pane bundle) may no longer be authorized to monitor Keystrokes. Navigate to:
System Preferences > Security > Privacy > Accessibility
Add System Preferences to the list of authorized apps. Then restart the KeyclickServer by
turning off all sounds (Keyclick, scroll, etc.) and exiting the Keyclick preference pane.
Alternatively, you can just restart your computer.
For those who may be curious: Authorizing the the KeyclickServer application inside the
preference pane bundle no longer works. The application that launches it needs to be authorized
which in this case is System Preferences since preference panes are System Preferences plugins.
No Sound
Check that you have you enabled "Play user interface sound effects" in the Sound
preferences panel and that other "Alert Sounds" are working?
Check that you have you enabled access for assistive devices in the Universal
Access panel.
Troubleshooting
Keyclick itself is fairly simple. It registers a Quartz Event Tap to receive keystroke events and
calls SystemSoundPlay() to play a previously loaded sound for each matching event. The rest is
just user interface.
There are two things that might interrupt normal operation:
(1) Failure to receive keystroke events. It turns out any application can request to deny other
applications the ability to monitor keystrokes by enabling "secure input mode". Normally this is
used for password fields to prevent inadvertent logging of user passwords, but some programs
get confused and don't properly enable and disable this feature only when needed.
(2) Sound playback. There are many options for controlling sound playback and many programs
that try to configure them. User Interface Sound Effects must be enabled. An appropriate
output device selected, and the playback volume set to an audible level. Keyclick plays what are
called "alert sounds" (or "system sounds") which are controlled separately from the audio
playback path used by iTunes and other audio media. If the click sound doesn't appear on the
expected output device, try setting the alert sound output device in Audio system preferences,
or selecting "Use System Sound" under the More Options tab in Keyclick.
To resolve the first issue, I suggest downloading Event Taps Testbench from here:
<http://prefabsoftware.com/eventtapstestbench/
This will show you that the "KeyclickServer" process has installed a Quartz Event Tap, and if you
select Monitor Hardware will indicate when keystrokes are successfully tapped or intercepted.
To resolve the second issue, I suggest opening the "Sound" preference panel and verify whether
clicking on an alert sound causes it to playback as expected. If not, you may need to re-set the
output device or volume for alert sound playback.
Finally, you can open Apple's Console.app to view the "system.log". If Keyclick encounters an
unexpected problem, it will normally write a message here indicating what happened from its
perspective. The Keyclick Preference panel normally configures a KeyclickServer process that
performs the actual work. The KeyclickServer should start anytime Keyclick is enabled, and stop
when Keyclick is turned off and you exit from the Keyclick Preference Pane. You can verify this
in Apple's Activity Monitor and also watch the Quartz Event Tap being installed and removed
using Event Taps Testbench.
Trouble with Registration
Open Apple's Console.app to examine the "system.log". If the KeyclickServer reports that your
trial has expired you can correct this problem by removing both:
/Library/Application\ Support/Sustainable\ Softworks/Keyclick_key
and
~/Library/Application\ Support/Sustainable\ Softworks/Keyclick_key
Then re-enter your registration data. This problem could occur if the PrefPane and underlying
KeyclickServer get out of synch over which of these files to use because the directory
permissions have changed.
Message: Registration data could not be written
In some cases, the logged in user may not have write access to one of the folders in the file path
shown above (also listed in the message). You can correct this using the Finder's Get Info
command. Alternatively, you can create a plain text file named "Keyclick_key" with the XML
plist from the message you received with your registration data and place it at the location
shown above (or in the message).
Notice /Library is at the top level of your hard drive, where as ~/Library is inside your Home
folder.
I designed the registration process to work for any user on your system so you would only need
to apply your registration data once when switching among user accounts. Only later I
discovered that the owner of files outside of your home directory can change when you upgrade
or migrate from one computer to another. Also, the Migration Assistant will not automatically
transfer files in shared directories. While most users are not effected, over the years it can be a
hassle. You can Email me directly if you need further assistance.