Sofa Control Manual

Table of Contents


Sofa Control is a software that allows you to control other applications with the Apple Remote Control or the Keyspan RF Remote for FrontRow. The Remote Control provides six separate buttons. With these six buttons you can flip through your presentation slides, documents, browse the web or fast forward when watching movies.
To accomplish this Sofa Control maps a number of functions of an application on the buttons of the remote control. There is an individual mapping for each supported application.
Sofa Control introduces itself. Upon startup it will present a short and easy-to-follow tutorial. All you need is the remote control. If you want to get a quick start, you should give this tutorial a try. You can open the tutorial at any time from the Help menu in Sofa Control.

Hold Actions

All the six buttons of your Remote Control differentiate between a single short press of a button and pressing and holding a button. When you press and hold a button, a different action can be triggered by doing so. When watching movies with the VLC Player for example, a press on the button "Forward/Right" switches to the next movie in the playlist, while a press and hold triggers a fast forward in the movie that you are currently watching. The actions that are triggered by a hold depend on the application that you are using. In the case of holding the Play button, we try to retain a common action throughout the different applications. It is therefore that holding the Play button in applications that are being used for presentations (Keynote, Powerpoint, etc.) will activate the Presentation Mouse. For applications that provide a fullscreen view, such as iTunes, Quicktime Player, VLC, etc., holding the Play button toggles fullscreen view.

Menu Button

CustomMenus-thumbThe button called "Menu" on your remote control has a special meaning in Sofa Control. Not all of the useful functions of an application can be mapped on the six buttons of the remote control. For these cases, and to provide more advanced functions, an application specific menu is provided.

A press on the Menu button brings up this application specific menu. The actions that you can trigger from the Menu depend on the current active application.

Global Menu

Actions like changing the system volume or switching through applications with Exposé do not belong to an application. These kinds of actions are useful for all applications. These are system level, global actions. These actions are therefore accessible in the Global Menu. You activate the Global Menu by pressing and holding the Menu button for 2 seconds. You can define which actions you want to have in the Global Menu in the Preferences of Sofa Control.

Multi Clicks

For some applications, the limitation of six buttons is bothersome. The application specific menus provide more actions, but these need at least two more clicks to be accessed.

Multi Clicks Actions are actions that are mapped to a multi click event. Just as you would double-click the left button of your mouse, you can also double-press a button on your remote control. A double-press would then trigger a function of an application. Multi Clicks are an advanced feature. To get used to it, all the Multi Click Actions are also activate-able in the application specific menu. The Multi Click Mapping is visualized on the right side of an entry in the menu, just as you know it from standard menus. See the screenshot on the right for a sample view.

Script Switcher

When you control your Mac with Sofa Control you may need to switch between applications. You can activate and use Exposé from the Global Menu to switch between applications. But with Exposé you are unfortunately unable to start an application.

ScriptSwitcher-thumbWith the Script Switcher you are able to navigate through the available applications to activate and start them. The Script Switcher is designed to look similar to the application switcher of Mac OS X that you access with the Command-Tab shortcut. To open the Script Switcher, open the Global Menu by holding the Menu button for two seconds. Choose the item "Choose Script" to open the Script Switcher. Press and Hold the left or right button on the remote control to navigate through the list of applications. Pressing the Plus button moves you to the first item of the list while Minus selects the last item of the list.

File Chooser

FileChooser-thumbSofa Control provides a File Chooser to open documents, movies and more in your favorite applications by using the remote control. The File Chooser can be accessed through the application specific menus.

Every time you open a file by using the file chooser, Sofa Control remembers your decision. The next time you want to open a file with that application, Sofa Control automatically takes you to the place where you have chosen a file lately. Sofa Control interacts with each application to find out which file types are supported. The File Chooser then filters out those files that are not usable by the application. If the application is able to deal with folders, like opening all pictures of a folder in Preview, you are able to select directories as well.

Virtual Mouse

