如何為 Sway 建立複雜的自訂 XKB 檔案?

如何為 Sway 建立複雜的自訂 XKB 檔案?

Sway 使用 Wayland,因此任何 XKB 檔案都將由 Sway 解析,而不是 X。

  • 我想在鍵盤上新增一個圖層(可能使用 Hyper)
  • 我想隨機調整一些修飾鍵

我瀏覽了很多網站,但我仍然不知道如何實現這一點。 XKB 有很多部分,我不知道哪些部分放在哪裡。我想要一個範例文件(或多個文件)和解釋。

答案1

假設您的 xkb 設定檔名為 custom-xkb,並儲存在~/.config.然後將其包含在 sway 設定檔中:

input "type:keyboard" {           # or input <identifier> 
  xkb_file ~/.config/xkb/custom-xkb
}

您可能已經知道這部分 - 困難的部分是建立文件custom-xkb。我不是專家,但我會這樣做:

  1. 我會在網路上搜尋“xkb 規範”,這會為您帶來各種信息,從維基百科到 的x.org完整規範。您可能已經收集了類似的資源。
  2. 然後我會在我的系統中找到預設的鍵盤配置文件,也許在\etc\X11\xdg\哪裡(你可能需要四處看看:在我奇怪的發行版中,路徑是/nix/store/n1mlvwrkdlm77b4ai9s26kwji89jjb65-xkeyboard-config-2.27/share/X11/xkb/)。
  3. 在該路徑中,我會尋找兩個子目錄:symbolstypes。第一個是所有不同語言的鍵映射所在的位置,以及每個檔案中該語言的鍵映射變體的位置。第二個子目錄是定義虛擬鍵的地方(例如Mod1、Control等)。
  4. 然後我會將這些文件的內容複製到我的文件中~/.config/xkb/custom-xkb並嘗試不同的編輯,看看會發生什麼。並嘗試使用我收集的網路資源來消除我的疑慮。如果發生任何災難性的事情,我會按 Control+Alt+F1,然後進行 nox 登錄,註釋該行xkb_file ~/.config/xkb/custom-xkb並重新啟動 X 伺服器...
  5. 我不會篡改子目錄rulesgeometry和的內容keycodes。但你也需要看看這些。

我實際上什麼也沒做過,但也許它有效。我認為查看實際的配置文件有助於弄清楚教程和指南實際上在說什麼...

好運

答案2

XKB 確實是一個非常複雜的野獸。 (至少根據我的經驗。它似乎有一些奇怪的設計決策,我將其歸因於它的第一個版本早在 1996 年就發布了,而且在我看來也不是最好的文檔。)

透過嘗試許多不同的配置,我成功地達到了一定程度的理解,並確定了一個功能子集,我可以可靠地猜測其行為並輕鬆地創建佈局,同時仍然具有足夠的靈活性來表達我想要的內容達到。

編寫我所學到的綜合教程會花費相當多的時間,但是您可以做的是查看我的配置文件,這些文件希望比閱讀預設佈局更容易理解。

https://github.com/Isti115/dotfiles/tree/master/.config/xkb

(它們包含在我的 Sway 配置中這裡.)

我特別推薦的是Lenovo-L13.xkb我為我的筆記型電腦建立的文件,因為它有多個層。 (我甚至將空白鍵變成了修改器,同時按住evdoublebind.) Vortex Core 佈局也是一個不錯的佈局,但這並不是全部,因為鍵盤本身也是可編程的。

如果您需要的東西在這裡找不到,正如前面的答案已經提到的,那麼首先要查看的是內建檔案。您可以使用 來了解您的鍵盤使用了哪些setxkbmap -print。從那時起,您可以在文件所在的任何位置找到導入的定義xkb。 (除非您使用 NixOS,否則它可能位於某個合理的位置,例如/usr/share/X11/xkb在 Arch 下。)

相關內容