/etc/X11/Xmodmap 对 Ubuntu 不起作用?

/etc/X11/Xmodmap 对 Ubuntu 不起作用?

经过几天的研究,我发现Ubuntu /etc/gdm/Xsession而不是 来执行/etc/X11/Xsession。尽管两者都在 下运行脚本/etc/X11/Xsession.d

我已经在 中定义/etc/X11/Xmodmap并创建了一个钩子脚本/etc/X11/Xsession.d/40load-xmodmap,但是之后加载的 xmodmap 丢失了99x11-common_start

调试代码:

/etc/X11/Xseesion:
...
for file in Xsession.d/*; do
  . $file

  echo The current xmodmap is: 
  xmodmap
done
...

打印的 xmodmap 显示40load-xmodmap工作得很好,但是在桌面启动后,定义的键模式会丢失。

最后,我在用户目录中定义了 xmodmap ~/.Xmodmap,这次启动会话时会弹出一个窗口提示我启用 Xmodmap。所以我想也许 GNOME 桌面重置了 xmodmap?

答案1

首先,你需要知道在X下有两个用于配置键盘的界面:

  • Xmodmap:传统、简单、有限。
  • XKB:现代、复杂、强大。

/etc/X11/xorg.conf您可以使用以下方式定义键盘布局韋斯特设备。(出于某种原因,手册页似乎没有出现在实际的发行版中。)如果您不这样做,则将应用来自的设置/etc/default/console-setup

如果您的显示管理器是 Gdm,它会分别从和加载 XKB 和 xmodmap 设置(查看/etc/gdm/Xsession)。此时,其他显示管理器不会改变您的设置。/etc/X11/Xkbmap/etc/X11/Xmodmap

登录后,您的桌面环境可能会用其自己的设置覆盖您的设置。如果您运行的是默认的 Ubuntu 环境,请参阅这个问题

我建议使用 Ubuntu 键盘首选项 GUI 并按“全系统应用”选择与您的键盘相对应的内置布局作为系统布局,并将您的个人偏好设置分别存储在~/.xmodmap或中~/.xkbmap

相关内容