如何使用 xmodmap 将 Alt 键用作 Shift 键?

如何使用 xmodmap 将 Alt 键用作 Shift 键?

我想将左 alt 键用作 Shift 键,但重新映射的尝试失败了。使用以下 .Xmodmap 文件(我从我的文件中获取了十六进制代码keysymdef.h以消除此可能的错误源):

!0xffe9 = Alt_L
remove mod1 = 0xffe9
!0xffe1 = Shift_L
keycode 64 = 0xffe1
add shift = 0xffe1

并且运行

xmodmap ./.Xmodmap

运行正常。当我运行xev并按下左 Alt 键时,我得到:

KeyPress event, serial 33, synthetic NO, window 0x3e00001,
    root 0x2af, subw 0x0, time 136342090, (2225,316), root:(2253,374),
    state 0x10, keycode 64 (keysym 0xffe1, Shift_L), same_screen YES,
    XKeysymToKeycode returns keycode: 50
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

这似乎是正确的。运行xmodmap -p也给了我看似不错的输出:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e),  Shift_L (0x40)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_R (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)

不过,我不能使用 alt 键来切换字母。它仍然像以前一样工作。我正在运行 Ubuntu 18.04。

我不知道为什么。其他命令工作正常,例如xmodmap -e "keycode 38 = 0x33"正确地将我的“a”键重新映射到“3”。

答案1

升级到 KUbuntu 20.04 后,运行相同的命令现在可以正常工作。问题可能出在 Ubuntu 18 上,也可能是我持有的一些损坏的软件包造成的。

相关内容