Tôi muốn thiết Alt_L
như META (tức. M trong emacs) nhưng Alt_R
như ALT. Làm cách nào để sửa đổi .Xmodmap
và/hoặc .emacs
để đạt được điều này?Hãy Alt_R một Alt (A-) modifier key (thay vì một phím modifier Meta (M))
Trả lời
Dưới đây là .Xmodmap
. Nó không thực hiện chính xác đặc điểm kỹ thuật của bạn, nhưng nên cung cấp cho bạn một ý tưởng làm thế nào để đạt được nó. Chỉ Sec-2 mới cần sửa đổi trong trường hợp của bạn; giả sử bàn phím của bạn tương tự như bàn phím của tôi, bạn sẽ chỉ cần 1 dòng trong phần này: keycode 108 = Alt_R
, vì Alt_L
đã được X-server công nhận là Meta_L
.
Đây là .Xmodmap
của tôi mà làm cho tất cả các từ bổ nghĩa được công nhận bởi Emacs có sẵn (Alt, Meta, Super, Hyper, Control, Shift):
!!! 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
Dưới đây là .xmodmaprc hiện tại của tôi, nó có thể sử dụng một số công việc nhưng ilustrates làm thế nào bạn sẽ đi cùng thay đổi các phím cụ thể với các công cụ sửa đổi khác nhau (sử dụng từ khóa ksysym). Tôi loại bỏ cây tuyết tùng (bàn phím tiếng Tây Ban Nha) và đặt một dấu gạch chéo/dấu gạch chéo ngược ở đó, trong số những thứ khác.
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