![Linux 中鍵盤的複雜重新映射](https://rvso.com/image/1554877/Linux%20%E4%B8%AD%E9%8D%B5%E7%9B%A4%E7%9A%84%E8%A4%87%E9%9B%9C%E9%87%8D%E6%96%B0%E6%98%A0%E5%B0%84.png)
這是關於在現代 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