![在 Kubuntu 20.04 中登录时无法找到加载自定义 xkb 键盘映射的方法](https://linux22.com/image/1175920/%E5%9C%A8%20Kubuntu%2020.04%20%E4%B8%AD%E7%99%BB%E5%BD%95%E6%97%B6%E6%97%A0%E6%B3%95%E6%89%BE%E5%88%B0%E5%8A%A0%E8%BD%BD%E8%87%AA%E5%AE%9A%E4%B9%89%20xkb%20%E9%94%AE%E7%9B%98%E6%98%A0%E5%B0%84%E7%9A%84%E6%96%B9%E6%B3%95.png)
我已经制作了一个自己满意的自定义 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
本文底部对此进行了解释(针对另一种布局,但你会找到自己的方法)页。