Types of action

These are the types of action that Alt Controller can currently perform.

Type of action Description
Type key Types (i.e. presses and releases) a single key or key combination
Type text Types a text string (any number of characters), which can include special characters
Hold key Holds down a key (if it isn’t currently held down) and optionally releases the key after a number of seconds
Release key Releases a key (if it is currently held down) and stops any Repeat Key actions in progress for the key
Repeat key Presses a key repeatedly
Repeat key (directional) Presses a key repeatedly while the mouse pointer is inside a particular screen region
Toggle key Holds down a key if it isn’t currently pressed, or releases it if it is currently pressed
Mouse hold Presses and holds down a mouse button
Mouse click Clicks (i.e. presses and releases) a mouse button
Mouse double-click Double-clicks a mouse button (i.e. clicks twice)
Mouse release Releases a mouse button if it is currently held down
Toggle mouse button Presses a mouse button if it isn’t currently pressed, or releases it if it is currently pressed
Scroll up Scrolls the mouse wheel one click up
Scroll down Scrolls the mouse wheel one click down
Repeat scroll up Repeatedly scrolls the mouse wheel up
Repeat scroll down Repeatedly scrolls the mouse wheel down
Stop scrolling Stops scrolling the mouse wheel
Change pointer Show, hide or restore the mouse pointer (deprecated)
Move the pointer Moves the mouse pointer to a new location
Change mode Changes to a different Alt Controller mode
Change page Changes to a different Alt Controller page
Wait Waits for a specified time before performing the next action
Stop ongoing actions Releases any key or mouse button that Alt Controller has pressed, and stops any actions in progress

Here are some notes to help explain certain types of action.

Type text action
This types a string of text (one or more characters) as if you’d typed it on the keyboard. You can include special characters such as accented letters and symbols. To create this type of action, you can cut and paste text from another program into the Edit action window.

Hold key action
This presses down a key as if you were holding it down on the keyboard. Don’t worry if the key might already be held down for any reason, that’s not a problem. You can choose for the key to be released automatically after a number of seconds, or release it manually using a Release key action at a time of your choosing.

Release key action
This releases a key that is currently held down. Don’t worry if the key might already have been released by another means, this isn’t a problem. This action also stops any Repeat key actions that are in progress for that key.

Repeat key action
Presses and releases a key repeatedly. You can specify how often to press the key, how long to hold each press for and, optionally, a time to stop after. The times are entered in seconds. If you want the key presses to continue indefinitely until you use a Release key action or the action is deactivated, set the Stop after value to zero. The example below presses the A key for 50 milliseconds, once every second.

Repeat key action

Repeat key (directional) action
This action repeatedly presses and releases a key while the mouse is inside a screen region. It’s primarily intended for steering and accelerating in racing games. You can specify how often you want the key to be pressed and also a side of the screen region where the key should be pressed for longer (if required). The sensitivity setting controls how quickly the key press time increases as the pointer moves towards the specified side of the region.

Early versions of the software had two additional and rather experimental options intended to imitate the gradual way in which a driver steers a car and, by request, these options have been reintroduced in version 1.96. The idea is that ‘Time to reach max’ represents the time it takes to turn the steering wheel to the desired position (i.e. ramp up time) and ‘time to auto cancel’ represents the time it takes for the steering wheel to return to the centre position (i.e. ramp down time). Eye tracker users in particular may wish to play around with these values to fine tune their controls. Setting the values to zero effectively means they are not used, which is the default behaviour.


Toggle key action
This presses a key if it is not currently pressed, or releases it if it is pressed, i.e. it toggles the key state.

Mouse button actions
These allow you to automatically press, release, click (i.e. press and release) or double-click (i.e. click twice) any of the mouse buttons.

Toggle mouse button action
This presses a mouse button down if it is not currently pressed, or releases it if it is pressed, i.e. it toggles the mouse button state.

Scroll wheel actions
These actions emulate scrolling up and down using the mouse scroll wheel.

Change the pointer action (deprecated)
This was an experimental action with the aim of making the mouse pointer visible when a game has hidden it. However, this method didn’t really work and therefore it is better to try using the pointer indicator option from the View menu. This action type may be removed in a future release of the software.

Move the pointer action
Moves the mouse pointer to a new location. Example scenario: “When I release the right shift key, move the mouse over a button and then left-click”.

You can move the mouse to an absolute position, or by a relative amount. You can also specify the position or amount either in pixels, or as a percentage of the window / screen / desktop size. This means that you can create profiles that work regardless of window size / position and screen resolution.

X runs from left to right and Y runs top to bottom, so (0%, 0%) is the top-left corner and (100%, 100%) is the bottom-right. The example below moves the pointer approximately to the middle of the current window’s title bar.

