JavaScript

Keyboard Shortcut Manager

by @admin
10h ago
Apr 28, 2026
Public
Registers global keyboard shortcuts with a simple key-combo syntax ("ctrl+k", "meta+shift+p"). Handles modifier keys (ctrl, alt, shift, meta) and prevents default browser behaviour when a shortcut matches. Shortcuts can be unregistered individually or all at once, making it easy to scope shortcuts to page sections or modals.
JavaScript
function createShortcuts() {
  const map = new Map();

  function parse(combo) {
    const parts = combo.toLowerCase().split('+');
    return {
      key:   parts.at(-1),
      ctrl:  parts.includes('ctrl'),
      alt:   parts.includes('alt'),
      shift: parts.includes('shift'),
      meta:  parts.includes('meta'),
    };
  }

  function handler(e) {
    for (const [combo, fn] of map) {
      const p = parse(combo);
      if (e.key.toLowerCase() === p.key &&
          e.ctrlKey  === p.ctrl &&
          e.altKey   === p.alt  &&
          e.shiftKey === p.shift &&
          e.metaKey  === p.meta) {
        e.preventDefault();
        fn(e);
      }
    }
  }

  document.addEventListener('keydown', handler);

  return {
    on:         (combo, fn) => map.set(combo.toLowerCase(), fn),
    off:        (combo)     => map.delete(combo.toLowerCase()),
    destroy:    ()          => document.removeEventListener('keydown', handler),
  };
}

// Usage
const keys = createShortcuts();
keys.on('ctrl+k', () => document.querySelector('#search').focus());
keys.on('ctrl+shift+p', () => openCommandPalette());
keys.on('escape', () => closeAllModals());
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.