AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1382478
Accepted
guettli
guettli
Asked: 2021-12-14 13:22:04 +0800 CST2021-12-14 13:22:04 +0800 CST 2021-12-14 13:22:04 +0800 CST

使上/下箭头、Pos1、End、Del ... 更简单

  • 772

我用十个手指在“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。

我创建了一个后续问题:Hyper-key u --> Like Arrow-Up

更新

我找到了一个很好的解决方案:input-remapper。看我的小文章十个飞手指(触摸打字更舒服)

keyboard
  • 3 3 个回答
  • 267 Views

3 个回答

  • Voted
  1. Best Answer
    UnKNOWn
    2021-12-19T11:44:55+08:002021-12-19T11:44:55+08:00

    从arch wiki链接我按照步骤并在“Arch Linux”和“Ubuntu 20.04”操作系统中取得了成功,同时保持Caps Lock键+ u、h、j、n等键。此方法允许使用链接中提到的 Shift+Caps+h 键突出显示文本。

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

    步骤1

    在 Ubuntu 20.04 中编辑文件/usr/share/X11/xkb/types/complete
    Original Content

    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

    • 4
  2. brunoff
    2021-12-17T10:50:08+08:002021-12-17T10:50:08+08:00

    为了解决这类问题,一些键盘布局包括除 shift/capslock 和常规修饰键之外的额外层。一个例子是 Neo(维基百科;文档(德语);文档(谷歌翻译))。

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

    就像shift您从第 1 层到第 2 层(小写到大写常规文本)所发生的一样,对M4键的一次击键(显示在图像上,似乎相当于 qwertz 的<and alt-gr)将您带到第四层。

    Neo的第四层:

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

    可以看到 up-down 例如不像 vim,它们比其他普通键盘高出一个。

    neo第四层的机芯关键位置:

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

    前两层针对德语进行了优化。但是由于您仍然想保留 qwertz 布局,因此有一个变体,称为neoquertz,其中第 1 层和第 2 层将分别是常规的 qwertz 小写和大写。这样一来,您就会有宾至如归的感觉,正如您所愿。

    根据他们的文档,它们已经包含在主要操作系统中,包括 Linux(安装指令)(它作为键盘变体安装),但我不保证它们可以开箱即用。- 在我的情况下(ubuntu/xfce),不需要apt或安装任何东西,我只需要设置配置。当遵循他们的指示时,与所说的不同,它仅在重置后并且仅在登录屏幕中,在登录 qwerty 回来后才有效,因此需要进行更多调整。localectl list-x11-keymap-variants只列出neo而不是neo_quartz. 与 tty1-6 相比,图形登录的键盘行为略有不同。请注意不要使用 neo 代替 neo_quertz,否则您将无法在不知道位置位置的布局中输入用户名和密码。并且不要忘记:shift与其他密钥类型一起使用大写,而capslock与其他密钥类型一起使用 layer3 符号(如果您的密码中有符号,则需要知道这一点)。

    • 2
  3. assayag.org
    2021-12-19T06:58:06+08:002021-12-19T06:58:06+08:00

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

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

    xev | grep keysym

    这是每个硬件键盘键的地址图 键盘键

    好键盘!

    • 1

相关问题

  • 有哪些有用的键盘快捷键?[关闭]

  • 如何在 Compiz->Commands 中获得超过 12 个命令?[关闭]

  • 输入语言切换键只接受 shift-alt 而不是 alt-shift [关闭]

  • 如何在键盘上映射未映射的键?[关闭]

  • 如何重置我的键盘布局?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve