Mori 雙模式架構:前綴鍵選模式,數字鍵選 profile。共 23 個全域熱鍵 (toggle + cancel + picker + 10 voice slot + 10 agent slot)+ picker / chat / tray 內熱鍵。
Linux 啟動時自動偵測 session 走哪條 path:
XDG_SESSION_TYPE=x11)→
tauri-plugin-global-shortcut(XGrabKey 直接 grab,Ubuntu 24.04 + X11 可用)xdg-desktop-portal GlobalShortcuts
(第一次跑會跳權限對話框 — 需要 xdg-desktop-portal ≥ 1.19,Ubuntu 26.04+)Alt+N切到 voice profile N(~/.mori/voice_input/USER-NN.*.md)。
按完接著按 Ctrl+Alt+Space 錄音,STT → 單輪 LLM cleanup → 貼到游標。
Ctrl+Alt+N切到 agent profile N(~/.mori/agent/AGENT-NN.*.md)。
按完接著按 Ctrl+Alt+Space 錄音,STT → Mori agent loop → chat 回應 / 執行動作。
Ctrl+Alt+P系統匣右鍵點 Mori icon:
USER-*.mdAGENT-*.md如果 Ctrl+Alt+Esc 註冊不上,GNOME 預設綁了 cycle-panels:
gsettings set org.gnome.desktop.wm.keybindings cycle-panels "[]"
細部 troubleshoot 見 Troubleshooting。
編輯 ~/.mori/config.json 的 hotkeys 子樹:
{
"hotkeys": {
"toggle": "Ctrl+Alt+Space",
"toggle_mode": "toggle",
"cancel": "Ctrl+Alt+Escape",
"picker": "Ctrl+Alt+P",
"voice_slot_modifier": "Alt",
"agent_slot_modifier": "Ctrl+Alt",
"voice_slot_overrides": {},
"agent_slot_overrides": {}
}
}
toggle / cancel / picker — 單一動作的完整 hotkey 字串toggle_mode —
"toggle"(預設,一按切換錄音)或 "hold"(按住錄、放開停,
像 push-to-talk)。兩種模式共用同一個 toggle chord,
X11 / Wayland 都支援。Config UI 按「儲存」即時生效不必重啟。voice_slot_modifier — 套用到 voice slot 0~9 的 modifier(預設 Alt,
產出 Alt+0、Alt+1 ... Alt+9)agent_slot_modifier — 同上但用於 agent slot(預設 Ctrl+Alt)voice_slot_overrides / agent_slot_overrides — 個別 slot 覆寫,
key 是編號字串("0"~"9"),value 是完整 hotkey 字串。例:
{"0": "F1", "1": "F2"} 把 Alt+0 / Alt+1 改成 F1 / F2X11 session 實機 demo(切模式 + hold 錄音 + 熱套用,29 秒):
都用同一個 chord(預設 Ctrl+Alt+Space),差別只在按下 / 放開的解讀:
Config tab → Hotkey sub-tab 有 dropdown 可切。
為什麼不做「bare Alt 按住 1 秒」?xdg-desktop-portal 規範明確 reject
純 modifier trigger,Wayland 拿不到 bare Alt 事件,唯一跨 path 路徑是 evdev
(/dev/input/event* + input group),代價過大。Chord-based hold
等價體感反而更順(0ms 起錄 vs 1s 等待),所以走 Ctrl+Alt+Space hold。
Ctrl(或 Control) /
Alt(或 Option) /
Shift /
Super(或 Meta / Cmd)A~Z(大小寫不分)0~9F1~F24Space、Escape、Return(或 Enter)、
Tab、BackSpace、Delete、Insert、
Home、End、PageUp、PageDown、
Left、Right、Up、DownComma、Period、Slash、
Semicolon、Quote、Backquote 等rm -rf ~/.local/share/xdg-desktop-portal/permissions
否則 config 改了沒效。Wayland 上之後也可以直接去 GNOME Settings → Keyboard
→ 自訂快速鍵 調 Mori 的 binding(portal 規範:compositor 是最終決定者)。啟動時會檢查兩個 action 是否綁到同一個鍵(忽略 modifier 順序),衝突會在 log 出
hotkey conflict: ... both map to ... 並 abort 整批註冊 — 修 config 再重啟。
X11 path 上某條鍵被別的 app 先 grab(例如 GNOME 把 Ctrl+Alt+Esc 綁了 cycle-panels)
,Mori 只會 log warn 跳過那條,其他 22 條照常生效。