在 Kubuntu 20.04 中登录时无法找到加载自定义 xkb 键盘映射的方法

在 Kubuntu 20.04 中登录时无法找到加载自定义 xkb 键盘映射的方法

我已经制作了一个自己满意的自定义 xkb 键盘映射,并且可以使用以下脚本毫无问题地加载它

xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykeys $DISPLAY

当我手动操作时,它按照我想要的方式工作。

我的问题是,我找不到任何合理的地方来放置它,让它可以在登录时运行,而不会被默认配置覆盖。我试过~/.xinitrc,,,,甚至~/.xsession~/.xsessionrc~/.xprofile~/.config/autostart-scripts

大多数脚本都已运行(用 检查zenity),但看起来下游的某些东西显然稍后会恢复为默认配置,因此当我的 KDE plasma 加载时,我重新映射的键不起作用,直到我再次手动运行此脚本。

我该如何修复这个问题?

更新:我还注意到,笔记本电脑从睡眠状态唤醒后,我需要重新运行脚本。有没有办法让它更持久,而无需修改 /usr/share/X11/xkb 中的默认配置?

更新 2:当笔记本电脑从睡眠状态唤醒时,我的按键实际上仍在工作大约 2-3 秒,然后突然停止(大约与我的蓝牙鼠标重新连接的时间相同:不确定这是否相关)直到我重新运行脚本。

更新3:内容如下~/.xkb/keymap/mykeys

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+inet(evdev)+mysymbols(super_arrows)" };
    xkb_geometry  { include "pc(pc105)" };
};

这是~/.xkb/symbols/mysymbols

partial modifier_keys
xkb_symbols "super_arrows" {
    key <LEFT>  {
        type = "PC_SUPER_LEVEL2",
        symbols[Group1] = [    Left,   Home      ],
        actions[Group1] = [    NoAction(),  RedirectKey(keycode=<HOME>, clearmods=Mod4) ]
    };
    key <RGHT>  {
        type = "PC_SUPER_LEVEL2",
        symbols[Group1] = [    Right,  End       ],
        actions[Group1] = [    NoAction(),  RedirectKey(keycode=<END>, clearmods=Mod4) ]
    };
    key <UP>  {
        type = "PC_SUPER_LEVEL2",
        symbols[Group1] = [    Up,  Prior       ],
        actions[Group1] = [    NoAction(),  RedirectKey(keycode=<PGUP>, clearmods=Mod4) ]
    };
    key <DOWN>  {
        type = "PC_SUPER_LEVEL2",
        symbols[Group1] = [    Down,  Next       ],
        actions[Group1] = [    NoAction(),  RedirectKey(keycode=<PGDN>, clearmods=Mod4) ]
    };
    key <INS> {
        symbols[Group1] = [    Print             ],
        actions[Group1] = [    RedirectKey(keycode=<PRSC>) ]
    };
};

如果我将include "mysymbols(super_arrows)"放入/usr/share/X11/xkb/symbols/pc,并将指向 mysymbols 的符号链接放入/usr/share/X11/xkb/symbols,则我的配置将变得稳定,但重新登录后,重新定义的键将无法自动重复(按住时)。所以我当前的流程是:登录后:

  • xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykeys $DISPLAY手动启动
  • 取消注释include "mysymbols(super_arrows)"然后/usr/share/X11/xkb/symbols/pc 我可以正常使用配置直到下次重新启动(重新登录):)Linux 真的充满魔力!;)

答案1

本文底部对此进行了解释(针对另一种布局,但你会找到自己的方法)

相关内容