Move mouse pointer action

Change Mode action
Use this to change to a different mode that you have created using the Edit situations window. Modes allow you to have different sets of actions active according to the activity you’re doing.

The Change Mode action settings let you select a particular mode by name. However, you can also select Last used in order to toggle back and forth between two modes (useful for turning actions on and off with a single input). Alternatively, you can use Next and Previous to cycle through a number of modes in sequence.

You can assign actions to the Default mode if you want them to apply all of the time. This means you can use modes to vary only some of the controls and not others.

Change mode action

Change Page action
Pages work in the same way as modes. You can think of them as “sub-modes”. They might be useful in situations where you want a small variation in the current set of actions. This type of action changes the page of controls that is currently active.

Wait action
Waits for a specified time. Use this to create a series of actions with time delays between them. Ensure that your actions are set to perform in series (which is the default) when using Wait actions otherwise they will have no effect.

Stop ongoing actions
This action type is like an emergency stop. It stops any ongoing actions that are being performed by Alt Controller (e.g. repeated key or mouse button or scrolling actions) plus releases any keys or mouse buttons that have been pressed. This action type could be used before switching back to the Default mode, for example, to release any keys that have been pressed or toggled.

Advanced notes:

  1. In many cases, Stop ongoing actions is not needed before changing mode / page because Alt Controller automatically stops any incomplete (ongoing) actions before deactivating them and ensures that keys and buttons do not remain pressed. However, Toggle key / mouse button actions and Hold key / Mouse hold actions with no release time specified are instantaneous actions that complete immediately (i.e., are not ongoing); in this case, the toggled or held key / button is not released automatically and the user is responsible for releasing it manually when required using a Release key / Mouse release action (or using Stop ongoing actions).
  2. From version 1.8, Alt Controller now provides an option to stop any ongoing actions assigned to the Pressed / Inside event reasons when the corresponding Released / Outside event happens for a key or button or screen region. This allows the powerful possibility to perform different numbers of actions according to the length of time a key or button is held down or a control is hovered. For example, if the following three actions are assigned to the Pressed reason for a button:
    Type “Hello!”
    Wait 2 seconds
    Type “Goodbye.”
    then, with this option enabled, if the user only holds the button down for 1 second, it will just type “Hello!”, but if the user holds the button down for 3 seconds, it will type “Hello!” followed by “Goodbye.” (2 seconds later). The same logic applies to hovering over a button or in a screen region for different amounts of time.The automatic stopping of actions on Release / Outside can be turned on or off in Tools – Options – Actions. See also Action options.

Defining actions

We can assign actions to perform when a particular input event occurs using the Add button beneath the action list in the Alt Controller profile editor.

Example action list

This opens the Edit action window.

Edit action - type key

Select the type of action you wish to add and specify the details for it in the Settings panel. The above example shows an action that will type the key combination Ctrl+A.

See Types of action for information on the actions that Alt Controller can perform.

When you are done, click OK to confirm.


Defining screen regions

Alt Controller enables you to define regions of the screen and specify actions to perform when the mouse pointer enters, dwells inside, stays inside, or leaves them.

To add or edit screen regions, select Edit screen regions from the program’s Edit menu or use the Edit regions button in the profile editor.

Edit screen regions window

Using the Draw regions over option, you can choose what part of the screen regions are drawn over:

  • Primary screen (the whole area of your main display)
  • Primary working area (primary screen area excluding taskbars, docked windows and docked tool bars)
  • Virtual desktop (the whole desktop, which may span multiple displays)
  • Virtual working area (virtual desktop area excluding taskbars, docked windows and docked tool bars)
  • Active window (the currently active window)

Co-ordinates are defined as percentages of the chosen screen area (so that they’re independent of screen resolution, window position and size), with (0,0) being the top-left corner and (100,100) being the bottom-right corner.

You can position regions by clicking and dragging in the display or using the sliders. To draw a region with the mouse, click Draw region then click and drag in the display. If you only wish to draw exactly square or circular regions, tick the Only draw squares option. This will mean that the vertical axis is ignored during drawing so you just need to move the mouse horizontally to size the region.

You can also choose the border colour and shape of each region. The available shapes are: rectangle (including square), ellipse (including circle), ellipse sector (e.g. quarter circle), annulus (e.g. a doughnut shape), annulus sector (a half-eaten doughnut shape!).

Screen regions can be completely transparent (i.e. you can click other windows through them) or you can give them a translucent background image.

If you wish, you can tell Alt Controller to draw regions only in a particular mode or on top of a particular application window, such as the game you want to play. To do this, use the Draw in mode and Draw in app settings.

