更新

更新

我用十个手指打字,其中食指放在“F”和“J”上。

这样,我就可以快速轻松地使用 QWERTZ 布局输入字母。

但许多其他键很难触及。例如:

Pos1、End、Del、向上/向下箭头、向上/向下页面、ESC、退格。

有没有办法让这些键可用,同时将食指保持在“F”和“J”上?

我对“A”到“Z”很满意,不想切换到其他布局(例如科莱马克

也许可以通过将 CapsLock 设为新的修饰符,这样(例如)CapsLock-u 是向上箭头而 CapsLock-n 是向下箭头?

我使用 Ubuntu Linux。

我创建了一个后续问题:超键 u --> 类似向上箭头

更新

我找到了一个很好的解决方案:输入重映射器。见我的小文章十指飞翔(更舒适的盲打)

答案1

arch wiki 链接我按照步骤操作,在“Arch Linux”和“Ubuntu 20.04”操作系统中成功保留 Caps Lock 键 + u、h、j、n 等键。此方法允许使用 Shift+Caps+h 键突出显示文本,如链接中所述。

在继续之前,请阅读注意事项和准备工作 link

步骤1

/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

答案2

为了解决此类问题,某些键盘布局除了 Shift/CapsLock 和常规修饰键提供的层之外,还包含额外的层。其中一个例子是 Neo (维基百科文档(德语)文档(谷歌翻译))。

Neo 提供 6 个层,而您所需的移动键层是第四层。(层数为 1-小写字母、2-大写字母、3-特殊字符、4-移动+数字、5-希腊字符(用于公式);6-数学符号+希腊大写字母。

shift就像从第 1 层进入第 2 层(从小写到大写的常规文本)一样,按一下M4键(如图所示,似乎相当于 qwertz 的<alt-gr)即可进入第四层。

Neo 的第四层:

neo 键盘布局第四层 (图片取自官网)

例如,可以看到 up-down 并不像 vim,它们只是普通键盘中的一个上面的另一个。

新行星第四层的运动关键位置:

移动 钥匙
home a
end g
del r
up e
down d
pgUp q
pgDown t
ESC z
backspace w

前两层针对德语进行了优化。但是,由于您仍想使用 qwertz 布局,因此有一个变体,称为新石英,其中第 1 层和第 2 层将分别为常规 qwertz 小写和大写。这样,您会感觉更像在家一样,正如您所希望的那样。

根据他们的文档,它们已经包含在主要的操作系统中,包括 Linux(安装说明)(作为键盘变体安装),但我不能保证它们开箱即用。- 就我而言(ubuntu/xfce),没有必要apt安装任何东西,我只需要设置配置。按照他们的说明操作时,与所述不同,它仅在重置后起作用,并且仅在登录屏幕中起作用,登录后 qwerty 回来了,因此需要进行更多调整。localectl list-x11-keymap-variants只有列表neo而不是neo_quartz。图形登录的键盘行为与 tty1-6 略有不同。注意不要使用 neo 而不是 neo_quertz,否则您将无法尝试在一个您不知道位置在哪里的布局中输入用户名和密码。并且不要忘记:shift与其他键类型一起它是大写的,而capslock与其他键类型一起是 layer3 符号(如果您的密码中有符号,您需要知道这一点)。

答案3

您可以通过编辑或从现有映射创建新的符号映射来编辑您自己的键盘映射/usr/share/X11/xkb/symbols

您可以使用以下命令获取键盘上每个键的当前值:

xev | grep keysym

以下是每个硬件键盘键的地址映射 键盘键

键盘敲得好!

相关内容