There is no quick switcher and no app-level keyboard navigation; the only key handling outside the composer is the global show/hide hotkey. Discord, Slack and Element all have Ctrl+K. The title bar (TitleBar.tsx:32-43) is mostly empty.
Add:
Ctrl+K: a quick switcher with fuzzy search across every account's channels, DMs and rooms, unread first; a search button in the title bar opens it
Measured by the layout check (scripts/ui-check.mjs) like the other popups.
Part of the v1.0 UI pass.
There is no quick switcher and no app-level keyboard navigation; the only key handling outside the composer is the global show/hide hotkey. Discord, Slack and Element all have Ctrl+K. The title bar (TitleBar.tsx:32-43) is mostly empty.
**Add:**
- Ctrl+K: a quick switcher with fuzzy search across every account's channels, DMs and rooms, unread first; a search button in the title bar opens it
- Alt+↑/↓: previous/next channel; Alt+Shift+↑/↓: previous/next unread
- Ctrl+, : Settings
- All listed on the new Keybinds settings page.
Measured by the layout check (`scripts/ui-check.mjs`) like the other popups.
_Part of the v1.0 UI pass._
Salastil
added this to the v1.0 milestone 2026-10-07 20:43:04 -04:00
Title bar - before (top) and after (bottom). The search button opens the switcher; it is only in the main window, since a popout is one conversation:
Ctrl+K with nothing typed - what is waiting comes first (mentions, then unread), then the most recently active, across every account. Discord channels show their server, IRC ones their account:
Typing - every word has to match the name or where it lives; names that start with the word beat ones that merely contain it, exact names beat longer ones, and letters in order still find it (gnrl finds general):
Also: Alt+Up / Alt+Down go to the previous / next channel in the list as drawn (collapsed categories skipped), Alt+Shift+Up / Down to the previous / next one with something waiting, and Ctrl+, opens Settings. Ctrl+K works from the message box too.
Checked in the isolated test copy with real key events: Ctrl+K, clips, Enter opened that channel and closed the switcher; Alt+Down and Alt+Up moved one channel each way; Alt+Shift+Down skipped read channels to the next unread; Esc closed the switcher without leaving the channel; Ctrl+, opened Settings. The ranking has 8 unit tests (lib/switcher.test.ts). The Keybinds page (#322) will list these.
Finished: [1eef37e](https://git.salastil.com/Salastil/moho/commit/1eef37ee76569bd93bc631baa5fce01d9e37c877).
**Title bar** - before (top) and after (bottom). The search button opens the switcher; it is only in the main window, since a popout is one conversation:

**Ctrl+K with nothing typed** - what is waiting comes first (mentions, then unread), then the most recently active, across every account. Discord channels show their server, IRC ones their account:

**Typing** - every word has to match the name or where it lives; names that start with the word beat ones that merely contain it, exact names beat longer ones, and letters in order still find it (`gnrl` finds `general`):

Also: **Alt+Up / Alt+Down** go to the previous / next channel in the list as drawn (collapsed categories skipped), **Alt+Shift+Up / Down** to the previous / next one with something waiting, and **Ctrl+,** opens Settings. Ctrl+K works from the message box too.
Checked in the isolated test copy with real key events: Ctrl+K, `clips`, Enter opened that channel and closed the switcher; Alt+Down and Alt+Up moved one channel each way; Alt+Shift+Down skipped read channels to the next unread; Esc closed the switcher without leaving the channel; Ctrl+, opened Settings. The ranking has 8 unit tests (`lib/switcher.test.ts`). The Keybinds page (#322) will list these.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
There is no quick switcher and no app-level keyboard navigation; the only key handling outside the composer is the global show/hide hotkey. Discord, Slack and Element all have Ctrl+K. The title bar (TitleBar.tsx:32-43) is mostly empty.
Add:
Measured by the layout check (
scripts/ui-check.mjs) like the other popups.Part of the v1.0 UI pass.
Finished: 1eef37e.
Title bar - before (top) and after (bottom). The search button opens the switcher; it is only in the main window, since a popout is one conversation:
Ctrl+K with nothing typed - what is waiting comes first (mentions, then unread), then the most recently active, across every account. Discord channels show their server, IRC ones their account:
Typing - every word has to match the name or where it lives; names that start with the word beat ones that merely contain it, exact names beat longer ones, and letters in order still find it (
gnrlfindsgeneral):Also: Alt+Up / Alt+Down go to the previous / next channel in the list as drawn (collapsed categories skipped), Alt+Shift+Up / Down to the previous / next one with something waiting, and Ctrl+, opens Settings. Ctrl+K works from the message box too.
Checked in the isolated test copy with real key events: Ctrl+K,
clips, Enter opened that channel and closed the switcher; Alt+Down and Alt+Up moved one channel each way; Alt+Shift+Down skipped read channels to the next unread; Esc closed the switcher without leaving the channel; Ctrl+, opened Settings. The ranking has 8 unit tests (lib/switcher.test.ts). The Keybinds page (#322) will list these.