WindowDeck
Settles whose Ctrl+Shift+P it is across everyone's keybinding files.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get WindowDeck
Settles whose Ctrl+Shift+P it is across everyone's keybinding files.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, WindowDeck is included in every plan along with the rest of the range.
Whose Ctrl+Shift+P is it?
Hand WindowDeck everyone’s binding files. It normalises every chord to one canonical spelling, finds every conflict, then merges the lot into a single deck with a precedence you can actually read: an explicit "override": true beats the team standard, which beats an ordinary personal binding, and ties break alphabetically on set name. Arbitrary, yes, but stated and reproducible. Merge the same files in a different order and you get a byte-identical deck; a test tries every permutation to prove it.
The collisions a code review misses
One person typed ^⇧P, another typed ctrl-shift-p, a third wrote Ctrl+Shift+P. Three spellings, one chord, and nothing in the diff shows it. WindowDeck calls that an alias collision and treats it as an error. It also catches prefix clashes, where Ctrl+K can never resolve because Ctrl+K Ctrl+S exists, and chords the OS already owns. Anything it can’t resolve gets proposed replacements that are genuinely free.
It never touches your keyboard
No RegisterHotKey, no X11 or Wayland connection, no daemon, no editor config rewritten. It reads JSON and writes JSON. Its sibling WorkspaceForge handles geometry; bindings are all this one does. The reserved tables are curated, roughly 25 chords for Windows and 22 for macOS, so no warning means “not in our table”, not “safe”.
Reading on the job itself
- How to save and reopen your whole working setup Save the list — the folders, the applications, the pages — under a name, and open the name. Restoring exact...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working command-line build of the binding analyser: a chord parser that normalises the notations people actually type (Ctrl+Shift+P, ^⇧P, Cmd+Opt+4), curated reserved-chord tables for Windows and macOS, conflict analysis across several sets including multi-chord prefix clashes, and an order-independent merge that explains every decision it makes. It reads and writes files; it never registers or intercepts a hotkey.
Naming status
Working name only — brand verdict **CAUTION** (Medium). Collision: WindowDeck. Potentially usable after formal clearance.
What it draws on
Existing paid software whose best ideas shaped this program: DisplayFusion Pro, Stardock Fences, Actual Window Manager, Stardock Start11.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
windowdeck - keyboard binding conflict authority (Techlosoft Workspace Center)
USAGE
windowdeck check --set <file.json> [--set <file.json> ...] [--base <file.json>] [--strict] [--json]
windowdeck merge --set <file.json> [--set <file.json> ...] [--base <file.json>] --out <deck.json> [--force] [--json]
windowdeck explain <chord> --set <file.json> [...] [--base <file.json>] [--json]
windowdeck export --set <file.json> [...] [--base <file.json>] --format json|csv|md [--out <file>]
windowdeck help | -h | --help
COMMANDS
check Normalise every binding in every set and report every conflict:
one chord claimed by two actions, the same action bound
differently in different sets, multi-chord sequences where one is
a strict prefix of another, collisions that only appear after
normalisation, and collisions with the built-in Windows and macOS
reserved-chord tables.
merge Resolve the conflicts with a documented precedence and write a
single conflict-free deck to a NEW file. Every decision is
explained. The result is order-independent: merging the same sets
in a different order produces an identical deck.
explain Show who binds one chord, everywhere: which sets, which actions,
how each file spells it, what the OS does with it, and any
prefix relationships with multi-chord sequences.
export Render the merged deck as json, csv or md.
FLAGS
--set <file> A binding-set file (JSON). Repeat for each person. Bare
positional arguments are treated as sets too.
--base <file> The team standard. Its bindings win over personal sets
unless a personal binding is marked "override": true.
--out <file> Where to write. Required by merge, optional for export
(stdout when omitted). merge refuses to write over any
input file, and refuses an existing file unless --force.
--format <fmt> export only: json, csv or md.
--ledger <file> Append one JSON-lines audit record for this run.
--suggest <n> How many free replacement chords to propose per unresolved
conflict. Default 3, 0 disables.
--strict check only: exit non-zero on warnings as well as errors.
--force Allow --out to overwrite an existing (non-input) file.
--json Machine-readable JSON output.
...
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
analyze.go · chord.go · console.go · console_test.go · guided.go · main.go · main_test.go · report.go · reserved.go · sets.go
SHA-256 checksums · build instructions & scope notes · full build plan