X11

如何為 Linux 創建自定義鍵盤佈局?

  • August 25, 2020

理想情況下,我正在尋找一個 GUI 工具,也許是一個 Web 應用程序,但是關於為鍵盤佈局創建文本定義的良好文件也會很棒。這裡的正常程序是什麼?

這個問題中,提問者已經決定使用“setxkbmap”。這是推薦的方式嗎?我可以將佈局添加到例如 git repo 中,以便我可以根據需要隨時間對其進行更改嗎?

您可以使用XKeyCaps編輯鍵盤映射。從好的方面來說,XKeyCaps 是一個 GUI,而且非常成熟。XKeyCaps 的一個缺點是它只是舊式 X 視窗鍵盤映射界面xmodmap的前端,而不是現代界面XKB的前端。

如果您願意,可以使用 xmodmap,但它沒有 XKB 強大。xmodmap 缺少的 XKB 特性包括:

  • 更好地處理修飾符。X11 有許多與修飾符相關的怪癖,包括 CapsLock 和 NumLock 被視為修飾符這一事實。我用 XKB 做的一個不能用 xmodmap 做的事情的一個例子是我 make Alt+ CapsLockbe Lock(這就是 X11 拼寫 Caps Lock 的方式),但不是CapsLock它本身。xmodmap 不能做的另一件事是讓不同的修飾符集影響不同的鍵,例如具有ShiftAltGr影響可列印字元但Ctrl影響Alt功能鍵。
  • XKB 由可組合的模組組成。Xmodmap 是單片的。這對於想要組合預定義設置的人來說非常有用(“給我一個匈牙利語鍵盤,Ctrl 和 CapsLock 交換並且Alt+WindowsMenu,以及 Sun 5 鍵盤的鍵碼”),但你不會在意,因為你是製作自己的佈局。
  • 如果您熱插拔鍵盤,則會重新應用 XKB 系統預設設置。這也是 XKB 限制,因為系統預設值被重新應用,而不是您的使用者設置。
  • XKB 對非字母語言或多腳本輸入有更好的支持。我不能提供細節,因為這不是我熟悉的話題。
  • 有一些工具可以在佈局之間快速切換(例如具有特定於視窗的佈局)或指示僅適用於 XKB 的目前鍵盤佈局。
  • 我不確定 Wayland 是否支持 xmodmap。

網上有一些 XKB GUI 編輯器,但我能找到的都是那些很快就被放棄並且不像 XKeyCaps 那樣易於安裝的項目。例如,我找不到一個帶有 Ubuntu 軟體包的軟體包。

如果您決定手動編寫鍵盤映射,xmodmap 的優勢在於它非常簡單。您可以閱讀手冊頁,或者查看一個範例,您將很快理解除了修飾符的微妙之處之外的所有內容。如果你不知道如何用 xmodmap 來做,那可能是不可能的。XKB 的優勢再次在於它更強大。XKB 的缺點是它很複雜,而且文件很少。如果你想走這條路,一些建議閱讀:

無論您選擇哪種方式,keymap 源都是文本文件或文本文件集合,可以很好地與版本控製配合使用。

引用自:https://unix.stackexchange.com/questions/606301