# Buttons Settings Specification

The Buttons Settings application allows customization of the device's hardware buttons.

The Buttons Settings application links applications, settings programs and games installed on the device to hardware buttons on the device.

Status: RT

## Use Cases

- Favorite Game

  A user plays SuperGame 2000 but does not use the email client. By using the Button Settings, they can change the operation associated with the "email" hardware button to launch the game.

- Quick Beam

  By default, pressing and holding the Contacts button will cause the user's businesscard to be beamed. The user can change this to instead create a new contact.

## Features

- Invoke program: Any application, game or setting can be mapped to any available hardware button.
- Invoke service action: Any service action which takes no parameters and which has a Name is presented as an option for the hardware buttons.
- Press-and-hold: the "press" action and the "press and hold" action can be set independently.
- Device-specific button images: the images used for buttons are defined by device-specific image files.
- Device-specific default buttons: the default service actions for each button are defined by device-specific code.

## Prerequisites

- Hardware: Device must have hardware buttons.