Keyboard Shortcuts | Cine Power Planner

Keyboard Shortcuts Reference

Overview

Complete reference for keyboard shortcuts in Cine Power Planner.

Every chord below is one the app actually binds, or a browser default the app deliberately leaves alone. The two are kept in separate tables, because "the app does this" and "your browser does this" fail in different ways when a shortcut does not work.

Scope matters more than the chord. Most shortcuts are not global. A chord bound on the Gear List tab does nothing on the dashboard, and the Shotlist has its own set. Each table says where its shortcuts are live.

Requirements

Functional Requirements

IDRequirementAcceptance CriteriaPrioritySource
REQ-KBD-001The system shall bind global shortcuts for Save, Quick Switcher, New Project, Search and HelpCmd/Ctrl+S → flush to storage; Cmd/Ctrl+K or Cmd/Ctrl+P → Quick Switcher; Cmd/Ctrl+Alt+N → new project; Cmd/Ctrl+F → search; Cmd/Ctrl+/ → Help homeMustapp/src/app/KeyboardShortcuts.jsx
REQ-KBD-002The system shall open this shortcuts reference on a bare ?Press ? outside a text field with no modal open → the shortcuts overlay opens; Esc or ? closes itMustapp/src/app/KeyboardShortcuts.jsx
REQ-KBD-003The system shall bind multi-select editing shortcuts on the Gear List tab: Select All, Copy, Paste, Delete, Clear selectionCmd/Ctrl+A → select all; Cmd/Ctrl+C → copy; Cmd/Ctrl+V → paste as duplicates; Delete/Backspace → delete with confirm; Esc → clearMustuseGearListSelectionShortcuts.js
REQ-KBD-004The system shall bind clipboard, delete, undo and reorder shortcuts on the ShotlistCmd/Ctrl+C/V → copy/paste shots; Delete → trash; Cmd/Ctrl+Z → undo; Cmd/Ctrl+A → select all; Alt+↑/Alt+↓ → reorderMustuseShotlistKeyboard.js
REQ-KBD-005The system shall disable bare-character shortcuts when focus is in a text input or textarea, while modifier chords keep working thereFocus text input → press ? → character typed (not shortcut); press Cmd+K / Cmd+F / Cmd+/ → shortcut still firesMustapp/src/app/KeyboardShortcuts.jsx
REQ-KBD-006The system shall let a surface override a global chord for its own useDevice Library Cmd/Ctrl+F focuses that page's search box instead of navigating away — a document-level listener calls preventDefault() firstShouldapp/src/app/KeyboardShortcuts.jsx
REQ-KBD-007The in-app shortcuts overlay shall list only chords that are actually wiredEvery row in getGlobalShortcutSections resolves to a binding in the source; adding an unwired row is a defectMustkeyboardShortcutsSections.js

Non-Functional Requirements

IDRequirementMetricPriority
NFR-KBD-001Shortcut listener shall not interfere with input field typingNon-interferenceMust

Data Requirements

  • Shortcut definitions: hardcoded in the event handlers. There is no stored shortcut configuration, and no user-facing customization UI — see Constraints below.
  • Platform detection: the overlay renders / on macOS and Ctrl/Alt elsewhere. The handler itself treats metaKey and ctrlKey as equivalent, so both work on either platform.

Constraints & Limits

  • Shortcuts are not customizable. There is no shortcuts section in Settings and nothing is persisted; this reference described one until 2026-09-07, and no such screen has ever shipped.
  • Some chords are reserved by the browser and unreachable from a web page at all: the keydown is consumed by the browser before the document sees it, so preventDefault() cannot reclaim it. Cmd/Ctrl + N (New Window), Cmd/Ctrl + T (New Tab), Cmd/Ctrl + W (Close Tab) and Cmd/Ctrl + Shift + N (Incognito) are all in this class. New Project therefore binds Cmd/Ctrl + Alt + N — the Alt leg is what makes it reachable. Never bind a bare Cmd/Ctrl + N.
  • Every global chord needs a modifier. The global handler returns immediately unless metaKey or ctrlKey is held, so a bare-letter shortcut cannot fire. ? is the sole exception and is handled before that check.
  • Bare-character shortcuts are suppressed inside text inputs and while a modal dialog is open.

Offline Behavior

  • Fully available offline — keyboard shortcuts are client-side with zero network dependency

Dependencies

  • Requires: None — self-contained feature
  • Required by: None

Global Shortcuts

Live anywhere in the app. Cmd on macOS, Ctrl on Windows/Linux — the handler accepts either.

