.xsession。.xinitrc、xmonad 和 lightdm

foo*_*baz 16 multiple-monitors autostart xmonad x11 lightdm

让我用以下内容作为我的问题的开头:我很确定我可以通过修改 /usr/share/xsessions/somesessionfile.desktop 并使其运行 /etc/X11/Xsession 来组合一个解决方案,并让它以这种方式工作,但我还是想澄清一些事情。

设置:12.04,全新安装(可能是 3 小时前)。想用 xmonad 作为我的 WM。双头设置。

我的问题:我对哪个程序在做什么,关于 X ,统一性,登录管理器(或它们被称为什么)和窗口管理器完全感到困惑,或者说完全困惑。我使用 xmonad 作为我的窗口管理器,我知道很多。当我登录时,或者甚至更早时,我希望使用运行 xrandr 的脚本正确设置我的双显示器(我已经在工作了)。我与之交谈的每个人或我在网上阅读的他们的问题都在谈论 xinitrc、~/.xsession 或 /etc/X11/xsession,但这些文件都没有运行。/usr/share/xsessions 中的文件似乎是唯一正在运行的文件,我一生都找不到任何关于此的文档。

这个系统的一致性在哪里?如果我想正确地做到这一点,我应该怎么做?一些窗口管理器似乎是这样做的(KDE 和 gnome 似乎有一个叫做“自动启动”的东西)。我应该让我的窗口管理器处理这个、X 还是 lightdm?我知道在启动过程中可能有几十个文件可以放入其中,但我要求正确的约定。什么是解决方案,这样的事情?

TL; 博士; 是否有一种一致的方法可以为在 X 上运行的每个窗口管理器自动运行脚本,或者这完全取决于我正在使用的窗口管理器和登录管理器的组合?

Joh*_*ber 11

我相信你会发现这对你有用。它将由 dash 脚本 /usr/sbin/lightdm-session 提供,该脚本稍后将执行窗口管理器的 exec。

假设这只是给你的,因为它与 X 相关,我建议把它放在 ~/.xprofile 中。如果它适用于系统的每个用户,/etc/xprofile 可能更合适。

创建一个文件 ~/.xprofile 并编辑它以包含您的 xrandr 命令(类似于以下测试项):

xrandr --output LVDS --mode 1280x854

您可以在登录并启动 Unity 或其他图形用户界面的幕后情况中找到更多信息. 它确实涵盖了非统一窗口管理器发生的一些事情。