startx在什么桌面环境上运行,如何更改?


18

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

是否将始终startx运行LXDE GUI?

我也看到了使用startlxde命令的例子。这怎么命令不同,为什么startxstartlxde运行相同的GUI(LXDE)?还是因为它是默认的GUI而运行它?

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

您能否解释一下Linux系统中有关GUI的更多详细信息?

Answers:


27

startx运行xinit将启动X服务器和客户端会话。客户端会话(~/.xinitrc如果存在)(否则)/etc/X11/xinit/xinitrc(位置在发行版之间可能有所不同)。该脚本的功能在发行版之间有所不同。在Debian(包括Raspbian等衍生产品)上,/etc/X11/xinit/xinitrc运行/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。使用~/.xsessionthrough /etc/X11/Xsession会设置诸如输入法,资源,密码代理等内容。如果使用.xinitrc,则必须手动完成所有这些操作。再一次,我在这里描述Debian,其他Unix变体可能会以不同的方式进行设置。使用~/.xinitrc指定当您运行什么被执行startx或者xinit是普遍的。

无论您使用~/.xinitrc还是~/.xsession,此文件(通常是一个shell脚本,但是如果您真的想使用其他东西都不一定需要)必须准备任何需要准备的内容(例如键盘设置,资源,未启动的applet)通过窗口管理器等),然后最后运行管理会话的程序。脚本结束后,会话终止。通常,您将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

我在Debian 9上。我的机器启动到tty1。从我的登录运行,startx开始默认的Xfce4会话。从我妻子的用户登录tty1或tty2。她的startx命令设置为运行Cinnamon(在中指定~/.xsession)。对于第二台X服务器,我不必指定$DISPLAY您答案最后一部分中提到的。尽管那确实可行。它自动使它成为第二个$DISPLAY等。但是设置很棒。没有登录和注销图形会话的权限,只是用于切换用户配置文件的键盘快捷键。感谢您的帮助!
jbrock

10

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

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

startx不是启动X的唯一方法(从中可以看到startlxde)。该startx手册页再次帮助:

startx脚本是xinit(1)的前端,它为运行X Window System的单个会话提供了更好的用户界面。它通常不带参数运行。

在另一方面,如果你想选择一个GUI(LXDE,KDE等),然后xdm和外观相似,例如kdmgdmLightDM用于选择不同的桌面类型。在Debian上,我通常使用kdm,因为它允许使用不同的桌面类型。打包程序gdm不允许大多数台式机类型,因此不适合我的需求。

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


那么,例如在conf文件中写什么来运行LXDE?
CuriousGuy 2015年

.xinitrc是一个脚本,可对其进行配置。如果进行编码,它可以直接运行LXDE。
Thomas Dickey

1
startlxde不是xinit的前端,它是LXDE会话管理器的启动器。它不能替代startx,可以在中执行~/.xinitrc
吉尔(Gilles)'所以

然后,需要一些文档。认真地说,一个好的答案将OP指向了文档的方向,而不是试图对其进行重新表述(除非有人对文档有一些评论,以便更好地理解文档)。
Thomas Dickey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.