Skip to content

Keyboard shortcuts

Every global and app-command shortcut goes through one central keymap (#132). Mod is the platform primary modifier — Ctrl on Windows/Linux, ⌘ Cmd on macOS — so bindings work on a Mac without extra config.

idDefaultScopeAction
startMenu.toggleCtrl+EscglobalOpen the Start menu (Win-key substitute)
window.closeAlt+F4globalClose the focused window
switcher.nextAlt+TabglobalApp switcher
egg.bsodCtrl+Shift+Alt+BglobalBlue Screen easter egg
desktop.selectAllMod+AdesktopSelect all icons
desktop.renameF2desktopRename icon
desktop.deleteDeletedesktopSend to Recycle Bin
desktop.openEnterdesktopOpen selection
paint.save / paint.openMod+S / Mod+OappPaint save / open
minesweeper.newGameF2appNew game

Remap or disable any of them with the keymap prop — an embedding host can reclaim keys without forking:

jsx
<WindowsXP
  keymap={{
    'startMenu.toggle': 'Mod+Shift+X', // remap
    'window.close': null,              // disable
  }}
/>

disableGlobalShortcuts is sugar for disabling the entire global scope.

Feasibility matters. The browser reserves some keys (Ctrl+W/T/N, Ctrl+L, F11) — pressing them can close the visitor's tab or open a new window, and the page can't stop it. None of those ship as bindings (e.g. Notepad "New" is menu-only, not Ctrl+N). The full per-OS/browser audit and the substitutes for blocked XP keys live in docs/KEYMAP.md.