启动时使用 .xinitrc 执行 xkbcomp 命令

启动时使用 .xinitrc 执行 xkbcomp 命令

如何安装自定义键盘映射并使其在启动时自动启动?

当我在终端中运行以下命令时它有效:

xkbcomp -I$HOME/.xkb/ $HOME/.xkb/switch-LALT-LCTL.xkb $DISPLAY

但是当我将其放入 .xinitrc(以防万一,从 .xsession 链接)时,命令未运行。我错过了什么?我花了几个小时/几天的时间搜索和尝试其他“解决方案”,但这些都不适合我。

提前感谢您提供的任何帮助或想法。

答案1

我不认为这.xinitrc是由显示管理器执行的。你试过了吗.xprofile?这里引用了另一个问题: https://wiki.ubuntu.com/X/Config/Resolution

我经常zenity在这类文件中使用一个小命令来确认它们是否有效运行,例如

zenity --warning --text "I am in .xprofile and I RUN\! " &

答案2

我的解决方法是编辑 /usr/share/X11/xkb/keycodes/evdev 中的键码,然后通过删除 /var/lib/xkb/ 中的 .xkm 文件来重新编译。这不是一个合理的解决方案,因为它会破坏涉及这些键码的任何其他键映射。正确的解决方案:

lightdm-session 运行在 ~/.xmodmap 或 ~/.Xkbmap 中找到的设置。通常情况下,这是可行的方法,并且确实会运行并应用此处设置的设置。但目前存在一个错误,如果您运行的是 Gnome(Ubuntu 13.10 - ubuntu 桌面中的默认设置)。它将覆盖此处所做的任何设置。

然后,解决方案就是编辑 gnome 键盘插件使用的 gnome 设置,以覆盖 lightdm 设置的设置。具体来说,为了交换 LALT 和 LCTL(目前还没有简单的规则),我遵循了此处的说明:http://www.itniwo.net/blog/v/404398.html

这涉及(以 root 身份)编辑 /usr/share/X11/xkb/ 中的几个文件。结果允许使用 dconf-editor 将新选项 +ctrl(swap_lalt_lctrl) 添加到键盘设置中。

互联网上许多人在升级到 13.10 后,xkb 和 xmodmap 配置突然停止工作,这让他们很生气。很遗憾,数百万美元的时间被浪费在诊断和解决这个问题上 :-(。gnome 方面的聪明人应该写一些东西来尊重任何现有的 xkb 设置,或者至少警告他们,他们是故意破坏这些设置的(很难找到静默覆盖)。

相关内容