在文字控制台中使用載入鍵交換 Control 和 CapsLock

在文字控制台中使用載入鍵交換 Control 和 CapsLock

我希望將 Control 與 Caps Lock 交換,但在文字控制台中(不是 X11/Wayland 上的終端​​模擬器)。我瀏覽了載入鍵和鍵盤映射的手冊頁。經過幾次嘗試後,我做到了,但我並不完全理解解決方案。

我使用載入鍵如下:

sudo loadkeys <filename>

其中內容是:

keycode 58 = Control
keycode 29 = Caps_Lock

然後我用 dumpkeys 檢查了結果,顯示:

keycode  58 = Control          CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock       CtrlL_Lock      
keycode  29 = Caps_Lock        Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control          Control         

這不是我期望得到的結果,導致按下 CapsLock 後鍵盤無法使用。

然後我添加了鍵位圖正如鍵盤映射手冊建議的那樣。然後地圖檔案如下所示:

keymaps 0-6,8-9,12
keycode 58 = Control
keycode 29 = Caps_Lock

和 dumpkeys 顯示:

keycode  29 = Caps_Lock       
keycode  58 = Control         

現在它按我想要的方式工作了。現在的問題是:

  1. 為什麼在第一種情況下,第一列已填充了我的地圖檔案中的值,但其餘 256 列卻有一些值?為什麼 58 為“CtrlL_Lock”,29 為何為“Control”?
  2. 在第二種情況下,僅填入第一個值,其餘為空白鍵位圖實際上定義了多個列?

相關內容