lightdm 运行的用户级脚本

lightdm 运行的用户级脚本

我想进行仅影响我的用户的键重新映射,但影响我的窗口管理器中的任何位置,而不仅仅是在终端中。

在 lightdm 中,我选择 awesome 作为我的窗口管理器并登录。在 xserver 启动之前,是否有任何针对每个用户配置的钩子?.xinitrc 和 .xsession 似乎不是由 lightdm 运行的。更好的解决方案是要求入口点无论窗口管理器是什么,都可以执行键重新映射,但似乎不同的窗口管理器对如何进行钩入有不同的约定。

答案1

如果您只是对以适用于任何 wm 的方式重新映射键感兴趣,我想我有一种方法适用于任何典型的 X wm,但您可能必须针对每个 wm 进行配置。例如,在 Awesome 中,我将以下行添加到我的末尾rc.lua

awful.util.spawn_with_shell("/usr/bin/setxkbmap -option caps:swapescape -option altwin:ctrl_win")

和我的其他自动启动项。上述选项将交换 Esc 和 Capslock,并将“windows”键(和常用的 ctrl 键)映射到 ctrl。

无论您使用 DE 还是 wm,它都应该提供一种自动启动命令的方法。自动启动适当的setxkbmap命令应该会重新映射您的键。我在各种窗口管理器中都这样做过。据我所知,这是重新映射键的可靠、“正确”的方法,与 xmodmap 相比,后者似乎不太可靠。

要重新映射所需的键,您需要知道要传递的相应选项和键值。您可以在以下位置找到列表/usr/share/X11/xkb/rules/xorg.lst

当然,您也可以使用setxkbmap.xinitrc但正如您所指出的,lightdm 在加载会话时似乎不使用它。由于我也使用 lightdm,所以我通常不会想到编辑xinitrc,但我突然想到应该有一种方法可以通过 lightdm 启动用户定义的 X 会话……我发现这个答案。这可能更符合你想要做的事。

相关内容