Mori

DOCS

Troubleshooting

COMMON ISSUES · FIXES

Whisper 一直回 "Thank you" / "Thanks for watching"

Whisper 對近乎無聲的音訊會幻覺出這幾句(訓練資料 YouTube 影片結尾很多)。代表 麥克風沒在收聲

Whisper hallucinate sample (floating)
Floating sprite 版:Mori 自己察覺音訊太弱
Whisper hallucinate (main window)
主視窗版:Mori 老實說「Whisper 應該抓得亂七八糟」並提示可能的意圖 — 不假裝聽懂

UI 在錄音時的橫向音量條會直接讓你看到:

修法

  1. GNOME Settings → Sound → Input 確認:
  2. Acer Swift / Intel Ultra 系列 (Meteor Lake+) 的常見坑 — 預設選「Stereo Mic」其實不會收音,要改成 「Digital Mic」。 Intel SST(Smart Sound Technology)架構下 ALSA 偵測有時會選到錯的 PCM device。
  3. 還是不行就直接看 /tmp/mori-last-recording.wav(每次錄音都會存), 用任何播放器聽看實際捕到什麼。

全域熱鍵 Ctrl+Alt+Space 沒反應

第一次啟動 Mori 時,GNOME 應該會跳一個權限對話框問你要不要讓 Mori 註冊全域熱鍵 — 點「新增(Add)」。如果當時誤點拒絕:

# 讓 Mori 重新跳對話框(刪掉 portal 的 per-app 紀錄)
rm -rf ~/.local/share/xdg-desktop-portal/permissions

# 重啟 Mori

若是 X11 / macOS / Windows 走的是 tauri-plugin-global-shortcut,熱鍵直接生效不用授權。

第一次啟動沒跳熱鍵授權對話框 / portal global shortcut unavailable

log 看到這段:

ERROR mori_tauri: portal global shortcut unavailable — use the UI toggle button to trigger Mori
  e=register host app id with xdg-desktop-portal Registry

Caused by:
    A portal frontend implementing `org.freedesktop.host.portal.Registry` was not found

這代表你的 xdg-desktop-portal 太舊,沒實作 org.freedesktop.host.portal.Registry interface(Mori 用這個 interface 跟 portal 註冊 app id,才有資格申請 GlobalShortcuts)。 Mori 設計時假設 Ubuntu 26.04(GNOME 48 + xdg-desktop-portal 1.20+),24.04 LTS ship 的 1.18.x 還沒這個 interface。

確認版本:

dpkg -l xdg-desktop-portal xdg-desktop-portal-gnome | awk '/^ii/ {print $2, $3}'
# 需要 xdg-desktop-portal ≥ 1.19,xdg-desktop-portal-gnome ≥ 47

修法

  1. 切換到 X11 session(最簡單,24.04 LTS 適用) — 登出 → 登入畫面齒輪 → 選 「Ubuntu on Xorg」 再登入。Mori 啟動時偵測到 XDG_SESSION_TYPE=x11 會自動走 tauri-plugin-global-shortcut 路徑(XGrabKey 直接 grab,不需 portal),全域熱鍵立即生效不用授權對話框。
  2. 升級 Ubuntu 到 26.04 — Wayland 上 portal 1.20+ 才有 host.portal.Registry interface,GNOME 會跳權限對話框讓你綁鍵。
  3. 不升級也不切 X11 就用 UI toggle 按鈕 — Mori 仍會正常啟動,主視窗的 「toggle 錄音」按鈕,跟 floating sprite 點擊,都能觸發語音輸入。只是沒有全域熱鍵。

確認 Mori 走哪條 path,看 log 第一行:

INFO mori_tauri: X11 session detected — using tauri-plugin-global-shortcut
# 或
INFO mori_tauri: non-X11 session detected — using xdg-desktop-portal GlobalShortcuts

注意:XWayland(在 Wayland session 內跑 X11 app)不算 X11 session — XDG_SESSION_TYPE 仍是 wayland,Mori 走 portal 路徑(XGrabKey 在 XWayland 被 compositor 擋掉,所以 plugin 在那邊也不會 work)。

Ctrl+Alt+Esc 中斷鍵沒反應

GNOME 預設綁了 cycle-panels,要先解掉:

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

cargo build 失敗:pkg-config: alsa not found

cpal 需要 ALSA 開發 headers — 你跳過了 Linux Quick Start 那步 system deps 安裝:

sudo bash scripts/install-linux-deps.sh

(repo 自帶,跟 CI 跑同一份;只想補 alsa 的話 sudo apt install libasound2-dev 也行。)

Dock 出現多個 Mori 圖標堆疊

brand-1 之前的問題 — 因為 chat_bubble / picker 是 visible: true off-screen 載入, 每個都進 dock。已修。如果還看到,可能是:

ydotool 沒權限 / paste-back 失敗

Wayland paste-back 用 ydotool,需要 user 在 input group + daemon 跑著。

# 加 input group
sudo usermod -aG input $USER

# 啟動 ydotoold daemon(user service)
systemctl --user enable --now ydotoold

# 重開機讓 group 生效

X11 用 xdotool(sudo apt install xdotool),不用權限。

切 theme 短暫閃白 / 配色不對

brand-3 切 theme 不會 reload window,直接覆寫 CSS variables。如果看到閃白:

Picker(Ctrl+Alt+P)鍵盤焦點抓不到

Wayland 對 hide/show 反覆切換的視窗 focus 給不穩。已改用「保持 visible 但 setPosition off-screen」 策略,5K-1c 起應該都 ok。如果還有問題:

先看 Logs tab(v0.4.0+ 觀測層)

任何「Mori 回應怪 / spawn 失敗 / API call 沒結果」這類問題,**第一步先看 Logs tab**。 v0.4.0 起 Mori 自動把每次 LLM call / spawn error / fallback / redaction 寫進 ~/.mori/logs/mori-YYYY-MM-DD.jsonl(JSONL append-only,跨平台一致):

Windows:bash CLI provider spawn 失敗

過去常見錯誤(v0.4.0 之前):

provider chat (round 0): spawn `C:\Users\yazel\AppData\Roaming\npm\gemini.cmd`: batch file arguments are invalid

原因:Rust 1.77.2+ 因 CVE-2024-24576 fix,直接 spawn .cmd / .bat 帶 args 會被擋。**v0.4.0 起 Mori 已自動處理** — cli_command() helper 看 binary 是 .cmd / .bat 時包一層 cmd /C,Rust 看到的 spawn target 是 cmd.exe (regular PE) 就過了。

**現在 Windows 推薦做法**(v0.4.0+):

Codex 在 Windows 額外注意:@openai/codex@0.7 是 @native release,只有 Linux / macOS native binary,**Windows 直接拒絕跑**(`Unsupported platform: win32`)。 升級到 0.130+ 的純 JS 版才跨平台。

回報 bug

GitHub Issues。 請附: