Onboard 虛擬鍵盤 Debian 13 + KDE Plasma 6 + Wayland 完整設定教學(uinput 方案)

前言:從幾乎放棄,到終於能打字

老實說,這篇文章是我在幾乎準備放棄 KDE Plasma Wayland 的虛擬鍵盤時寫下的。

在 Debian 13 + KDE Plasma 6 + Wayland 環境下,官方唯一支援的螢幕鍵盤是 Maliit
但實際使用後,我遇到的是一連串幾乎無解的問題:

  • 鍵盤只出現一次
  • swipe 收起後再也叫不回來
  • 必須重啟 KWin 或整個桌面
  • 與實際平板/二合一裝置使用情境完全不相容

在反覆搜尋解法、翻 GitHub issue、KDE Discuss 討論串的過程中,我一度覺得:
「也許觸控平板選 KDE Wayland 就是死路一條。」

直到我 Google 到一篇 2022 年的 KDE Discuss 討論串

Plasma 6 and Wayland no on-screen keyboard working - Help - KDE Discuss

其中有一位使用者 @INVICTRA 提到:

I managed to get Onboard working on wayland. Kubuntu 25.04

1 Edit the shortcut in the menu. Within the KDE Menu Editor look for the Environment variables field and add “GDK_BACKEND=x11”.

2 Go to Onboard preferences page. Under Keyboard – >Advanced set:

Input Options → Input event source: GTK
Key-stroke Generation → Key-stroke generator: uinput

If you have time please try it. I would like to know if it works for others too.

我拿去問 ChatGPT 5.2,指出:Onboard + X11 backend + uinput,可能是突破口。

於是我開始實驗,補齊權限、kernel、udev 等細節,最後真的在 Debian 13 + KDE Plasma 6 + Wayland 上,
得到一個 穩定、可重複呼叫、不會卡死 的虛擬鍵盤解法。

這篇文章,就是完整整理後的結果。


一、為什麼需要這樣做(背景說明)

  • 2025 年末 KDE Plasma Wayland 官方仍只支援 Maliit
  • Maliit 目前在 KDE Plasma 存在嚴重 bug(收起後無法再叫出)
  • Wayland 設計上禁止 synthetic input(模擬鍵盤/滑鼠)
  • Onboard 可透過 Linux kernel 的 uinput 建立「虛擬鍵盤裝置」
  • uinput 屬於 kernel input device,不受 Wayland 限制

簡單說:

Wayland 不讓你「假裝按鍵」,
但 uinput 讓你「真的插一把虛擬鍵盤」。

在目前 Debian + KDE Plasma Wayland 的條件下,
這幾乎是唯一實際可用的方案。


二、系統需求

  • Debian 13

  • KDE Plasma 6

  • Wayland session

  • 已安裝 XWayland(通常預設已有)

  • 使用者具備 sudo 權限

    • *

三、安裝必要套件

sudo apt update
sudo apt install onboard xwayland

四、啟用 kernel uinput 模組

1. 確認是否已載入

lsmod | grep uinput

若沒有任何輸出,請手動載入:

sudo modprobe uinput

2. 設定開機自動載入

echo uinput | sudo tee /etc/modules-load.d/uinput.conf

五、設定 uinput 權限(關鍵步驟)

1. 建立群組

sudo groupadd -f uinput

2. 將使用者加入群組(以 hln 為例)

sudo usermod -aG uinput hln

注意:這一步完成後,一定要重新登入或重開機。


3. 建立 udev 規則

sudo nano /etc/udev/rules.d/99-uinput.rules

內容如下:

KERNEL=="uinput", MODE="0660", GROUP="uinput"

重新載入規則:

sudo udevadm control --reload
sudo udevadm trigger

4. 重開機後確認

ls -l /dev/uinput

正確結果應類似:

crw-rw---- 1 root uinput /dev/uinput

確認自己在群組內:

groups

必須看到 uinput


