您好,我的文件中有以下代码~/.Xmodmap
:
keycode 108 = Mode_switch
keycode 10 = 1 exclam F1 exclam
keycode 11 = 2 at F2 at
keycode 12 = 3 numbersign F3 numbersign
keycode 13 = 4 dollar F4 dollar
keycode 14 = 5 percent F5 percent
keycode 15 = 6 asciicircum F6 asciicircum
keycode 16 = 7 ampersand F7 ampersand
keycode 17 = 8 asterisk F8 asterisk
keycode 18 = 9 parenleft F9 parenleft
keycode 19 = 0 parenright F10 parenright
keycode 20 = minus underscore F11 underscore
keycode 21 = equal plus F12 plus
keycode 24 = q Q grave asciitilde
keycode 43 = h H Left
keycode 44 = j J Down
keycode 45 = k K Up
keycode 46 = l L Right
Keycode 108
是我的右 Alt 键,我将其替代为“临时功能层键”(因为我的键盘不是 QMK 可编程的)
所有这些键都可以独立工作(也可能带有Shift,Ctrl修饰语,尽管存在不一致之处)但并非具有所有可能的修饰语,如Super和Alt_L。
例如:
- Alt + F4尝试按下使用,Alt_R + Alt_L + j不起作用。
- 尝试使用Super + Left/Down/Up/Right (移动窗口)按下Super + Alt_R + hjkl不起作用。
此外:在使用在线键盘测试器测试我的映射时keycode 108
(我的右 Alt 键)被解释为Alt_R而不是Mode_switch
。(可能正因为如此)我为箭头、F 键、波浪号和反引号设置的键绑定无法在这些网站上注册。
PS 我已阅读了所有xmodmap
手册页,但我不知道如何解决这个问题。当然,我使用 X11 作为我的窗口系统。此外,这个问题很高兴地用所述的hjkl
箭头绑定来编写,尽管如果我的问题得到解决可能会更好 :D
编辑#1:我的想法是,通过巧妙地编辑修饰键表,我可以在这些键绑定之上添加使用修饰键的功能。以下是表格:
:!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), Mode_switch (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)
概念:在运行命令应用键映射后,xmodmap ~/.Xmodmap
该Alt_R键已从mod1
字符串中删除,可能是由于分配keycode 108 = Mode_switch
答案1
最后,我放弃了这个古老而令人困惑的讨厌之物xmodmap
,选择了keyd
一个小而强大的守护进程(UNIX 哲学的完美例子:做一件事,做一件伟大的事情)。的手册页keyd
更容易阅读,它是我编程键盘所需的一切。