使用xmodmap修改鍵盤映射


三種代碼及其獲取方式

首先這里有三個概念:

  1. 鍵盤物理按鍵代碼
  2. 操作系統代碼
  3. 功能代碼

這里以左Ctrl鍵為例。

獲取鍵盤物理按鍵代碼

xmodmap -pke | grep 'Control_L'

可以看到輸出為

keycode 37 = Control_L NoSymbol Control_L

說明左Ctrl鍵的鍵盤物理按鍵代碼為37

獲取操作系統代碼

由上一步可知左Ctrl鍵的操作系統代碼是Control_L

獲取功能代碼

xmodmap

可以看到輸出為

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Overlay1_Enable (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

以上輸出的意思是功能對應操作系統代碼,比如control功能對應操作系統的Control_L和Control_R這兩個代碼。即當操作系統執行Control_L和Control_R兩個命令時,所執行的功能是control這個功能。

修改鍵盤映射

經由上述分析,假如我們想將左Super鍵(133)的功能改為ctrl,那么我們應該先改變鍵盤物理按鍵到操作系統按鍵代碼的映射,再改變操作系統按鍵代碼到實際功能的映射。

 xmodmap -e 'keycode 133 = Control_L' && xmodmap -e 'remove mod4 = Control_L' && xmodmap -e 'add control = Control_L'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM