Skip to content
TwinScope0.3.10

Command palette

One box for everything you can do and everything you have recently compared. Type a few letters, not the exact words.

⌘K opens it. ⌘K again closes it, as does Esc or a click outside the panel. Opening it clears the previous query and re-reads the recent list, so it never shows a stale one.

Click to enlarge
Actions and Recent, in one list. The footer counts what survived the filter.

The filter is a subsequence match#

Characters must appear in order, not adjacent. So cf finds Compare files…, and hist finds anything with those letters in sequence. Spaces in your query are skipped, which means you can type across word boundaries without thinking about them.

Matching runs over each entry's label and its detail line, lower-cased, so searching clipboard finds Compare clipboard and searching disk finds it too — via "Pick two files from disk".

TypeFinds
cfCompare files…
cfoCompare folders…
themeToggle theme
darkToggle theme — matched on its detail, "Dark ↔ light"

When nothing matches, the palette says so and names what you typed rather than showing an empty box.

Moving and choosing#

KeysWhat
Move the cursor
Run the highlighted entry
EscClose

The cursor is clamped rather than stored in range: the list changes under it as you type, and an index that outlived its list would highlight nothing. Typing resets it to the first entry.

The panel is a real dialog — role="dialog", aria-modal, with the list as a listbox and each row an option carrying aria-selected. The input takes focus on open.

Two groups#

Actions#

Actions come from the same registry as the keyboard map, filtered to the entries marked for the palette. Seven of the fifteen bindings appear here, each showing its keys on the right:

ActionKeysDetail
Compare files…⌘OPick two files from disk
Compare folders…⌘⇧ORecursive tree diff
Compare clipboard⌘⇧VPaste A, then paste B
Swap sides⌘⇧SBefore becomes after
Export report⌘⇧ERepeats the last format used
Toggle theme⌘⇧LDark ↔ light
Settings⌘,Theme, defaults and shortcuts

Recent#

Up to eight comparisons from history, newest first — enough to be useful, few enough to scan. Each row shows the pair's title, a badge for its type, how long ago you opened it, and its change count.

Choosing one reopens it exactly as the History screen would: both inputs are re-read from disk and the comparison re-runs with its stored options. A pasted input or a file that has moved is explained rather than silently failing.

Details that matter in use#

  • It closes on a screen change. Running an action that navigates dismisses the palette, so it never hangs over the result of the thing it just did.
  • The footer counts. N of M — how many entries survived the filter, out of how many exist. Useful for noticing that your query is narrower than you meant.
  • Group headers disappear when empty. Filter to something only in Actions and the Recent header goes with it.