使Alt_R成为Alt(A-)修饰键(而不是Meta(M-)修饰键)

wdk*_*nls 8 x11 emacs xmodmap

我想设置Alt_LMETA(即在emacs中的M-),但是Alt_R作为ALT.如何修改.Xmodmap和/或.emacs实现此目的?

hua*_*uan 6

以下是我的.Xmodmap.它并没有完全实现您的规范,但应该让您知道如何实现它.在您的情况下,只需要修改Sec-2; 假设你的键盘类似于我的键盘,你只需要在本节中使用1行:keycode 108 = Alt_R,因为Alt_L已经被Meta_LX服务器识别出来了.

这是我的.Xmodmap所有修饰符可供Emacs识别(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
Run Code Online (Sandbox Code Playgroud)