When Apple first announced Bluetooth support in Mac OS X, I thought it sounded like an interesting and useful technology, but one I probably wouldn't experience anytime soon, since I couldn't justify the cost of replacing my existing peripherals, PDA, or cell phone with Bluetooth-enabled models. But while working on my latest book, I found it necessary to talk about this short-range wireless cable replacement technology, so I broke down and bought a pair of D-Link Bluetooth adapters and a Bluetooth-enabled Sony Ericsson T68i cell phone. Soon I was synchronizing my contacts and appointments wirelessly and even using my phone to provide wireless Internet access for my PowerBook. It took almost no time for me to become addicted to the convenience of Bluetooth.
Then a new piece of software arrived on the scene that everyone seemed to be talking about: a $10 shareware utility called Salling Clicker. With this software, anyone with a Bluetooth-enabled Mac and a compatible Sony Ericsson phone (T610, T68, T68i, R520m, or T39m) can use the phone to control their Mac. (Nokia 7650/3650 users can get similar functionality by installing Veta Universal on their phones and using it in conjunction with Arboreal Software's Romeo.) At first I thought Salling Clicker was little more than a geek novelty, but I soon found it to be highly useful. Others agreed, and Apple even gave it two Apple Design Awards (see "Apple Announces Design Awards 2003" in TidBITS-686).
Installation, Actions, and Triggers -- The Salling Clicker installer adds a preferences pane and a system-wide menu to your Mac. After pairing your phone with your computer using Mac OS X's built-in Bluetooth software, you use the preferences pane to configure one or more menus consisting of AppleScript actions. You then publish the menu to the phone, and it appears on your phone under the Accessories menu. With this symbiosis established, you can send commands to your Mac from the phone, as well as receive information back from the computer.
The basic functional unit in Salling Clicker is the action - an event or series of events on your Mac that you want to trigger with your phone. You build actions using AppleScript, but Salling Clicker includes a rudimentary GUI scripting capability that can send keystrokes to non-scriptable applications. Actions come in several varieties. Simple actions are commands that require no user interaction or feedback. There's also a slider control (to adjust volume, for example), as well as a text entry field, a list of selectable options, and two kinds of message displays that can return output from the AppleScript script.
In addition to actions that appear in a menu on your phone's display, you can set up keypad configurations such that each button on your phone triggers a different action - just like a regular remote control. Although this requires you to remember key assignments, it is usually more convenient than scrolling through a menu.
The main menu of actions you publish on your phone can contain up to 12 items, each of which can be a single action, a menu of actions, or a keypad. By nesting one menu within another, you could put hundreds of commands on your phone. A typical arrangement might be a main menu with a few frequently performed actions (such as changing your system volume), along with submenus for each of your favorite applications.
The most innovative method of triggering an action is proximity: you can provide a list of actions that occur automatically when your phone comes within Bluetooth range of your computer, and another list of actions that occur when it goes out of range. The usual example of how this would be useful is pausing iTunes when you leave the room and resuming play when you return, though one can imagine numerous other uses - activating a password-protected screen saver when you leave, for example, or timing the length of a break for those who bill for their time by the minute.
Proximity sensing does work, but not as cleanly as I had hoped. For one thing, the distance that constitutes working range can vary widely depending on what type of phone and Bluetooth adapter you own, how your computer is positioned, interference from other devices, and so on. I found that under different conditions, effective range within my home could be as little as 6 feet (2 m) or as much as 20 feet (6 m) - and in many cases, my computer still thought I was "in range" even though I was in the next room. For another thing, the computer doesn't always sense that a phone has entered or left working range immediately; delays before activation of proximity scripts ranged from less than a second to more than a minute.
Working with Actions -- Salling Clicker includes a wide variety of built-in actions for programs such as DVD Player, iTunes, Keynote, and PowerPoint, as well as a handy utility for browsing an online collection of actions and adding to your collection or updating existing actions. One of the most interesting actions is a keypad configuration that lets you use your phone as a mouse - moving the pointer, clicking, dragging, and even Control-clicking objects on screen. Besides the actions Salling Software makes available, more than a dozen Web sites offer their own collections. For many users, these ready-to-run actions will be sufficient. But where Salling Clicker really shines is in its capacity for customization. Using AppleScript, you can trigger almost any activity by modifying an existing action or writing your own.
Salling Clicker includes an integrated AppleScript editor, along with templates for several kinds of actions. These templates provide the AppleScript structures for creating basic menu commands, pop-up messages, slider controls, lists, and so on; all you need to do is fill in the blanks. This turns out to be less convenient than you might expect, though. Even though the integrated script editor has a button to check syntax, it doesn't provide a way to test your scripts without installing them on the phone, so as a practical matter, it makes more sense to write and test your scripts in Script Editor, where you can test easily, and then copy and paste them into Salling Clicker's preferences pane for publishing to the phone.
Although these capabilities intrigued me, I was initially hard-pressed to find a practical use for Salling Clicker. The most natural application for such a mechanism is controlling Keynote or PowerPoint presentations without having to stand right in front of a computer, but that's not a major concern for me, and there are other devices dedicated that task. Other common uses, such as controlling iTunes, didn't impress me either, because of the way my home is arranged. If I can hear my computer, I'm able to reach the keyboard too; a remote control wouldn't make things any simpler. In other words, the software seemed like a great solution looking for a problem.
Finding My Own Killer Application -- A few weeks later, though, I was setting up a microphone to do a bit of recording using Cubase SX. My makeshift micro recording studio is a closet with padded walls; recordings made in any other room of my home pick up too much noise from traffic, birds, or neighbors. But my problem was that the microphone picked up the noise of my PowerBook's fan. I needed the microphone inside the closet and the computer outside - but I still needed to press the record, stop, rewind, and play buttons, among other things. Then the light bulb went on: maybe I could do that with Salling Clicker.
My first step was to figure out how to control the necessary actions with AppleScript. Unfortunately, Cubase SX is not scriptable, so sending direct messages was out. Next I tried using Salling Clicker's built-in GUI scripting support to send keystrokes to Cubase SX, but for some reason they didn't work correctly. Fortunately, though, Apple's beta GUI scripting tools did the trick. I had to tweak the Cubase SX preferences for one or two of the commands I wanted to use, but after that it was a simple matter of telling Apple's System Events background application to send the keystrokes. I duplicated the script several times and modified the keystrokes for each action, then assigned the new scripts to buttons on my phone's keypad and published the menu. I went into the closet, put on the headphones, and tried some sample recordings. Amazingly enough, it worked perfectly and with no perceptible delay.
Even though this may sound complicated, the whole process - from figuring out what effect I wanted to achieve to the final working solution - took me less than half an hour. Had it not been for Salling Clicker, the only way to achieve noise-free recordings would have been to jump out of the closet every time I needed to press a control - a huge hassle at best.
My success in getting this setup to work inspired me to think about other potential uses of Salling Clicker. The first thing that came to mind was basic server administration without the need for something as complex as Timbuktu Pro. One of the many user-created actions for Salling Clicker displays a computer's uptime on your phone; you could easily create scripts to display other interesting statistics, restart your computer, or kill troublesome processes. It also may provide an alternative for people who want to listen to their iTunes collection in the living room but don't want the expense of a remote playback device such as the SLIMP3 (see "SLIMP3: MP3, Get Thee to the Hi-Fi" in TidBITS-676). As long as you can run audio cables from your Mac to your stereo, you can control every aspect of iTunes from your phone, including viewing playlists and even assigning star ratings to your songs. The catch, though, is that this works only if your phone is close enough to your computer. Bluetooth range is limited enough that you may not have adequate coverage even in a small apartment.
Home automation is another interesting application whose usefulness is hampered only by the limited range of Bluetooth. Findley Studios, publisher of HomeRun automation software, provides a set of Salling Clicker scripts that enable you to turn lights on or off and adjust their brightness using your phone. (This requires additional hardware: X-10 modules for each lamp, a controller, and a USB adapter to attach the controller to your computer.)
I wondered what would happen if I tried to use Salling Clicker with multiple machines. If you have more than one Mac with a Bluetooth adapter, you can publish a menu from each; as your phone moves out of one computer's range that menu drops off, and as it comes in range of another, its menu automatically appears. This capability can be useful for those who have Macs in several different rooms. I was disappointed, though, to find that only one Mac's menu can appear on a given phone at any one time, even if more than one is within Bluetooth range. This may be a limitation of the phone or of Mac OS X, but it means that you can't easily use Salling Clicker to control both a primary computer and a server, for example, if they're both in the same area.
Click It! If you already own a compatible Bluetooth phone and a Bluetooth-enabled Mac, Salling Clicker is almost a no-brainer at $10; a free demo version provides full functionality for 30 clicks. Is it reason enough to invest in lots of new hardware? Maybe not, but the range of capabilities it opens up - especially for people who give many presentations or do home recording in a closet - is worth considering if you're already in the market for a new cell phone.
[Joe Kissell is a writer and Mac developer living in San Francisco. His most recent book is 50 Fast Mac OS X Techniques, published in April of 2003 by Wiley. You can read his daily articles on the "Interesting Thing of the Day" Web site.]
PayBITS: If Joe helped you find a problem to solve with Salling
Clicker, consider sending him a few bucks in thanks via PayBITS.
Read more about PayBITS: <http://www.tidbits.com/paybits/>