startx 运行什么桌面环境?如何更改它?

startx 运行什么桌面环境?如何更改它?

从许多文档中,我读到正在startxRaspbian OS 中启动 LXDE。我有点困惑。

总是startx运行 LXDE GUI 吗?

我还看到了使用startlxde命令的示例。该命令有何不同?为什么startx运行startlxde相同的 GUI(LXDE)?或者也许它运行它是因为它是默认的 GUI?

如果我有多个 GUI,如何选择默认 GUI?

您能解释一下有关 Linux 系统中 GUI 的更多细节吗?

答案1

startx运行xinit它会启动 X 服务器和客户端会话。客户端会话(~/.xinitrc如果存在),否则/etc/X11/xinit/xinitrc(位置可能因发行版而异)。该脚本的作用因发行版而异。在 Debian(包括 Raspbian 等衍生版本)上,/etc/X11/xinit/xinitrcruns/etc/X11/Xsession依次运行/etc/X11/Xsession.d. Debian 脚本在其他文件( ~/.xsession~/.xsessionrc、 )中查找用户会话~/.Xsession,如果没有适用的用户设置,则运行x-session-manager(如果没有安装 [会话管理器],则回退到x-window-manager,如果没有安装窗口管理器,则回退到x-terminal-emulator不太可能的情况)安装)。

如果您想控制执行的内容,您可以创建一个用户文件,或者~/.xsession~/.xinitrc.如果您~/.xsession登录到显示管理器(即,如果您在 GUI 窗口中输入密码)。该文件~/.xinitrc特定于xinitstartx。使用~/.xsession会进行,/etc/X11/Xsession因此它会设置输入法、资源、密码代理等内容。如果使用.xinitrc,则必须手动完成所有这些操作。我再次在这里描述 Debian,其他 Unix 变体可能会有不同的设置。使用 来~/.xinitrc指定运行时执行的内容,startx或者xinit是通用的。

无论您使用~/.xinitrc~/.xsession,此文件(通常是 shell 脚本,但如果您确实想使用其他东西,则不必如此)必须准备需要准备的任何内容(例如键盘设置、资源、未启动的小程序)由窗口管理器等),然后最后运行管理会话的程序。当脚本结束时,会话终止。通常,您可以exec在脚本末尾使用,将脚本替换为会话管理器或窗口管理器。

您的系统大概有/usr/bin/startlxde系统范围的默认会话管理器。在 Debian 及其衍生版本上,您可以使用以下命令检查可用的会话管理器

update-alternatives --list x-session-manager

或者获取更详细的描述,表明当前使用的是哪一个

update-alternatives --display x-session-manager

如果 LXDE 不是系统范围的默认值,并且您希望将其设为帐户的默认值,则可以使用以下~/.xsession文件:

#!/bin/sh
exec startlxde

在某些 Unix 变体上,这只适用于图形登录,而不适用于startx,因此您还需要创建一个相同的~/.xinitrc. (或者不相同:在 中~/.xsession,您可能想做其他事情,因为这是在图形会话中执行的第一个文件;例如,您可以将其放在. ~/.profile顶部附近,以设置一些环境变量。)

如果您想一次性尝试其他环境,您可以指定一个不同的程序在startx其自身的命令行上运行。该startx程序有一个怪癖:您需要使用该程序的完整路径。

startx /usr/bin/startkde

startx命令还允许您指定要传递到服务器的参数。例如,如果您想同时运行多个 GUI 会话,则每次可以传递不同的显示编号。--在 的命令行上传递服务器参数startx

startx /usr/bin/startkde -- :1

答案2

否:startx可配置。根据手册页:

要确定要运行的客户端,首先要在用户的主目录中startx查找一个名为的文件。.xinitrc如果未找到,它将使用库目录xinitrc中的文件xinit

startx不是启动 X 的唯一方法(正如您从 中看到的startlxde)。手册startx页再次提供帮助:

startx 脚本是一个前端xinit(1)它为运行 X Window 系统的单个会话提供了更好的用户界面。它通常在没有参数的情况下运行。

另一方面,如果您想选择 GUI(LXDE、KDE ​​等),那么xdm和类似的东西,例如kdm,gdmLightDM用于选择不同的桌面类型。在 Debian 上我通常使用kdm,因为它允许不同的桌面类型。打包程序gdm不允许大多数桌面类型,使其不适合我的需求。

xdm使用一个不同的要启动的脚本集,例如您的~/.xsession脚本和系统脚本。相似者可能会忽略这一点,并使用他们自己的脚本。但这是一个起点。

相关内容