xinit (简体中文)

xinit 通常用在启动 X 时执行窗口管理器桌面环境。虽然可以使用 xinit 在无窗口管理器的情况下启动图形程序,大部分图形程序都需要一个兼容 EWMH 的窗口管理器。显示管理器 启动 Xorg 并读取 xprofile

翻译状态:本文是 xinit翻译。上次翻译日期:2019-03-14。如果英文版本有所更改,则您可以帮助同步翻译。

摘自 Wikipedia:

用户可以通过 xinit 程序手动启动 Xorg 显示服务器,startx(1) 脚本是 的前端。

安装

安装 软件包 。

配置

xinitstartx 可以带一个可选的客户端程序参数,如果未提供这个参数,它们会从 确认要启动的客户端。所以 等价于在 中设置 并执行 xinit

xinitrc

可以方便的启动依赖 X 的程序,并在 X 启动时设置环境变量。如果用户主目录中存在 .xinitrcstartxxinit 会执行此文件。如果不存在,startx 会执行默认的 。这个文件默认启动 TwmXterm. xinit 的默认行为不一样,请参阅 。要设置窗口管理器或桌面环境,先通过复制创建默认文件:
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

根据示例文件修改可以保留一些默认行为,例如会引用 中以 结尾的脚本。

然后编辑 ,例如要使用 Openbox,修改为:

中应该只有 一个 未注释掉的  行,而且 exec 行必须位于配置文件的末尾。exec 后面的所有命令只有窗口退出后才会被执行。在窗口管理器前启动的命令,例如屏保和壁纸程序,必须自行 fork 后台进程或用在后台启动, 否则启动程序会等待它们退出才会启动窗口管理器或桌面环境。使用  作为前缀会替换当前的进程,这样进程进入后台时 X 不会退出。

某些程序,比如 xrdb,不应该被 fork. 使用 前缀时,程序将会用窗口管理器进程替换脚本进程,所以即使进程进入后台 X 也不会退出。

xserverrc

xserverrc 文件是一个启动 X server 的 shell 脚本。如果存在 ,startxxinit 都会执行这个文件。如果文件不存在,startx 会使用 .

为了维护 的 authenticated session 会话,避免切换终端时跳过屏幕锁, 必须找用户登录的虚拟终端启动 Xorg 所以建议在 中指定 vt$XDG_VTNR:

如果要让 X 在其他的终端启动,可以使用 提供的 X server 包裹程序。修改 ,可以让 xinitstartx 都使用这个包裹程序.

使用

现在以普通用户启动 X:

 $ startx

或者

$ xinit -- :1

选择的窗口管理器或桌面环境就应该正常启动了.

要退出 X, 运行窗口管理器的退出功能,如果窗口管理器未提供此功能,可以运行:

$ pkill -15 Xorg

提示和技巧

从命令行覆盖 xinitrc

如果你有一个可用的 , 件,只想尝试下其他的窗口管理器/桌面环境,你可从命令行给 完整路径

$ startx /full/path/to/window-manager

必须使用完整 required. 还有一个选项是为 #xserverrc 提供额外参数,加在 后面,例如:

 $ startx /usr/bin/enlightenment -- -br +bs -dpi 96

参阅 startx(1).

在登录时自动启用 X

先确保 startx 已经配置好了。

如果使用Bash, 编辑 ,加入如下内容. 如果文件不存在,从 /etc/skel/.bash_profile 复制一个框架版本。

如果使用 zsh,则编辑 .

  • 此方法与automatic login to virtual console一起可以实现自动登陆。
  • 如果 X 被关闭,用户将自动退出。要避免这个问题,删除 。
  • 要将 X 会话的输出重定向到一个文件,请创建一个别名alias:

参阅 Fish#Start X at loginSystemd/User#Automatic login into Xorg without display manager.

可以和 自动登录到虚拟终端一起使用.

Switching between desktop environments/window managers

If you are frequently switching between different desktop environments or window managers, it is convenient to either use a display manager or expand .xinitrc to make the switching possible.

The following example shows how to start a particular desktop environment or window manager with an argument:

To pass the argument session:

$ xinit session

or

$ startx ~/.xinitrc session

不启动窗口管理器,直接启动程序

It is possible to start only specific applications without a window manager, although most likely this is only useful with a single application shown in full-screen mode. For example:

~/.xinitrc
...

exec chromium

With this method you need to set each application window's geometry through its own configuration files, if possible at all.

See also Display manager#Starting applications without a window manager.

Output redirection using startx

See Xorg#Session log redirection for details.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.