With Sofa Control you are able to control the mouse pointer with your remote control. You can do a left mouse click by pressing the Play button, move around by using the Plus/Minus and Left/Right buttons and do even more like a right mouse click or Drag & Drop from the Virtual Mouse specific menu.
The virtual mouse can be easily accessed at any time through the Global Menu. Through the Virtual Mouse specific menu you can also immediately return to the application you used before.
With the Presentation Mouse we provide a specialized variant for those giving presentations. In every application that is used for giving presentations (Powerpoint, Keynote, Adobe Acrobat, VoodooPad,...) you can activate the Presentation Mouse by pressing and holding the Play button. The Presentation Mouse automatically highlights the part of the screen beneath the mouse pointer. To quit the Presentation Mouse just press the Play button on the remote control.

Virtual Remote Control

Sofa Control provides keyboard shortcuts to simulate a Remote Control. These keyboard shortcuts can be used to control and use Sofa Control with programmable devices. The virtual remote control is turned off by default. You have to enable it by activating the option Virtual Remote Control in the advanced settings pane in Sofa Controls preferences. Upon the next start of Sofa Control, the following keyboard shortcuts can be used to control Sofa Control.

Keyboard Shortcut

Simulated Remote Control Button

Plus Button
Minus Button
Play Button
Left Button
Right Button
Menu Button
Play Hold


Through the Sofa Controls preferences dialog you are able to adjust the look and feel of Sofa Control to your personal needs. General Settings: If you want to hide Sofa Control from the Dock, you can enable to use Sofa Control as a Menu Extra. The maximum time for recognizing a double click can also be adjusted.

Global Menu Settings

Sofa Control ships with a large number of Global Actions. Only a small number of them are activated by default. You can activate and rearrange them as you like in the Global Actions settings.

Visuals Settings

In case you are having more than one display connected to your Mac, you can define which one shall be used to display the Script Switcher, Menus and File Chooser. Colors of the visuals and the size of the visuals are adjustable as well.

Virutal Mouse

Sofa Control Virtual Mouse comes with the Mouse Light to highlight things beneath the mouse cursor. The color and radius of the Mouse Light can be configured. If you have a license from Boinx Mouseposé, you can configure Sofa Control to use that too.


ScriptsWindow-thumbSofa Control uses AppleScript to control other applications. AppleScript is the language provided by Apple to do automated workflows and to control applications on the Mac. For each application that is supported by Sofa Control, a specialized script has been developed. These scripts define which actions on the remote control are mapped to a specific function of an application. Some of these scripts are very simple and just send keyboard shortcuts to a target application in order to control it. Other ones are much more complex as they use specific functionalities of the target applications to better control them.

To see which scripts are installed on your system, open the Scripts window. To open the Scripts window, choose the menu item "Installed Scripts" from the Sofa Control Menu "Script." The Scripts window gives you an overview about which scripts are installed and which of them are active. You can disable scripts by deselecting the checkbox in the column called "Use." Disabled scripts are no longer used by Sofa Control, but the script is still installed on your system. If you want to remove the script from your system just press the minus button in the lower left hand corner of the window.

Local Changes

Scripts that are marked with a star in its name have local changes. This means that you have changed that script but the version number of the script has not been changed. With this marker, Sofa Control is able to find out if you have made local changes. This is important when you download a Sofa Control update that will most likely replace your changes. Whenever a changed script is being replaced, a backup of the script is stored on your desktop. Some Scripts might be disabled as the required application is not installed on your system. To see those scripts as well choose "Disabled Scripts" from the list at the lower right hand corner of the Scripts window.

Script Sharing

The action button on the lower left beneath the "minus" button provides options to import and export scripts. This enables you to share scripts or to import new and updated scripts from our website.

Create Your Own

Sofa Control comes with a Script Editor that makes it easy to write your own scripts. In the following tutorial we show step by step how to write your own scripts.

The application that we want to control with a new script is the Address Book that ships with Mac OS X. What we want to achieve:
Switch through your contact by pressing Left/Right on the remote control
Toggle between list and single contact view by pressing Plus/Minus on the remote control
Display the name and Phone number when pressing the Play button

Step 1: Create a new empty script

In the first step we have to create a new script.
1. Select the menu item "New Script" from the Sofa Control "File" menu. A new script window will open.

