我正在努力用xmodmap
. AltGr+P输出更改一个键绑定þ
,但我想将其更改为 输出'
。
xmodmap -pm
输出:
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), 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)
我似乎无法将其附加Alt_R
为修饰符之一(除非它以ISO_Level3_Shift
或 的形式存在Mode_switch
)。以下是xev
显示的内容:
# - p
KeyRelease event, serial 41, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 194353, (300,-235), root:(366,280),
state 0x10, keycode 33 (keysym 0x70, p), same_screen YES,
XLookupString gives 1 bytes: (70) "p"
XFilterEvent returns: False
# - altgr
KeyRelease event, serial 41, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 216040, (249,-329), root:(315,186),
state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XFilterEvent returns: False
# - altgr+p
KeyPress event, serial 41, synthetic NO, window 0x4800001,
root 0x2b8, subw 0x0, time 230879, (218,-187), root:(284,328),
state 0x90, keycode 33 (keysym 0xfe, thorn), same_screen YES,
XLookupString gives 2 bytes: (c3 be) "þ"
XmbLookupString gives 2 bytes: (c3 be) "þ"
XFilterEvent returns: False
每当我尝试更改绑定时,它都会添加'
而不是组合,p
或者组合不执行任何操作。
更新:
AltGr当我按下+时,Aphostrophe 当前会显示J。
更新 2:
xmodmap -e "keysym THORN = apostrophe"
即使按下+后 xev 输出,也会更改P为'
THORN
AltGrP
答案1
查看输出以xmodmap -pke
了解如何分配键的“值”。例如,默认情况下,如果您使用英语(英国)键盘布局,xmodmap -pke | grep "thorn"
将返回:
keycode 33 = p P p P section NoSymbol Greek_pi Greek_PI U03E1 U03E0 p P thorn THORN
AltGr话虽如此,假设您使用的是英语(英国)键盘布局,请在按+时使用以下命令输入撇号P:
xmodmap -e "keycode 33 = p P p P section NoSymbol Greek_pi Greek_PI U03E1 U03E0 p P apostrophe quotedbl"
要在每个会话中获取此更改,请.xmodmap
使用以下命令创建一个名为的文件:
xmodmap -pke > .xmodmap
然后,在您的主目录中创建一个名为的文件.xinitrc
,其中包含以下行/命令:
xmodmap .xmodmap