我已經Left Ctrl透過Caps Lock建立 ~/.Xmodmap進行了交換
keycode 66 = Control_L
keycode 37 = Caps_Lock
clear Lock
clear Control
add Lock = Caps_Lock
add Control = Control_L Control_R
然後運行$ xmodmap ~/.Xmodmap
。按該Left Ctrl鍵可如預期運作,切換Caps Lock。按鍵Caps Lock通常適用於簡單的快捷方式,例如Ctrl+N.
但是,當需要多個修飾鍵(例如Alt+ Ctrl+ I)時,只有先按下該Alt鍵才有效。如果我先按該Caps Lock鍵,則沒有任何效果。
我可以使用 重置鍵盤佈局$ setxkbmap -layout us
,上面的快捷方式可以正常工作。如果我$ xmodmap ~/.Xmodmap
再次運行,我也會遇到同樣的問題。
我還發現,即使對於單修飾符組合,我也必須Caps Lock比以前使用普通鍵更長時間地按住該Ctrl鍵才能註冊。它可能約為 0.01 秒,但很明顯,十分之一的錯誤訊號被發送。
另外,如果我交換Ctrl並Caps Lock使用$ setxkbmap -layout us -option 'ctrl:swapcaps'
,我不再注意到多個修飾符的問題。但是,我仍然想用 xmodmap 解決方案解決問題,因為我很快就會得到一個新鍵盤,並且需要更換Ctrl不同的按鍵。
=編輯=我嘗試過另一個鍵盤(Das Keyboard),似乎第二個問題是必須按住Caps Lock比我更長的時間,Ctrl這可能是原始鍵盤(鋁質蘋果有線鍵盤)的硬體問題。然而,多個修飾符的第一個問題仍然存在。
=編輯=我在xev中測試了不同的擊鍵。按住Alt然後按下該Caps Lock鍵會導致keycode 66 (keysym 0x0, NoSymbol)
,與不按住keycode 66 (keysym 0xffe3, Control_L)
時 相反。Alt
答案1
顯然,上面的 xmodmap 程式碼是不是足以交換Ctrl+L和Caps Lock鍵。
keycode 66 = Control_L
應該
keycode 66 = Control_L Control_L
Ctrl在另一個修飾符後按下時允許正確的功能。我找不到任何對此解決方案的好的參考,但是顯然第二個條目與Shift+相關Key。我不知道為什麼這裡它似乎也適用於Alt+ Key。
(此外,FWIW,其他消息來源指出最多有八列,而不是連結中提到的六列。)