RustDesk 遠端連 Mac 時,注音輸入法偶發失靈的排查筆記

RustDesk 遠端連 Mac 時,注音輸入法偶發失靈的排查筆記

問題背景

最近我很常使用 RustDesk,從遠端電腦連回目前這台 Mac。整體連線其實很順,延遲也不錯,平常操作沒有太大問題。

真正困擾的是輸入法。

我常常需要在繁體中文與英文之間切換,尤其是使用注音輸入繁體中文。但在 RustDesk 遠端連線中,偶爾會遇到一種很詭異的狀況:

  • 右上角選單明明顯示目前是「注音」
  • 實際打字卻只會輸入英文
  • 有時候會輸出注音符號,例如 ㄅㄆㄇ,但就是不會合成中文字
  • 有時候會變成全形英文,例如 nowcan’t 這種樣子

最一開始的臨時解法是:斷開 RustDesk 連線,再重新連一次。這通常可以暫時恢復,但過一陣子問題又可能再次發生。

所以這次的目標不是馬上改設定,而是先釐清:這到底是 macOS 注音輸入法的問題,還是 RustDesk 遠端輸入造成的問題。

初步懷疑方向

一開始可能的原因有幾個:

  1. macOS 注音輸入法本身卡住。
  2. RustDesk 遠端鍵盤事件傳送有問題。
  3. 遠端控制端的系統不同,造成鍵盤 layout 或快捷鍵行為不同。
  4. macOS 的 Secure Input 或權限問題影響遠端輸入。
  5. RustDesk 某個版本對 IME 組字支援不穩。

後來確認過,無論是 Windows 連到 Mac,還是 Mac 連到 Mac,都會遇到同樣問題。

這個資訊很關鍵,因為它讓問題焦點從「控制端的鍵盤或作業系統」轉移到「被控端 Mac + RustDesk for macOS 的輸入處理」。

換句話說,這比較不像 Windows 鍵盤配置造成,也不像單一遠端電腦造成,而是目前這台被控 Mac 上的 RustDesk session 與 macOS TextInput/IME 狀態不同步。

現場狀態檢查

在問題發生當下,做了幾個只讀檢查。

macOS 系統選中的輸入法是注音:

Bundle ID = com.apple.inputmethod.TCIM
Input Mode = com.apple.inputmethod.TCIM.Zhuyin
InputSourceKind = Input Mode

RustDesk 正在執行,版本是:

RustDesk 1.4.6

同時也檢查過,沒有看到明顯的 macOS Secure Input 卡住訊號。

這個結果很有意思:macOS 系統層面確實認為目前選的是注音,但 RustDesk 遠端輸入進來的字卻沒有正常進入注音組字狀態。

也就是說,問題不是「使用者切錯輸入法」。

踩坑與試錯

嘗試 RustDesk 的 Input source 1 / 2

RustDesk 在遠端連線工具列中有 keyboard/input source 相關選項。當時嘗試切換:

  • Input source 2:無法正常輸入。
  • 切回 Input source 1:可以輸入,但仍然只輸出英文或全形英文,沒有恢復注音組字。

這表示問題不是單純選錯 RustDesk input source。Input source 1 / 2 可以影響鍵盤事件路徑,但當 macOS 的注音 IME 狀態已經卡住時,單靠切這個不一定能修復。

嘗試 Shift + Space

因為問題發生時會出現全形英文,例如:

now
can’t
work

所以一開始懷疑會不會只是全形/半形狀態卡住。

於是測試 Shift + Space

結果:無效。

這也排除了「只是全形/半形切換錯誤」這個單純原因。

觀察全形英文這個症狀

全形英文其實是一個重要線索。

如果 RustDesk 完全沒有把輸入送進中文輸入法,理論上比較可能得到一般半形英文,例如 now

但實際看到的是 now 這類全形英文字,代表 macOS 中文輸入法的某一層狀態其實有被觸發,只是沒有進入正常的注音組字流程。

這讓問題更像是:

  • 右上角選單顯示「注音」
  • 中文輸入法層有部分啟動
  • 但 TextInput/IME 組字狀態與 RustDesk 傳進來的鍵盤事件不同步

最後確認有效的解法

後續反覆使用後,確認以下方法可以穩定解決問題,而且不需要斷線:

  1. 失靈時不要斷線。
  2. 用滑鼠點右上角輸入法選單。
  3. ABC
  4. 再選回 注音

做完之後,注音輸入就會恢復正常。

這個結果非常關鍵,因為它證明:

  • macOS 注音輸入法本身沒有壞。
  • RustDesk 連線也不需要整個重建。
  • 問題主要是 macOS 顯示的輸入法狀態與實際 IME 組字狀態不同步。
  • 用滑鼠強制選 ABC -> 注音,可以讓 macOS 重新建立注音 IME 狀態。

目前結論

這次排查後,我會把問題定性為:

RustDesk 1.4.6 在遠端控制 Mac 時,偶發讓 macOS 注音輸入法進入「顯示是注音,但實際組字狀態沒有正常啟動」的不同步狀態。

症狀可能包含:

  • 右上角顯示注音,但實際輸入英文。
  • 輸出注音符號,但不合成中文字。
  • 輸出全形英文。
  • 斷線重連可以恢復。
  • 不斷線時,用滑鼠切 ABC -> 注音 也可以恢復。

實用 workaround

目前最實用的處理方式:

失靈時不要斷線
用滑鼠點右上角輸入法
選 ABC
再選 注音

可以把這個動作理解成:不用重連 RustDesk,而是直接讓 macOS TextInput 重新同步輸入法狀態。

後續可能的根治方向

如果要繼續追根治本,可以往幾個方向測試:

  1. 測試 RustDesk 新版是否修復 IME 行為。
  2. 測試降回 RustDesk 1.4.5,確認是否為 1.4.6 附近版本的 regression。
  3. 整理 bug report 回報給 RustDesk,重現條件可包含:
  • 被控端是 macOS。
  • 使用繁體中文注音輸入法。
  • Windows -> Mac 與 Mac -> Mac 都會發生。
  • 問題發生時右上角仍顯示注音。
  • 實際輸入可能變成英文、注音符號不組字、或全形英文。
  • 滑鼠手動切 ABC -> 注音 可以恢復。

一句話總結

這不是注音壞掉,而是 RustDesk 遠端輸入讓 macOS 注音 IME 狀態偶發不同步;目前最快的解法不是斷線重連,而是用滑鼠強制切一次 ABC -> 注音

留言