2012-04-08 35 views

回答

6

以下是我的.Xmodmap。它不完全實現你的規範,但應該給你一個想法如何實現它。在你的情況下,只有秒-2才需要修改;假設您的鍵盤與我的類似,您將只需要本節中的1行:keycode 108 = Alt_R,因爲Alt_L已被X服務器識別爲Meta_L

這裏是我的.Xmodmap這使得Emacs可以提供(ALT,元,超級,超級,控制,轉移)認可的所有修改:

!!! Implement the following layout: 
!!!  Alt A S D F ... 
!!!  Shift Z  X C V B N M ... 
!!!  Hyper Super Meta --Space-- Control Super Hyper 

!!! by transforming from the conventional layout: 
!!!  Caps:66 
!!!  Shift 
!!!  Ctrl:37 Win:133 Alt:64 Space AltGr:108 Menu:135 Ctrl:105 

!! Sec-1. 
clear Control 
clear Lock 
clear mod1 
clear mod2 
clear mod3 
clear mod4 
clear mod5 

!! Sec-2. System dependent; use xev to find the exact keycodes: 
keycode 37 = Hyper_L 
keycode 64 = Meta_L 
keycode 66 = Alt_L 
keycode 105 = Hyper_R 
keycode 108 = Control_R 
keycode 135 = Super_R 

!! Sec-3. 
add Control = Control_L Control_R 
add mod1 = Meta_L Meta_R 
add mod2 = Hyper_L Hyper_R 
add mod3 = Num_Lock 
add mod4 = Alt_L Alt_R Multi_key 
add mod5 = Super_L Super_R Mode_switch 
1

這裏是我當前.xmodmaprc中,它可以使用一些工作,但請說明如何使用不同的修飾符(使用ksysym關鍵字)更改特定的鍵。我解僱了cedilla(西班牙語鍵盤),並在其中放置了斜槓/反斜槓。

pointer = 3 2 1 4 5 6 7 8 9 10 

clear Mod4 
remove Lock = Caps_Lock 
remove Control = Control_L 
remove Mod5 = ISO_Level3_Shift 

keysym ccedilla = slash backslash NoSymbol NoSymbol braceright 
keysym 3 = 3 numbersign NoSymbol NoSymbol periodcentered 
keysym 1 = 1 exclam NoSymbol NoSymbol masculine 

keysym 0xba = bar 
! the next one is neccesary becuase the above command 
! modifies the m key too! 
keysym 0x6d = m 

keysym Control_L = Super_L 
keysym Caps_Lock = Control_L 
keysym ISO_Level3_Shift = Hyper_L 
keysym Super_L = ISO_Level3_Shift 

add Lock = Caps_Lock 
add Control = Control_L 
add Mod4 = Super_L 
add Mod4 = Super_R 
add Mod3 = Hyper_L 
add Mod3 = Hyper_R 
add Mod5 = ISO_Level3_Shift