๐Ÿ“ฆ doouding / keybinding

A library to handle hotkeys in browser

โ˜… 3 stars โ‘‚ 0 forks ๐Ÿ‘ 3 watching โš–๏ธ MIT License
hotkeysjavascriptshortcuttypescript
๐Ÿ“ฅ Clone https://github.com/doouding/keybinding.git
HTTPS git clone https://github.com/doouding/keybinding.git
SSH git clone git@github.com:doouding/keybinding.git
CLI gh repo clone doouding/keybinding
Hongtao Lai Hongtao Lai Update README.md 4ed745d 2 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ .github
๐Ÿ“ dev
๐Ÿ“ src
๐Ÿ“ test
๐Ÿ“„ .gitattributes
๐Ÿ“„ .gitignore
๐Ÿ“„ babel.config.json
๐Ÿ“„ jest.config.js
๐Ÿ“„ LICENSE
๐Ÿ“„ package.json
๐Ÿ“„ README.md
๐Ÿ“„ rollup.config.js
๐Ÿ“„ tsconfig.json
๐Ÿ“„ yarn.lock
๐Ÿ“„ README.md
# โš ๏ธ This project is no longer being maintained.

Keybinding

npm npm npm build-and-test

A typescript library to handle hotkeys in browser.

Usage

$ yarn add keybinding

import Keybinding from 'keybinding';

const keybinding = new Keybinding();

keybinding.on('ctrl + a', () => {
    console.log('ctrl + a pressed!');
});

Supported Keys

Keybinding support function keys, common modifier keys and some special keys. You can use their handy name to bind event.

  • Function keys: f1 - f12
  • Shift: shift
  • Meta: meta, windows, command, cmd
  • Control: control, ctrl
  • Alt: alt, option
  • Space: space
  • Arrow keys: up, down, left, right
  • Backspace: backspace, back
  • Enter: enter
  • Alphabet keys: a - z and A - Z
  • Number keys: 0 - 9
  • Punctuation keys: ` `,-, +, [, ], \, ;, ', ,, ., / ### API **construct options** %%CODEBLOCK2%% **on** Add a hotkey handler. %%CODEBLOCK3%% **off** Remove a hotkey handler. %%CODEBLOCK4%% > Scopes are used to control whether handler should be called when the bound hotkey was pressed. See more detail in disable/enable method. **disable/enable** disable method will disable the given scope's handlers. All handlers under the given scope will not be called even if the hotkeys they bound was pressed until the enable` method called.
/**
 * Disable given scope's hotkeys.
 * @param scope scope to disable, use 'all' by default
 */
keybinding.disable(scope?: string);
/**
 * Enable given scope's hotkeys
 * @param scope Scope to enable, use 'all' by default
 */
keybinding.enable(scope?: string);

// After pressing Control + A, handlerA won't be called but handlerB will still be called.
keybind.on('ctrl + a', handlerA);
keybind.on('ctrl + a', handlerB, 'scope2');
keybind.disable('default');

// You can choose to pass no parameter to disable all handler.
// In the following example, both handlerC and handlerD won't be called.
keybind.on('ctrl + a', handlerC, 'scope');
keybind.on('ctrl + a', handlerD, 'scope2');
keybind.disable();   // equal to keybind.disable('all')

// use enable to restore given  disabled scope
keybind.enable('scope1')    // enable 'scope1'
keybind.enable()            // enable all scope, equal to keybind.disable('all')

destroy

Destroy instance.

keybind.destroy();