X11

startx 執行什麼桌面環境,如何更改?

  • November 15, 2015

從許多文件中,我讀到startx在 Raspbian OS 中啟動 LXDE。我有點困惑。

總是startx執行 LXDE GUI?

我也看到了使用startlxde命令的例子。該命令有何不同,為什麼startx以及startlxde執行相同的 GUI(LXDE)?或者它執行它是因為它是預設的 GUI?

如果我有多個 GUI,如何選擇預設 GUI?

您能否解釋一下有關 Linux 系統中 GUI 的更多細節?

startx執行xinit它啟動一個 X 伺服器和一個客戶端會話。客戶端會話~/.xinitrc是否存在,否則/etc/X11/xinit/xinitrc(位置可能因發行版而異)。該腳本的作用因發行版而異。在 Debian(包括 Raspbian 等衍生產品)上,/etc/X11/xinit/xinitrcruns/etc/X11/Xsession反過來執行/etc/X11/Xsession.d. ~/.xsessionDebian 腳本在其他文件 ( , ~/.xsessionrc, )中查找使用者會話~/.Xsession,如果沒有適用的使用者設置,則執行(如果沒有則x-session-manager回退到x-window-manager

$$ session manager $$已安裝,x-terminal-emulator在不太可能的情況下沒有安裝視窗管理器)。 如果您想控制執行的內容,您可以創建一個使用者文件,~/.xsession或者~/.xinitrc. ~/.xsession如果您在顯示管理器上登錄(即如果您在 GUI 視窗中輸入密碼),也會使用該文件。該文件~/.xinitrc特定於xinitstartx。Using~/.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

引用自:https://unix.stackexchange.com/questions/243195