NewScript-Step1-thumbThe main part of the script editor is the script itself. The first part of the script (the one that is marked with (* and *) as a comment) is for documentation purposes only. You should use that part to document the mapping you used. Out of this information we can extract and format the documentation for a script.
A Sofa Control script consists of a number of functions. In Applescript a function starts with the keyword "on" followed by the name of the function.
The function "rcActivate" has already been added to the script. This function will be called when the script is activated. Typically one wants to activate the target application during activation. A placeholder code is already added to do this. The only thing we have to do is to insert the name of the application we want to control. In our case this is "Address Book"

2. Replace the text "Name of Application" with "Address Book". Ensure that you do not remove the quotes.

3. Press the button "Verify" to let Sofa Control verify the script.
NewScript-Step1-Finished-thumbIn case that verification failed the erroneous code is being highlighted. If verification succeeded the code snipped will be formatted and individual parts of the scripts are highlighted.

In the next step we configure the script so that it is used for controlling the Address Book application. Beneath the toolbar of the Script Editor you find the Script information like the Name and Version. In the second line there is a checkbox that says "automatically controls no application". We have to change that to "automatically controls Address Book" in order to tell Sofa Control that it shall use this script for the application Address Book.

4. Click on the words "no application" and select "Address Book". Also check the checkbox.

Sofa Control will automatically set the name of the script to "Address Book" and set the icon. Of course you can change the name to whatever you like.
Before you proceed to the next step make sure that your script window looks similar to the screenshot on the right.
Step 2: Map Buttons to Keyboard Shortcuts
In the second step we map the Plus/Minus and Left/Right buttons of the remote control to functions of Address Book. Make yourself familiar with the keyboard shortcuts that are being supported by Address Book by flipping through its menus.
We want to create the following mappings:

Remote Control Button

Keyboard Shortcut
Left =>
Right =>
Plus =>
Minus =>

Creating a mapping is an easy process. First you add the script function that will be called when the button on the remote control is being pressed. Than you add the code that sends the keyboard shortcut to the target application.

1. Select the Action called "Left" from the toolbar Actions menu.
The code for the function that is called when the left button is pressed on the remote control is being added.
on rcLeft()
Code that is executed when the Left button is pressed.
end rcLeft

2. Set the cursor after the comment "*)" and press enter to add a new line.
Now we have to add the code to simulate the keyboard shortcut Command-[.

3. Press on "Record Key". Switch to Address Book. Press Command-[ and return to Sofa Control.

4. Press "Insert Code" to add the code to simulate the keyboard shortcut to the script. Finish by pressing Verify in the toolbar.

Repeat these steps for the other three shortcuts. You can download the resulting Script of Step 2.
At any time you can test your script by pressing the toolbar button "Run Script".

Step 3: Use Sofa Control Visual to display name

In this step we will get the name and phone number of the current selected person. We do that by using the scripting interface of Address Book.

1. Add the script function for the Play button by choosing Play from the Actions menu.

2. Copy the following code beneath the comment of the Play function.
-- retrieve the name and phone number of the selected person
tell application "Address Book"
set selectedItems to selection
-- is there a selection?
if (selectedItems is {}) then return
set p to first item of selectedItems
tell p
set fullName to first name & " " & last name
if phones is {} then
set phoneNr to "No Phone"
set phoneNr to value of first phone
end if
end tell
end tell

The code you copied retrieves the name and phone number of the current selected person from the Address Book. The next step is to display this information on the screen.

Sofa Control provides a rich set of functionality for scripts. All the Sofa Controls visuals can be used from scripts.
We use the "show message" command of Sofa Control to display the name and phone number.

2. Copy the following code beneath the other code in the Play function.
tell application "Sofa Control"
show message fullName & "\r" & phoneNr with wait for click
end tell
Press the Run button to give it a try.
You can download the resulting Script of Step 3.
Advanced Scripts

There is many more that can be done with Sofa Control Scripts. Custom menus are easy to define and a file chooser is easy to integrate. Check out the scripts that are installed on your system to see what you can do with more advanced techniques.

A full list of Sofa Controls scripting interface and a documentation can be accessed through the Mac OS X Script Editor. Open the Mac OS X Script Editor from the folder Applications -> AppleScript. Drag the Sofa Control icon on the Script Editor icon in the Dock in order to open the documentation.