不再盲目等待!為 WSL 裡的 Claude Code 加上提示音:從 WSLg 到 Hooks 配置實戰

2026-03-23 00:01:20 Category Icon 未分類

不再盲目等待!為 WSL 裡的 Claude Code 加上提示音:從 WSLg 到 Hooks 配置實戰

不再盲目等待!為 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 --update
    註:更新後建議執行 wsl --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)

如果你發現沒有聲音,可以嘗試以下步驟:

  1. 檢查 PulseAudio 狀態: 確保音訊伺服器正在運作。
    pulseaudio --check
  2. 確認環境變數: WSLg 依賴 PULSE_SERVER 變數來導向音訊。正常情況下,WSLg 會自動處理,但你可以檢查它是否存在:
    echo $PULSE_SERVER
    # 預設通常會指向一個 unix socket 路徑
  3. 確認音量混音器: 有時候 Windows 端的「音量混音器」會將來自 WSL 的音訊(顯示為 Remote Desktop 或 WSLg 相關項目)靜音,記得檢查一下。

配置 Claude Code Hooks

Claude Code 提供了強大的 Hooks 功能,讓我們可以在特定的生命週期執行自定義指令。

  1. 找到 Claude Code 的設定檔路徑:~/.claude/settings.json。

  2. 在 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 的尷尬,更讓自動化流程變得更有感。