不再盲目等待!為 WSL 裡的 Claude Code 加上提示音:從 WSLg 到 Hooks 配置實戰
2026-03-23 00:01:20 未分類
不再盲目等待!為 WSL 裡的 Claude Code 加上提示音:從 WSLg 到 Hooks 配置實戰
如果你和我一樣,在使用 Claude Code 處理大型專案時,經常切換到瀏覽器或別的視窗,回頭才發現它早已停在 Confirm? [y/n] 或是任務已經結束半天了。 在 Mac 上我們可以用 say 指令,但在 WSL (Windows Subsystem for Linux) 裡該怎麼辦?今天我們就來把 WSL 的音訊打通,並讓 Claude Code 在任務完成時給我們一個聲音提醒。
什麼是 WSLg?
WSLg 是 Microsoft 為 WSL2 提供的原生 GUI 與音效支援擴展。它底層透過一個隱藏的系統發行版,將 Linux 端的視訊流 (X11/Wayland) 與音訊流 (PulseAudio) 自動橋接到 Windows 端的 RDP 客戶端。這意味著你不需要額外的配置,Linux 的聲音就能直接從 Windows 的喇叭傳出。
1. 系統需求與環境準備
在開始之前,請確保你的 Windows 環境符合 WSLg 的基本要求:
- 作業系統: Windows 11 或 Windows 10 版本 19044+。
- WSL 版本: 必須為 WSL2。
- 更新組件: 請在 PowerShell 中執行以下指令,確保 WSL 內核與支援組件為最新版本:
註:更新後建議執行wsl --updatewsl --shutdown重啟子系統以套用變更。
2. 在 WSL 中安裝音訊工具
進入你的 Linux 發行版(例如 Ubuntu),我們需要安裝基礎的音訊處理工具:alsa-utils(底層驅動工具)、pulseaudio(音訊伺服器)以及一個簡單的播放器 mpg123。
# 更新軟體源
sudo apt update
# 安裝音訊相關軟體包
sudo apt install alsa-utils pulseaudio mpg123 -y
3. 實戰測試:播放音訊檔案
安裝完成後,WSLg 會自動將 Linux 的音訊流對接到 Windows。你可以找一個現有的 MP3 檔案進行測試。
使用 mpg123 指令進行播放:
mpg123 your_audio_file.mp3
mpg123 /home/hcc/files/sounds/stop.mp3
mpg123 /home/hcc/files/sounds/notification.mp3
如果一切正常,你應該能從電腦的預設輸出設備中聽到清晰的音效!
常見問題排查 (Troubleshooting)
如果你發現沒有聲音,可以嘗試以下步驟:
- 檢查 PulseAudio 狀態: 確保音訊伺服器正在運作。
pulseaudio --check - 確認環境變數: WSLg 依賴
PULSE_SERVER變數來導向音訊。正常情況下,WSLg 會自動處理,但你可以檢查它是否存在:echo $PULSE_SERVER # 預設通常會指向一個 unix socket 路徑 - 確認音量混音器: 有時候 Windows 端的「音量混音器」會將來自 WSL 的音訊(顯示為 Remote Desktop 或 WSLg 相關項目)靜音,記得檢查一下。
配置 Claude Code Hooks
Claude Code 提供了強大的 Hooks 功能,讓我們可以在特定的生命週期執行自定義指令。
-
找到 Claude Code 的設定檔路徑:~/.claude/settings.json。
-
在 hooks 區塊中加入播放指令:
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "mpg123 /home/hcc/files/sounds/stop.mp3"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "mpg123 /home/hcc/files/sounds/notification.mp3"
}
]
}
]
}
}
結語
透過 WSLg 與 Claude Code Hooks 的結合,我們成功讓 AI 工具具備了「主動回饋」的能力。這不僅解決了忘記按 Yes 的尷尬,更讓自動化流程變得更有感。