ActionWindows/LinuxmacOSNotes
Quick SwitcherCtrl + KCmd + KSearch projects, devices, contacts and pages
Quick SwitcherCtrl + PCmd + PSame surface — the old projects palette was folded into the Quick Switcher
New ProjectCtrl + Alt + NCmd + Opt + NThe Alt leg is required; a bare Cmd/Ctrl + N is owned by the browser
SearchCtrl + FCmd + FIn a project: focuses category search. Elsewhere: opens the global Search page
Open HelpCtrl + /Cmd + /Opens the Help home
Save (manual flush)Ctrl + SCmd + SForces a write to IndexedDB + OPFS; autosave already runs after every change
Shortcuts overlay??Bare key — suppressed inside text fields and while a dialog is open
CloseEscEscCloses the active modal, dialog, dropdown or Quick Switcher

Cmd/Ctrl + P does not export a PDF, and there is no Export PDF shortcut. This reference claimed both Cmd + E and Ctrl + P for Export PDF until 2026-09-07; neither has ever been bound, and Ctrl + P has for some time opened the Quick Switcher. Export from the project's Export panel.

Editing (inside a project)

Undo and redo cover gear-list and category edits while a project is open. They do nothing on the dashboard or in a read-only project, and the Floor Plan editor keeps its own separate history.

ActionShortcutDescription
UndoCmd/Ctrl + ZUndo the last change
RedoCmd/Ctrl + Shift + ZRedo the last undone change
Redo (Windows alt)Ctrl + YAlternate redo binding
Save in item editorCmd/Ctrl + EnterCommit the open item editor

Gear List (multi-select)

Active on the Gear List tab. They pause while you are typing in a field or a dialog is open.

ActionShortcutDescription
Select AllCmd/Ctrl + ASelect every item in the list
CopyCmd/Ctrl + CCopy the selected items
PasteCmd/Ctrl + VPaste — duplicates the copied items in their categories
DeleteDelete / BackspaceDelete the selected items (asks first)
Clear selectionEscDrop the current selection
Reorder categorySpace, then /Focus a category's drag handle, Space to pick up, arrows to move, Space to drop

Shotlist / Schedule

Active on the Shotlist tab with one or more shots selected.

ActionShortcutDescription
Copy ShotCmd/Ctrl + CCopy the selected shots
Paste ShotCmd/Ctrl + VPaste shots into the list
Select AllCmd/Ctrl + ASelect every shot
Delete ShotDelete / BackspaceMove the selected shots to trash
UndoCmd/Ctrl + ZRestore the deleted shots
ReorderAlt + ↑ / Alt + ↓Move the selected shot up/down
Shortcut help?Show the Shotlist's own overlay

Tabs

ActionShortcutDescription
Previous tabWith a tab bar focused
Next tabWith a tab bar focused
First / lastHome / EndJump to the first or last tab

Browser Defaults the App Respects

These are your browser's, not the app's. The app does not override them, and it cannot — several are consumed before the page sees them.

ActionShortcutDescription
Focus next / previousTab / Shift + TabMove between interactive elements
ConfirmEnterSubmit a form or activate the focused button
ToggleSpaceToggle a focused checkbox or activate a button
Cut / Copy / PasteCtrl/Cmd + X / C / VNative text editing inside a field
Reload / hard reloadCtrl/Cmd + R / Shift + RReload; hard reload bypasses the cache
Developer toolsF12Browser dev tools

Accessibility note: the Skip to content link is the first thing Tab reaches on any page — press Tab then Enter to jump past the navigation. It is a focusable link, not a chord.

Shortcut Tips

Remembering Shortcuts

  1. Mnemonics: think of the first letter (S = Save, K = Quick switcher, F = Find) — New Project adds Alt because the browser owns plain Cmd/Ctrl + N.
  2. Press ? — the in-app overlay is generated from the same list the app binds, so it is the fastest way to see what is live on your current surface.
  3. Scope first: if a chord does nothing, check which tab you are on before assuming it is broken.

Conflict Resolution

If a shortcut doesn't work:

  1. Check whether you're in a text field — bare-character shortcuts (?) are disabled there by design. Modifier chords (Cmd+K, Cmd+F, Cmd+/) are not, and do still fire.
  2. Check the surface — Gear List and Shotlist shortcuts only work on those tabs.
  3. Check browser shortcuts — if the browser reacts instead of the app (a new window opens, the find bar appears), the chord is browser-reserved and the app never received it. See Constraints above.
  4. Check OS-level shortcuts.

Last Updated: 2026-09-07 Version: 0.790.2