FixControl/Documentation

User Guide

Keyboard & command palette

Every shortcut and the Cmd-K palette in one page — reference for operators who live on the keyboard.

FixControl is built for operators on the keyboard. Every list page, every detail pane, and the global shell share one map. Press ? anywhere to open the live help dialog — it shows whatever is registered while the page is mounted, so it's always honest.

Global

KeysDoes
Cmd/Ctrl+KOpen the command palette (search, navigate, run actions).
?Open the live shortcut help dialog.
g then iGo to Issues.
g then nGo to Inbox.
g then pGo to Patches.
g then wGo to Workspaces.
g then fGo to Follow-ups.
g then kGo to Knowledge.
g then aGo to Agents.
g then rGo to Runs.
g then dGo to Dashboard.
g then sGo to Settings.

g-prefix chords ignore typing context, so they don't fire while you're editing a field.

Tables (every list page)

KeysDoes
j / kMove active row down / up (wraps at edges).
Shift+j / Shift+kPage-jump 10 rows (clamps at edges, doesn't wrap).
EnterOpen the active row (split pane on Issues, detail route elsewhere).
/Focus the search input in the table toolbar.
xToggle selection on the active row; sets the range anchor.
Shift+xRange-select from the anchor to the active row (Gmail-style, additive).
Cmd/Ctrl+ASelect every row on the visible page.
EscClear selection if any; otherwise blur the focused element.

Selection survives pagination, sort changes, and filter changes — refilter to narrow the visible set, keep ticking rows, and bulk-act on the union once you're done.

When the mouse hovers a row, the active-row marker syncs to it — so j/k after a hover continues from where you were looking.

Row actions (page-bound)

Each list page may bind extra single-key actions on the active row. The help dialog (?) lists the ones that the current page registered.

KeysPageDoes
aIssuesRun the row's primary action (open / approve / send).
fIssuesRun fix on the active row.
g then oIssuesOpen queue (clear bucket filter).
g then rIssuesReview bucket.

Page-bound row keys never fire while typing.

Detail pages

KeysDoes
[Previous item under the list filter+sort you came from.
]Next item under the same filter+sort.

The pager only renders when there is recorded list context. Open a detail directly (deep link, fresh tab) and the pager hides — there's nothing to step through. The recorded context survives a page reload because it lives in URL state on the list page; the detail route reads it back.

Split view (Issues, Patches, Inbox, Follow-ups)

Keys / gestureDoes
Drag dividerResize the split. Width is persisted per-operator.
Focus divider, / Step the divider 16 px.
Focus divider, Shift + /Step 64 px.
Focus divider, Home / EndSnap to max / min.

The split collapses on narrow viewports automatically. When the pane is collapsed, row activations route to the standalone detail page instead.

Command palette (Cmd/Ctrl+K)

The palette searches across navigation, queues, recent entities, saved views, and actions — anything a page registers while mounted shows up.

  • Type to fuzzy-search; arrow keys move highlight; Enter runs.
  • Actions registered by a page can fire the same handlers as bulk toolbars and row buttons. So "Approve issue ABC-12" works whether or not the issue is currently in your filter.
  • The palette resets its query on close — re-opening starts clean.

Examples that exist out of the box: go to issues, new issue, approve selected, delete selected, open recent: BIZ-29, plus every saved view by name.

What's preserved across reloads

  • Table state — page, page size, sort, search, filters, view — lives in the URL, so reload restores exactly what you had.
  • Selection — survives pagination, sort, and filter changes; cleared by an explicit Esc, the bulk-bar Clear, or navigating away.
  • Split-pane width + open state — per-page, per-operator, persisted in your browser.
  • Saved views — per-tenant, shared across operators when marked shared.
  • Detail-pager context — the captured list filter rides along to the detail route, so [ / ] keep working after a reload of the detail page itself.

Cross-references

Anything unclear or wrong?Let us know →

FixControl is a trade name of FixControl B.V. i.o.