You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files.
WARNING: This is the BETA documentation. It may not work with the stable release of Chrome.
WARNING: This is unofficial documentation. It may not work with the current release of Chrome.

Google Chrome Extensions (Labs)

chrome.experimental.keybinding

For information on how to use experimental APIs, see the chrome.experimental.* APIs page.

The keybinding API allows you to add keyboard shortcuts that trigger actions in your extension. An action can be opening the browser action or page action popup or sending a command to the extension.

Manifest

In addition to the "experimental" permission you must declare the "keybinding" permission in your extension's manifest to use this API and set manifest_version to (at least) 2.

{
  "name": "My extension",
  ...
  "permissions": [
    "experimental",
    "keybinding",
  ],
  ...
}

Usage

The keybinding API allows you to define specific commands, and bind them to a default key combination. Each command your extension accepts must be listed in the manifest as an attribute of the 'commands' manifest key. Note: Combinations that involve Ctrl+Alt are not permitted in order to avoid conflicts with the AltGr key.

{
  "name": "My extension",
  ...
  "commands": {
    "toggle-feature-foo": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y"
      },
      "description": "Toggle feature foo"
    },
    "_execute_browser_action": {
      "suggested_key": {
        "windows": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y",
        "chromeos": "Ctrl+Shift+U",
        "linux": "Ctrl+Shift+J"
      }
    },
    "_execute_page_action": {
      "suggested_key": {
        "default": "Ctrl+E"
        "windows": "Alt+P",
        "mac": "Option+P",
      }
    }
  },
  ...
}

In your background page, you can bind a handler to each of the commands defined in the manifest (except for '_execute_browser_action' and '_execute_page_action') via onCommand.addListener. For example:

chrome.experimental.keybinding.onCommand.addListener(function(command) {
  console.log('Command:', command);
});

The '_execute_browser_action' and '_execute_page_action' commands are reserved for the action of opening your extension's popups. They won't normally generate events that you can handle. If you need to take action based on your popup opening, consider listening for an 'onDomReady' event inside your popup's code.

API reference: chrome.experimental.keybinding

Events

onCommand

chrome.experimental.keybinding.onCommand.addListener(function(string command) {...});

Fired when a registered command is activated using a keyboard shortcut.

Listener parameters

command
( string )
Undocumented.