Settings: Keybinds page with a hotkey recorder #322

Closed
opened 2026-10-07 20:43:26 -04:00 by Salastil · 1 comment
Owner

The only shortcut setting is the global show/hide hotkey, typed as a free-text Electron accelerator (SettingsPanel.tsx:539-544).

Add a Keybinds page: every shortcut listed (including the new Ctrl+K, Alt+arrows, Esc/Shift+Esc, Up-to-edit, Shift+Enter), and a key recorder for the global hotkey.

Part of the v1.0 UI pass.

The only shortcut setting is the global show/hide hotkey, typed as a free-text Electron accelerator (SettingsPanel.tsx:539-544). **Add a Keybinds page:** every shortcut listed (including the new Ctrl+K, Alt+arrows, Esc/Shift+Esc, Up-to-edit, Shift+Enter), and a key recorder for the global hotkey. _Part of the v1.0 UI pass._
Salastil added this to the v1.0 milestone 2026-10-07 20:43:26 -04:00
Salastil added the feature label 2026-10-07 20:43:26 -04:00
Author
Owner

Finished: 82a0bdf.

Settings has a Keybinds page, under App.

  • Every shortcut, listed by what it is for: moving around (Ctrl+K, Alt+↑/↓, Alt+Shift+↑/↓, Ctrl+,, Esc, Shift+Esc), writing (Enter, Shift+Enter, ↑ to edit, Tab, Ctrl+B/I/U, @, :, /, Esc), and the picker and viewer (arrows, Enter, ←/→, + - 0) - each as key caps.
  • The global show/hide hotkey is recorded, not typed. It was a free-text field wanting an Electron accelerator ("Control+Shift+M"). Now a button: click it, press the combination, done; Esc gives up, a bare key is refused (it would be taken from every other program), arrows, F-keys and the meta key work, and the physical key is named rather than what shift makes of it. Clear removes it. It saves through the same pref, so the main process re-registers it as before. The Wayland caveat stays beside it.
  • It left General, where it sat in a "Window" section with nothing else.
  • Tests: accelerator.test.ts (the accelerator a key press makes, and how it is drawn). Checked in the app with real key events: current shown, recording on click, a bare key ignored, Ctrl+Alt+J taken and saved, Esc keeps what was there.
  • Not changeable yet: the in-app shortcuts are listed but fixed; only the global hotkey can be rebound.

Before: a text box expecting "Control+Shift+M" and no list. The picture is the new page (the recorder is at its foot).

page

Finished: [82a0bdf](https://git.salastil.com/Salastil/moho/commit/82a0bdf8a8c188ff8a9a6bc6337642e8d0eb6fca). Settings has a Keybinds page, under App. - **Every shortcut, listed** by what it is for: moving around (Ctrl+K, Alt+↑/↓, Alt+Shift+↑/↓, Ctrl+,, Esc, Shift+Esc), writing (Enter, Shift+Enter, ↑ to edit, Tab, Ctrl+B/I/U, `@`, `:`, `/`, Esc), and the picker and viewer (arrows, Enter, ←/→, + - 0) - each as key caps. - **The global show/hide hotkey is recorded, not typed.** It was a free-text field wanting an Electron accelerator ("Control+Shift+M"). Now a button: click it, press the combination, done; Esc gives up, a bare key is refused (it would be taken from every other program), arrows, F-keys and the meta key work, and the physical key is named rather than what shift makes of it. Clear removes it. It saves through the same pref, so the main process re-registers it as before. The Wayland caveat stays beside it. - It left General, where it sat in a "Window" section with nothing else. - Tests: `accelerator.test.ts` (the accelerator a key press makes, and how it is drawn). Checked in the app with real key events: current shown, recording on click, a bare key ignored, Ctrl+Alt+J taken and saved, Esc keeps what was there. - Not changeable yet: the in-app shortcuts are listed but fixed; only the global hotkey can be rebound. Before: a text box expecting "Control+Shift+M" and no list. The picture is the new page (the recorder is at its foot). ![page](https://git.salastil.com/attachments/23ca41a6-99fb-466d-a212-b06b7704ea1c)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#322