If you wish, you can choose a screenshot image to use as a guide when positioning the regions. It’s recommended to save screenshots in your Profiles folder. After you have saved a screenshot, you can select it using the Background button in the Edit screen regions window.

Defining situations

One of the key features of Alt Controller is the ability to change which actions are active at a given time. One way to do this is to create different modes and switch between them using Change mode actions. The other main way is to add an application (game or other program) that you want to control and then define actions for it. Then, when you switch to that application, Alt Controller will automatically apply the actions defined for it.

Note: there is a small time delay of around 200 milliseconds between switching applications and any actions for that application being automatically activated.

In advanced profiles, you can even define pages, which are effectively sub-modes that provide an extra level of control.

To define modes, apps and pages, click the Edit situations button in the profile editor, which opens the window shown below.

Edit situations window - modes

To add a new mode, click Add, then enter a name for the mode in the Mode name box.

To rename a mode, select it, then edit its name in the Mode name box.

To specify applications you wish to define actions for, select the Apps tab.

Edit situations window - apps

The App name dropdown menu allows you to select from the list of programs running on your computer (technically, it is a list of Windows process names). If the game or other application you want to add isn’t shown in the list, start it, then click the refresh button next to the dropdown menu. Next, click Add and select the program from the App name dropdown.

From version 1.94: You can also tell Alt Controller not to perform any actions when you are using a particular program. To do this, tick the Snooze profile when using this app option. For example, you may wish to add Alt Controller itself to the list (as shown in the screenshot above) and tick this option to ensure that you are not disturbed by any profile actions while you are editing your profile.

When you are done, click OK to confirm your changes.

Sometimes you may wish to reuse a profile created for one game with another game that requires similar controls. In this case, a useful trick is to select the original game in the Current apps list and then select the new game in the App name dropdown. You will see the name of the game change in the Current apps list. When you click OK and Apply your changes, all the existing actions will now be activated in the new game rather than the old one. If you create new profiles by copying old ones in this way, it is a good idea to update the profile notes as a courtesy to other users who may use the profile in future. (See also Previewing profiles.)


Designing custom windows

In Alt Controller, you can create your own custom windows with buttons that you can map to actions on click/release, hover in/out or dwell. To do this, add a Custom window input to your profile then select Design window in the profile editor to launch the custom window designer. (See also Editing inputs)

Custom window designer

The panel on the left shows you a preview of what your custom window will look like, and will be empty to begin with. Select Add to add buttons, then drag them to the position you want. To select multiple buttons to drag or edit, use Ctrl and click. Bold button text is used to indicate which buttons are currently selected.

Tip: To vertically align several buttons, select them using Ctrl and click, drag them to the top of the design canvas and release the mouse button. Now drag them again to the desired location. All the buttons will have the same Y position.

Tip: To horizontally align several buttons, select them using Ctrl and click, drag them to the left hand side of the design canvas and release the mouse button. Now drag them again to the desired location. All the buttons will have the same X position.

Note: When dragging buttons to a new location, you need to release the mouse button when the pointer is inside the design canvas area. Otherwise, the buttons will jump back to their original positions. By the same logic, if you start dragging buttons to a new position but decide to cancel the drag (for example, if you selected the wrong buttons), simply release the mouse button outside the design canvas.

Use the Button properties section to change the name, text, size and background colour of the buttons.

Use the Extended button properties section to change the text colour, font, font size, border width and colour, background image and translucency of the buttons.

You can give the custom window a title and choose its size using the sliders in the Window properties section. Note that this section is initially collapsed so you need to click the expander icon to show these settings. Tick Always on top if you want the window to float above the other windows on your desktop, however note that custom windows are not able to float above full screen windows.

If you want your window to be partly or completely see-through, adjust the Translucency slider (min = opaque, max = transparent). Two styles of window background are possible:

  • If Ghost background is ticked, the custom window will have no background so you’ll be able to interact with the window or desktop behind it through the gaps between your buttons.
  • Otherwise, the window will have a solid background with the chosen translucency and colour.

Note that the custom window designer itself doesn’t have a translucent background, so you won’t see the translucency effects in the layout preview.

When you’ve finished designing your window, click OK to return to the profile editor. You can now assign actions to the buttons, just as for the mouse and keyboard inputs. Note that the profile editor uses a blue or grey background to indicate whether any actions have been assigned to inputs, so you won’t see any background colours you have given buttons there.

When you apply your changes, you’ll find an option to open your custom window in the program’s Window menu.

There is also a Show title bars option to allow you to show or hide the title bars of custom windows. A hotkey can be assigned to this option using Tools – Options – Hotkeys.

Note that the Window menu is not shown when the current profile does not contain any custom windows.

Window menu and custom window

Editing inputs