六、以 X11 backend 啟動 Onboard(非常重要)

在 Wayland 下,一定要強制使用 X11 backend

GDK_BACKEND=x11 onboard

建議先在 Konsole 中測試,確認鍵盤能正常顯示。


七、Onboard 設定(必做)

開啟 Onboard → Preferences → Keyboard → Advanced

請設定為:

  • Input Options

    • Input event source:GTK
  • Keystroke Generation

    • Key-stroke generator:uinput

如果你之前試過 uinput 但沒有反應,
完成權限設定後一定要重新測試。


八、實際驗證方式

  1. 開啟可輸入文字的程式(Kate / Firefox / Konsole)
  2. 點擊輸入框取得 focus
  3. 使用 Onboard 點擊鍵盤

成功狀態:

  • 文字實際輸入到程式中

  • 可反覆叫出 / 收起

  • 不需重啟 KWin

  • 不會卡死

  • 不受 Maliit bug 影響

    • *

九、建立桌面捷徑(推薦)

nano ~/.local/share/applications/onboard-x11.desktop

內容:

[Desktop Entry]
Name=Onboard (Wayland Safe)
Exec=env GDK_BACKEND=x11 onboard
Type=Application
Icon=onboard
Categories=Utility;Accessibility;

之後可以:

  • 加到 KDE 工作列

  • 加到桌面

  • 當作一鍵呼叫虛擬鍵盤

    • *

十、限制與注意事項

已知限制

  • SDDM 登入畫面無法使用
  • 非 Wayland 原生(透過 XWayland)
  • 提升輸入層權限,適合個人裝置

優點

  • 不會 swipe-down 卡死

  • 支援 Ctrl / Alt / Function keys

  • 可搭配 Fcitx5 新酷音

  • Synergy / KVM 正常

  • 長時間穩定可用

    • *

十一、回復原狀(可逆)

sudo rm /etc/udev/rules.d/99-uinput.rules
sudo gpasswd -d hln uinput
sudo reboot

十二、結論

在 Debian 13 + KDE Plasma Wayland 環境下:

Onboard + uinput 是目前唯一實際可用的虛擬鍵盤方案。

這不是官方完美解法,但 KDE 社群畢竟是做無償,你不能過度給予不符比例的期待。

最重要的是問題解決,我現在可以拿著沒有鍵盤的平板,打注音或英文操作系統了!

Facebook 留言

Posted in 小技巧, 軟體筆記 and tagged , .

3 Comments

  1. 我最近也遇到类似问题,在二合一设备上使用kde plasma时,我需要在锁屏界面使用屏幕键盘,在进入桌面后使用拼音键盘或者混合使用拼音/屏幕键盘
    1. 在桌面使用屏幕键盘可以用onboard corekeyboard这类软件来模拟物理键盘输入,可以实现拼音/屏幕键盘混合使用,只需要在托盘唤起屏幕键盘就可以了
    2. 要实现锁屏界面混合使用,kde/wayland对于锁屏界面有许多限制,在设置→键盘→虚拟键盘,同时只能使用一个虚拟键盘(Fcitx5,Maliit,Plasma-Keyboard三选一),锁屏界面限制了其他用户软件的工作,不能使用onboard这些软件,若是手动在设置里更改使用什么虚拟键盘也太麻烦了
    3. 我能想到的方案 一是编写脚本,在锁屏前更换虚拟键盘为屏幕键盘,这样就能在锁屏界面使用了 二是采用类似fcitx5-osk这样的拼音键盘的前端,通过特点的触摸或者双击事件来唤起屏幕键盘前端,后端仍然是拼音键盘

    1
  2. 另外,类似方案在GNOME下开箱即用,ibus与gome自带的屏幕键盘耦合,在gdm和gnome锁屏使用屏幕键盘也不需要什么配置什么
    – 如果要使用GNOME下的屏幕键盘推荐安装使用GJS OSK扩展

    1

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *