“.xsession”有什么用?

Mir*_*lov 65 login xorg x11

.xsession主文件夹中的文件的用途是什么?里面应该放什么?桌面环境不使用该文件,并且对于从 tty 启动的 X 有.xinitrc.

Gil*_*il' 71

如果您以文本模式登录,然后使用xinit或包装器脚本启动 GUI 会话startx,则xinit执行以下操作:

  • 启动 X 服务器(通常通过脚本/etc/X11/xinit/xserverrc)。
  • 通常在/etc/X11(通常/etc/X11/xinit/xinitrc)中运行一些脚本,具体取决于它的设置方式。
  • 运行~/.xinitrc,如果它存在。如果它不存在,请运行默认客户端(传统上xterm)。
  • 一旦~/.xinitrc终止,杀死 X 服务器。

如果您在X 显示管理器(xdm、gdm、kdm、wdm、lightdm...)上以图形模式登录,传统上,登录后执行的是/etc/X11then中的一些脚本~/.xsession

~/.xsession具有~/.profile~/.xinitrc组合的作用:它应该执行会话的初始启动(例如定义环境变量),然后启动特定于 GUI 的程序(通常至少是窗口管理器)。

如今,大多数 X 显示管理器都为您提供会话选择。选择特定的会话启动特定的桌面环境、会话管理器、窗口管理器。然后执行的只是那个 DE/SM/WM 以及它根据它选择读取的任何配置文件选择启动的任何程序。许多环境提供了一个“自定义会话”,可以读取传统的~/.xsession.

  • 我不知道这个“许多环境”是什么,但至少 kdm 默默地忽略了 «~/.xsession» 文件。 (3认同)
  • @Hi-Angel 仅当您选择特定会话类型时才会读取 `.xsession` 文件。我知道对于 Gdm 来说,上游开发者不希望包含一个默认运行 `.xsession` 的,并将它留给每个发行版,而且许多发行版没有打扰或没有意识到需要。我不知道 kdm 的情况是什么。 (2认同)
  • @Hi-Angel Gilles 的意思是,在您的图形登录屏幕上,您通常会有一个列出各种环境的下拉菜单。如果您选择“KDE”,它将启动,并且会忽略您所描述的“.xsession”。但是,如果您选择“自定义会话”而不是“KDE”,则将运行“.xsession”_而不是_KDE。例如,我使用它是因为我只运行 `xfce4-panel` 和 FVWM 2 作为我的“桌面”;如果 KDE 安装在我碰巧使用的系统上,它将被完全忽略。 (2认同)

Jim*_*ris 18

如今,X 会话启动可能很复杂。一个很好的起点是脚本/etc/X11/Xsession,看看事情将如何执行。

在我的 Debian/Ubuntu 系统上,脚本/etc/X11/Xsession设置变量USERXSESSION=$HOME/.xsession. 稍后,/etc/X11/Xsession.d/50x11-common_determine-startup如果 中的系统策略允许/etc/X11/Xsession.options,并且显示管理器未请求其他会话,脚本将查找此脚本并将其用作主会话。


use*_*332 9

我强烈建议您阅读X Window 系统管理员指南:对于 X 版本 11 一书。第 2 章解释.xsession了示例设置的目的和整个配置过程。此外,它是对整个 x-window 相关术语的一个很好的复习(我希望你不要被吓到 :))。你可以从

http://archive.org/details/xwindowsystemadm08muimiss

尽管它已经过时了,但您可以找到许多直到今天都没有改变的基本概念的信息,并且非常清晰。此外,看看当时的顶级产品真的很有趣。


Nik*_*RIP 7

.xsession 是 X11 环境的传统启动脚本。现在有了像 kdm 这样的会话管理器,它不再有用了,而是在传统的设置系统上。这是使用 startx 启动 X11 后运行的内容。