Linux 中鍵盤的複雜重新映射

Linux 中鍵盤的複雜重新映射

這是關於在現代 Linux 發行版中重新映射密鑰的另一個問題。

背景:

過去六年我一直是 Mac 用戶,Linux 用戶已經大約 20 年了。這導致了兩個問題:

  • 在 Mac 上的瑞典鍵盤上編碼很糟糕,所以我在編碼時被迫使用美國佈局
  • 在 Linux 和 Mac 上不斷切換鍵盤佈局

在 Mac 上,我對美國佈局進行了一些更改,以存取瑞典字符(å、ä、ö)。要在瑞典語鍵盤上輸入這些字符,鍵盤右側通常有三個鍵。我已經用 Ukelele 重新映射了它們,以便通常它們在美國佈局上工作,但按下“alt”(或“alt+shift”)我會得到瑞典字符。經過一段時間的習慣後,效果非常好。

其次,Linux 使用者重新映射 ctrl-win-alt 鍵,使 win 鍵充當第二個 ctrl 鍵是很常見的。這使得大多數快捷方式在 Mac 和 Linux 上的工作方式相同。 GNOME(或 GNOME Tweaks)中對此有一個設定:「Ctrl 對應到 Win 和常用的 Ctrl 鍵」。

但該命令仍然與 Mac 鍵盤上的命令不同:Mac 上有“control option command”,但 PC 鍵盤上有“ctrl win alt”。 GNOME Tweaks 中還有另一個選項:「Alt 與 Win 交換」。不幸的是,GNOME Tweaks 只允許這些選項之一。

這是我想要的完整重新映射(基於美國佈局):

  • Alt + "[" => å
  • Alt + Shift +“['”=> Å
  • Alt + "'" => ä
  • Alt + Shift + "'" => ä
  • Alt+“;” => ö
  • Alt + Shift +“;” => 奧
  • 左Ctrl => 左Ctrl
  • 左 Win => 左 Alt
  • 左 Alt => 左 Ctrl

不幸的是,如何實現這一目標似乎有很多選擇,而且所有這些選擇都很難正確完成,所以我將不勝感激任何幫助!

(在Mac 上,我可以使用Ukelele 來完成此操作,這是一個用於構建鍵盤佈局的圖形工具,然後安裝該佈局,以便我可以像在美國或瑞典佈局之間切換一樣輕鬆地切換到它。非常好。

更新:

我已經解決了 Ctrl/Alt/Win 部分。我創建了一個新檔案(在我的例子中名為“jomag”)並將其放置在“/usr/share/X11/xkb/symbols/”中:

partial modifier_keys              
xkb_symbols "jomag" {     
        key <LALT> { [ Control_L, Control_L ] };     
        key <LWIN> { [ Alt_L, Alt_L ] };             
        modifier_map Control { <LALT>, <LWIN> };     
};                        

我還在 /usr/share/X11/xkb/rules/evdev 中新增了一行:

! option     =    symbols
jomag:jomag  =    +jomag(jomag)    <--- this one

但我不確定這是否有必要。

我發現加載它的最佳方法是使用 setxkbmap:

setxkbmap -option jomag:jomag

若要重新加載,請使用空選項執行:

setxkbmap -option
setxkbmap -option jomag:jomag

相關內容