Aar*_*mra 5 keyboard-layout wayland
我有一台联想 Yoga 710,其中“向上”键位于 shift 键所在的位置。不幸的是,这台笔记本电脑不能运行早期的内核,因为它有“新”硬件。我在这里看到了在 Wayland (GNOME) 中重新映射密钥的机制:https : //superuser.com/questions/1196241/how-to-remap-caps-lock-on-wayland
但是,我在任何地方都找不到“Up”的 xkb-options 代码。根据/usr/share/X11/xkb/rules/base,“右移”可能是“rshift”。xkb-options 键名称列表在哪里和/或“右移键”和“向上”键的名称是什么?
小智 7
经过大约 2 天的谷歌搜索“如何在wayland 上重新映射密钥”问题的答案后,我设法找到了一种非常非常简单的方法。我不知道它是否正确,但它确实有效。
我唯一要做的就是打开文件
/usr/share/X11/xkb/keycodes/evdev
Run Code Online (Sandbox Code Playgroud)
该文件以 <code>=number 的形式列出了所有键的所有键码
您可以简单地交换密钥代码。我实际交换的是数字而不是代码。对于 Emacs,我用 Ctrl 更改了 dvorak 上的反斜杠。
编辑:要找出哪个“代码”代表每个键,如 <代码> = 数字,您可以xev
从终端运行命令以获取按下按钮后在终端中打印的键码(在 evdev 文件中搜索该键码以获取密钥的 evdev 扫描码),或者您可以访问
/usr/share/X11/xkb/symbols/
Run Code Online (Sandbox Code Playgroud)
这是一个目录,其中包含计算机上安装的每种语言和修饰键的一个文件。选择您的电脑运行的语言。
在该文件中将列出所有支持的变体,例如 dvorak、程序员 dvorak、colemans 等。
在那里您可以看到 <code> 名称
现在使用 Wayland 时自定义键有点棘手: https://unix.stackexchange.com/questions/292868/how-to-customise-keyboard-mappings-with-wayland
但是,如果您只想重新映射一个键以使其充当另一个键,则该命令setkeycodes
似乎可以工作。
以root身份在终端中运行,然后按一次Upsleep 1; showkey -s
键,然后等待10秒
root@laptop:~# sleep 1; showkey -s
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
^[[A0xe0 0x48
0xe0 0xc8
root@laptop:~#
Run Code Online (Sandbox Code Playgroud)
从输出中我们看到这0xe0 0x48
是键Up的扫描码。
以root身份在终端中运行sleep 1; showkey -k
,然后按一次右移键,然后等待10秒
root@laptop:~# sleep 1; showkey -k
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
keycode 54 press
keycode 54 release
root@laptop:~#
Run Code Online (Sandbox Code Playgroud)
从输出中我们看到54是Right shift键的键码。
要将向上键重新映射到右移键,请setkeycodes 0xe048 54
以 root 身份在终端中运行。
root@laptop:~# setkeycodes 0xe048 54
Run Code Online (Sandbox Code Playgroud)
扫描代码以前被打印为0xe0 0x48
,但现在当它作为输入参数给出时setkeycodes
,它被写入0xe048
。
归档时间: |
|
查看次数: |
6579 次 |
最近记录: |