Slackware

重新映射 Caps Lock 的掃描碼

  • April 8, 2013

在 Windows 中,我可以將 Caps Lock 設置為第二個 Enter,可以用左手小指按下。我將此參數添加到系統資料庫中以執行此操作:

$$ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout $$ “掃碼圖”=hex:00,00,00,00,00,00,00,00,02,00,00,00,1c,00,3a,00,00,00,00,00

我怎樣才能在 Linux 中做同樣的事情?

最接近的等價物是xmodmap每次登錄時執行該程序。

將以下程式碼段放入.Xmodmap主目錄中呼叫的文件中:

keycode 66 = Return
clear Lock

xev您可以通過從終端執行來查看鍵碼和目前關聯的鍵名。在 xev 視窗聚焦時按下Caps Lock,你會看到類似的東西

KeyPress event, serial 29, synthetic NO, window 0x7c00001,
   root 0x105, subw 0x0, time 96597741, (1548,225), root:(3151,256),
   state 0x0, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
"   XmbLookupString gives 1 bytes: (0d) "
   XFilterEvent returns: False

對於大多數鍵,您只需要keycode線路。修飾符被單獨跟踪:您需要將鍵符(指令右側的內容keycode … = …)與修飾符匹配。該指令從所有鍵clear Lock中刪除Lock修飾符(Caps Lock 或 Shift Lock)。

根據您的發行版和您的桌面環境,將這些行添加到以下內容可能會或可能不夠~/.Xmodmap:許多設置,但不是全部,在登錄時自動讀取此文件。如果您沒有,請xmodmap ~/.Xmodmap在登錄時執行該命令。如何執行此操作取決於您選擇的桌面環境。

引用自:https://unix.stackexchange.com/questions/71612