由于我的键盘布局,我想永久按下 numlock 并将 numlock 键用作删除键。我似乎无法让它工作。任何关于如何做到这一点的想法将不胜感激。
编辑:我在 Ubuntu 16 上运行
这是我尝试过的:
将 Xmodmap 与 numlockx 一起使用
受到这个问题的启发。我的理解是 xmodmap 已被弃用,所以这可能不是一个好主意。
~/.Xmodmap
使用行创建文件keycode 77 = Delete NoSymbol
- 跑
xmodmap ~/.Xmodmap
- 跑
numlockx on
这允许 numlock 用作删除并启用数字键盘,直到我第一次按下 numlock 键。然后 numlock 键禁用数字键盘。
使用 XKB
- 编辑
/usr/share/X11/xkb/symbols/us
在key <NMLK> { [Delete, Num_Lock] };
基本键盘映射的末尾。 - 重新启动计算机
也试过:
- 编辑
/usr/share/X11/xkb/symbols/us
在replace key <NMLK> { [Delete, Num_Lock] };
基本键盘映射的末尾。 - 重新启动计算机
这与其他方法存在类似的问题,能够删除作品,但数字锁定键会关闭数字键盘。当启用数字键盘时,它似乎也会与其他键(如 windows 键)混淆。我确实喜欢使用 shift+numlock 来控制数字锁。我找不到使用替换和不使用替换之间的任何区别。
请观看 30 秒视频https://imgur.com/3eLhv14
~/.xmodmaprc
xmodmap
根据您的键盘结果更改键码在以下代码中。
xmodmap ~/.xmodmaprc
在这一点上,您几乎已经实现了您想要的,即看起来像NUMLOCK工作的物理键和工作DEL的物理键。DELNUMLOCK
xbindkeys
结合xte
或xdotool
等来模拟在此阶段Num_Lock是物理键的键。DEL将以下代码粘贴到文件
~/.xbindkeysrc.scm
& REBOOT中。创建文件(如果尚未为xbindkeys
."c:77"
根据键盘的结果更改值。通过运行xbindkeys --key
并按下物理键NUMLOCK这意味着当您按下Shift+时NUMLOCK,它会模拟DEL按键,从而更改 Num_Lock 状态 On 和 Off。
在下面的 GIF 中,您可以在左上角观察到符号 1 和 Shift,当我按下 Shift+NUMLOCK 键并松开时,符号 1 会切换。
这是一种仅使用 xkb 的方法,我认为它优于使用 xmodmap。与原始问题相比,此答案包含有关我想要实现的目标的更多详细信息。Xmodmap 和 xkb 并不总是能很好地配合使用,这种方法提供了更多的灵活性:
这一切都来自:https ://wiki.archlinux.org/index.php/X_keyboard_extension
有一个似乎在这里工作的可用键符列表:http: //docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html
这是手动完成的,以允许您从计算机上已有的配置开始,以防止不同键盘出现兼容性问题。先前运行的示例见
config_files/linux/keyboards
首先运行
xkbcomp $DISPLAY output.xkb
以获取当前的键盘设置。然后加:到生成文件的兼容性部分。
在类型部分的底部,添加:
搜索
interpret Caps_Lock
并将其更改为LockMods
,SetMods
以便 caps lock 仅设置修饰符,不锁定它。要允许 capslock + WASD 用作箭头键:编辑键
<AD02>
,<AC01>
,<AC02>
,<AC03>
使其分别具有 typeCUST_CAPSLOCK
和osfUp
,osfLeft
,osfDown
,osfRight
在第三个位置。要允许 capslock + HJKL 用作箭头键:编辑键
<AC06>
,<AC07>
,<AC08>
,<AC09>
使其分别具有 typeCUST_CAPSLOCK
和osfLeft
,osfDown
,osfUp
,osfRight
在第三个位置。要允许 capslock + 0 注册为 home 并允许 capslock + $ 注册为 end:编辑键
<AE04>
并<AE10>
使其具有 type和CUST_CAPSLOCK
have 分别位于第三个位置。osfEndLine
osfBeginLine
要允许 capslock + 空格键注册为转义(对 vim 很方便),请将键编辑为
<SPCE>
typeCUST_CAPSLOCK
,space
在第二个位置和osfEscape
第三个位置。将 numlock 键变成 delete 键并使 capslock + numlock 成为
<NMLK>
有类型CUST_CAPSLOCK
,位置一和二有osfDelete
,位置三有Num_Lock
现在将更改后的文件上传回服务器:
xkbcomp output.xkb $DISPLAY
.如果一切正常,请将文件放在某处,
~/.Xkeymap
工作并创建一个脚本,例如命名~/start_keyboard.sh
为:使其可执行 (
chmod u+x ~/start_keyboard.sh
) 并将脚本添加到您的启动应用程序。