使上/下箭头、Pos1、End、Del ... 更简单
Posted
技术标签:
【中文标题】使上/下箭头、Pos1、End、Del ... 更简单【英文标题】:Make arrow-up/down, Pos1, End, Del ... more easy 【发布时间】:2022-01-17 07:17:55 【问题描述】:我用十根手指在“F”和“J”上打字。
通过这种方式,我可以使用 QWERTZ 布局快速轻松地键入字母表。
但许多其他键很难触及。例如:
Pos1、End、Del、Arrow-Up/Down、Page-Up/Down、ESC、Backspace。
有没有办法让这些键可用,同时将指针保持在“F”和“J”上?
我对“A”到“Z”很满意,不想切换到不同的布局(例如Colemak)
也许通过使 CapsLock 成为一个新的修饰符,以便(例如)CapsLock-u 是向上箭头而 CapsLock-n 是向下箭头?
我使用 Ubuntu Linux。
我创建了一个后续问题:Hype-key u --> Like PageUp
【问题讨论】:
评论这个,因为它是远程相关的——你可以使用 vim 式的快捷方式,以便只使用字符键进行导航。有许多插件可用于许多程序,包括 chrome 和 vscode,可以模仿这种行为。 @LiorPollak 你说“有许多插件可用于许多程序”。我想在桌面级解决这个问题,而不是对每个程序一次又一次地解决。 @UnKNOWn 谢谢你的回答。你的评论还有意义吗? @UnKNOWn 第三级。这不是 AltGr 吗?在 gnome-tweaks 中,我找到了一种将 CapsLock 设置为 Hyper-key 的方法。现在我需要一种方法来配置 hyper-u、hyper-n ... 使其表现得像 up/down .... 【参考方案1】:来自arch wiki link,我按照步骤成功使用了“Arch Linux”和“Ubuntu 20.04”操作系统,同时保持 Caps Lock 键 + u、h、j、n 等键。此方法允许使用链接中提到的 Shift+Caps+h 键突出显示文本。
在继续之前,请阅读Precautions & Preparations link
第一步
编辑文件/usr/share/X11/xkb/types/complete
Ubuntu 20.04 中的原创内容
default xkb_types "complete"
include "basic"
include "mousekeys"
include "pc"
include "iso9995"
include "level5"
include "extra"
include "numpad"
;
修改后
default xkb_types "complete"
include "basic"
include "mousekeys"
include "pc"
include "iso9995"
include "level5"
include "extra"
include "numpad"
type "CUST_CAPSLOCK"
modifiers= Shift+Lock;
map[Shift] = Level2; //maps shift and no Lock. Shift+Alt goes here, too, because Alt isn't in modifiers.
map[Lock] = Level3;
map[Shift+Lock] = Level3; //maps shift and Lock. Shift+Lock+Alt goes here, too.
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Lock";
;
;
第 2 步
编辑文件/usr/share/X11/xkb/compat/complete
修改后
default xkb_compatibility "complete"
include "basic"
augment "iso9995"
augment "mousekeys"
augment "accessx(full)"
augment "misc"
augment "xfree86"
augment "level5"
augment "caps(caps_lock)"
interpret Caps_Lock+AnyOfOrNone(all)
action= SetMods(modifiers=Lock);
;
;
第 3 步
使用您的实际符号文件编辑文件/usr/share/X11/xkb/symbols/us
#change us
。
部分编辑内容
key <AC05> [ g, G ] ;
// key <AC06> [ h, H ] ;
key <AC06>
type= "CUST_CAPSLOCK",
symbols[Group1]= [ h, H, Left],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(keycode=<LEFT>, clearmods=Lock) ]
;
key <AC07> [ j, J ] ;
key <AC08> [ k, K ] ;
同样,根据您的要求编辑符号文件。 关键符号可以通过
xev | grep keysym
命令
$ xev | grep keysym
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
state 0x0, keycode 22 (keysym 0xff08, BackSpace), same_screen YES,
state 0x0, keycode 22 (keysym 0xff08, BackSpace), same_screen YES,
state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
state 0x0, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
state 0x0, keycode 110 (keysym 0xff50, Home), same_screen YES,
state 0x0, keycode 110 (keysym 0xff50, Home), same_screen YES,
state 0x0, keycode 115 (keysym 0xff57, End), same_screen YES,
state 0x0, keycode 115 (keysym 0xff57, End), same_screen YES,
$
第 4 步 运行以下命令以立即应用更改
sudo udevadm trigger --subsystem-match=input --action=change
以上命令来源为https://askubuntu.com/a/1075707/739431
【讨论】:
有没有更简单的方法可以在不注销+登录的情况下激活这些文件的更改? @guetti 这个命令似乎在没有“注销和登录”sudo udevadm trigger --subsystem-match=input --action=change
的情况下工作
我的首选解决方案是不修改系统文件。也许可以将 capsLock 设置为超级键(通过 gnome-tweaks),然后修改 .xmodmaprc?
@Unkown:我创建了一个后续问题:askubuntu.com/questions/1382762/hype-key-u-like-pageup
@guettli 您可以在不编辑原始文件的情况下使用此解决方案(来自 UnKNOWn 的回答),而是创建自己的新继承布局。我已经尝试过继承 XKB 符号,如我在这里的回答 askubuntu.com/q/482678/26246 或来自其他人的 askubuntu.com/q/510024/26246 。对于 XKB 类型,我希望采用相同的方式,结构在前面的链接中进行了解释。这样,你甚至可以将新的布局打包,复制到其他机器上。【参考方案2】:
为了解决这类问题,一些键盘布局包括了除 shift/capslock 和常规修饰键之外的额外层。 Neo 就是一个例子(wikipedia;docs (in german);docs (google translated))。
Neo 提供 6 层,您愿意的移动键层是第四层。 (图层为 1-小写、2-大写、3-特殊字符、4-移动+数字、5-希腊字符(用于公式);6-数学符号+希腊大写。
就像 shift 所发生的那样,将您从第 1 层带到第 2 层(从小写到大写的常规文本),一次击键到 M4 键(显示在图片,好像相当于qwertz的和alt-gr)带你到第四层。
Neo 的第四层:
(图片来自官网)
可能会看到 up-down 例如不像 vim,它们比其他普通键盘高出一个。
neo第四层的运动关键位置:
movement | key |
---|---|
home | a |
end | g |
del | r |
up | e |
down | d |
pgUp | q |
pgDown | t |
ESC | z |
backspace | w |
前两层针对德语进行了优化。但是由于您仍然想保留 qwertz 布局,因此有一个变体,称为 neoquertz,其中第 1 层和第 2 层将分别是常规的 qwertz 小写和大写。这样一来,您就会有宾至如归的感觉。
根据他们的文档,它们已经包含在主要操作系统中,包括 Linux (install instrutions)(它作为键盘变体安装),但我不保证它们可以开箱即用。 - 在我的情况下(ubuntu/xfce),不需要apt
或安装任何东西,我只需要设置配置。当遵循他们的指示时,与所说的不同,它仅在重置后并且仅在登录屏幕中,在登录 qwerty 回来后才起作用,因此需要进行更多调整。 localectl list-x11-keymap-variants
仅列出 neo
而不是 neo_quartz
。与 tty1-6 相比,图形登录的键盘行为略有不同。请注意不要使用 neo 代替 neo_quertz,否则您将无法在不知道位置位置的布局中输入用户名和密码。并且不要忘记: shift 与其他键类型一起使用大写,而 capslock 与其他键类型一起使用 layer3 符号(如果您的密码中有符号,则需要知道这一点)。
【讨论】:
感谢您的回答。不幸的是,我只看到“neo-querty”而不是“neo-quertz”。 我的情况正好相反。有点需要摆脱neo-quertz。在我的情况下,localectl list-x11-keymap-variants
仅显示neo
,但neo-quertz
以某种方式被接受,因为只是locatectl
显示neo_qwertz
,并且至少在我注销时它充当neo
和qwertz
。但它是 ubuntu 21.4 和 xfce。所以,事情可能会有所不同。【参考方案3】:
您可以编辑自己的键盘映射,方法是从/usr/share/X11/xkb/symbols
中的现有映射编辑或创建新符号映射
您可以使用以下命令获取键盘上每个键的当前值:
xev | grep keysym
这里是每个硬件键盘键的地址映射
良好的键盘输入!
【讨论】:
不错的答案,但它并不能说明如何做到这一点。 @vanadium 我的回答可能不完整,但它提供了一些关于如何深入研究问题的见解。我的答案也在上面使用了另一个。因为你不喜欢我的回答,有必要否决我吗? 我很少投反对票,但我认为您的回答几乎没有提供任何关于事情如何运作的见解,也几乎没有提供关于如何解决问题的线索。 “编辑或创建新的符号图”:我认为 OP 无需您的回答也能说明这一点。以上是关于使上/下箭头、Pos1、End、Del ... 更简单的主要内容,如果未能解决你的问题,请参考以下文章
如何让数字键盘箭头在 Linux 上与 Java 应用程序一起使用