Mori

DOCS

Hotkeys

GLOBAL · MAIN WINDOW · PICKER

Mori 雙模式架構:前綴鍵選模式,數字鍵選 profile。共 23 個全域熱鍵 (toggle + cancel + picker + 10 voice slot + 10 agent slot)+ picker / chat / tray 內熱鍵。

基本操作流程(日常用法 4 個鍵打天下):
  1. Alt+0~9Ctrl+Alt+0~9 — 選 mode + profile slot(每按一次就鎖在那個 mode)
    • Alt+0 = VoiceInput 預設極簡聽寫
    • Alt+1 = VoiceInput 預設「朋友閒聊」(starter)
    • Ctrl+Alt+0 = Agent 預設 Mori 角色
    • Ctrl+Alt+1 = Agent 預設「翻譯助手」(starter)
  2. Ctrl+Alt+Space — 開始錄音 / 再按一次停止 + 自動送 STT + LLM
  3. Ctrl+Alt+Esc — 錄音中丟音檔 / 思考中 abort LLM
  4. Ctrl+Alt+P — 不記 slot 數字就開 picker overlay 選
全新安裝時 slot 0~5 都有 starter(v0.4.1+ 預設 deploy 6 個 voice + 6 個 agent),slot 6~9 用同檔名格式自建(見 Profile 範本)。

Linux 啟動時自動偵測 session 走哪條 path:

全域熱鍵 · Toggle

Ctrl + Alt + Space
開始 / 結束錄音(兩個模式共用)
Ctrl + Alt + Esc
中斷錄音 / 中斷 Mori 思考
Ctrl + Alt + P
開啟 Profile Picker overlay(↑↓ / Tab / Enter)

VoiceInput 模式 · Alt+N

切到 voice profile N(~/.mori/voice_input/USER-NN.*.md)。 按完接著按 Ctrl+Alt+Space 錄音,STT → 單輪 LLM cleanup → 貼到游標。

Alt + 0 ~ 9
切到對應編號的 voice_input profile

Agent 模式 · Ctrl+Alt+N

切到 agent profile N(~/.mori/agent/AGENT-NN.*.md)。 按完接著按 Ctrl+Alt+Space 錄音,STT → Mori agent loop → chat 回應 / 執行動作。

Ctrl + Alt + 0 ~ 9
切到對應編號的 agent profile

Picker Overlay · Ctrl+Alt+P

/ k / j
上下選 profile(3-item carousel)
Tab /
切 VoiceInput / Agent 兩組
Enter
確認切換
Esc
取消(picker 關閉)

主視窗 Chat Panel

Ctrl + Enter
送出 textarea 訊息(textarea 內)

Tray Menu

系統匣右鍵點 Mori icon:

UI 內小按鈕

Linux 系統熱鍵衝突

如果 Ctrl+Alt+Esc 註冊不上,GNOME 預設綁了 cycle-panels:

gsettings set org.gnome.desktop.wm.keybindings cycle-panels "[]"

細部 troubleshoot 見 Troubleshooting

自訂熱鍵

編輯 ~/.mori/config.jsonhotkeys 子樹:

{
  "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 vs Hold 模式

X11 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

支援的鍵名

改完什麼時候生效?

衝突偵測

啟動時會檢查兩個 action 是否綁到同一個鍵(忽略 modifier 順序),衝突會在 log 出 hotkey conflict: ... both map to ... 並 abort 整批註冊 — 修 config 再重啟。

單鍵 grab 失敗

X11 path 上某條鍵被別的 app 先 grab(例如 GNOME 把 Ctrl+Alt+Esc 綁了 cycle-panels) ,Mori 只會 log warn 跳過那條,其他 22 條照常生效。