Alt Controller’s inputs are the mouse, the keyboard and any number of custom windows containing button layouts that you design using the program. By default, new profiles include mouse and keyboard inputs which is often all that is needed.

If you wish to add a custom window to your profile, use the Edit inputs button in the profile editor window which opens the window shown below. Select Custom Window from the dropdown menu, click Add then click OK.

Edit inputs window

You will then be able to select your custom window input in the profile editor and click the Design window button to create your desired button layout. For further information, see Designing custom windows,

Input events

When we are defining some actions to be performed in the profile editor, we need to choose a reason, i.e. the specific input event that will cause the actions to be triggered. Here is some further information about the different reasons.

Input event reasons

Intuitively, we might think of typing a key or clicking a mouse button as being single events. However, in the context of Alt Controller, each of these is two events – pressing down the key or button followed by releasing the key or button a short time later. Hence, in Alt Controller, we can define actions for when a key or button is Pressed or Released.

The same applies when we hover the mouse pointer in a region of the screen or over a button in a custom window. First the pointer moves inside the screen region or button area, and some time later, it moves outside that area. Hence, in Alt Controller, we can define actions for when the pointer moves Inside a screen region or button area, or when it moves Outside the area.

Alt Controller also offers the event reason Dwelled. This means that the actions are triggered when the mouse pointer has remained inside a screen region or over a custom window button for a certain amount of time. That dwell time can be set in Tools – Options – Timing. Dwell actions do not repeat – they are performed at most once for each visit of the pointer to the region or button.

Options - dwell time

The final reason for actions to be triggered is Updated, which only applies to the mouse pointer input. This allows key press actions to be performed repeatedly while the pointer stays within a screen region. It is primarily used to create steering controls for racing games where the rate at which the key to steer left, steer right or accelerate is pressed is updated continuously according to the position of the pointer in the screen region.

Profile editor

The profile editor is the main window that is used to define what a profile should do. At first, this window may look a little complicated, so it helps to keep in mind the core concept of Alt Controller:

  • To make various computer input events (e.g. releasing a key, hovering over a button, clicking in a region of the screen) perform some actions (e.g. typing a key repeatedly, double-clicking the mouse, moving the mouse pointer, changing the current mode).
  • To dynamically change which actions are active depending on the task we are doing and/or the game or application window we are in.

Profile editor (annotated)

To define some actions in the profile editor, follow these steps:

  1. Specify the situation you want the actions to apply in. If you want the actions to apply all the time, set mode, app and page to Default. If you want them to apply only in a particular program, select it using the App dropdown menu. If you want them to apply only when you switch into a particular mode that you have defined, select it using the Mode dropdown. Do likewise if you are using the pages feature. Modes, apps and pages are set up using the Edit situations button. See also Defining situations.
  2. Select the input you wish to assign the actions to. This can be a mouse button or the mouse pointer, a key on the keyboard, or a button in a custom window that you have designed. Inputs are added to the profile using the Edit inputs button. Actions for mouse inputs can be applied to a specific region of the screen, and these regions are defined using the Edit regions button. See also Defining screen regions. When you select a custom window input, the Design window button is enabled to allow you to create the desired button layout for the window. See also Designing custom windows.
  3. Select the reason for the actions, i.e. the type of input event that will trigger the actions to be performed. For example, when you dwell (i.e. linger for a certain time) over a button in a custom window, or when a key is released, or when the mouse pointer moves inside a screen region. See also Input events.
  4. Specify the action(s) to perform when the input event occurs. For example, to start dragging a window, you might add two actions to move the pointer to the middle of the current window’s title bar, then press down the left mouse button. You can choose to perform the actions in Series (the default – Alt Controller waits for each action to complete before starting the next one) or in Parallel (all actions start immediately and are performed independently of one another). You can change the order of the actions using the Move up and Move down buttons. You can quickly navigate between lists of actions you have defined in the profile using the left and right arrow buttons. See also Defining actions.
  5. Check your profile using the Preview button, which shows a graphical representation of the controls you have defined. See also Previewing profiles.
  6. Click OK or Apply when you are ready to test your profile. OK applies your changes and closes the window. Apply applies your changes so that you can test them but keeps the profile editor open so you can make further changes if necessary. Cancel discards any changes since the last Apply and closes the editor. Note that your profile is only permanently saved to a file when you choose File – Save or File – Save As in the main Alt Controller window. Alt Controller will ask you if you wish to save your profile before loading a different one or exiting the program.

Note: When you have assigned some actions to an input in the currently selected situation, the control is shown coloured in blue to indicate that it is in use. When some actions have been defined for a more general situation (typically, the Default mode or app), the input is shown coloured in grey. Actions defined for more specific situations take precedence over more general ones, i.e. Mode=MyMode > Mode=Default; App=MyGame > App=Default.