如何在沒有虛擬化的情況下執行多個 X 會話

Linux 系統的優點之一就是它的彈性。儘管我多年來一直是 Linux 的重度用戶,但我仍然遇到了令我驚訝的作業系統和相關應用程式中的功能。不久前,我學會了同時運行多個桌面環境,只使用我的發行版中已內建的軟體功能,這對我來說非常有用。聽起來可能沒什麼,但是能夠同時運行 Gnome、KDE、Window Maker 和任何其他桌面可能非常有用。您可以在幾秒鐘內從 Gnome 切換到 Window Maker,而無需登出或停止應用程式或使用任何類型的虛擬化軟體。 X 已經擁有您所需的一切。

為了確保不會造成混淆,我不是說多個顯示器。這篇文章背後的想法是我們將多個桌面環境在同一台計算機上運行同時,我們將使用鍵盤快捷鍵在它們之間進行切換。

對於那些不確定我所說的「X」是什麼意思的人來說,這是X視窗系統。大多數現代發行版都使用X.org處理他們所有的圖形需求。基本上,任何時候您看到圖形(不僅僅是純文字)時,您可能都會看到 X。它管理 Linux 的顯示並控制螢幕上的內容及其處理方式。

虛擬終端

X透過螢幕或顯示器追蹤事物。現在,如果您在 Linux 中閱讀本文,您可能正在使用預設螢幕編號 0。您可以使用組合鍵存取不同的螢幕。若要立即嘗試,請嘗試點擊全部+控制鍵+F1。這將帶您進入第一個控制台螢幕。若要返回圖形螢幕,請點擊全部+控制鍵+F7。許多人使用它作為無需關閉 X 即可進入全螢幕終端的方法。

此時,您可能會想「為什麼是 F1 和 F7?」。好吧,我很高興你問了,儘管你並沒有真正問。持有時全部+控制鍵、F1 到 F6 鍵是您的控制台螢幕。它們通常被稱為“虛擬終端”。每個控制台都有一個單獨的控制台實例在其上運行,您可以使用以下命令在它們之間來回切換全部+控制鍵+(F1 至 F6)。

一旦你通過了 F6,你就進入了 X 的領地。與虛擬終端非常相似,以 F7 開頭的每個螢幕都是 X 的單獨實例,它可以運行自己的程序,獨立於其他螢幕。因此,我們現在要做的就是進行設置,以便在下一個畫面中啟動其他桌面環境。

設定第二個螢幕

對於初學者,我們需要安裝您想要在第二個顯示器上運行的任何視窗管理器或桌面環境。我將採取一個不會讓任何人感到驚訝的舉動推薦窗戶製造商。在本文的其餘部分中,我將假設您在預設配置下執行 Ubuntu,並且您要使用的桌面環境是 Window Maker。

安裝 Window Maker(或您喜歡的任何其他桌面)後,我們需要做的第一件事是在您的家中開啟/建立檔案「.xinitrc」。當從命令列啟動 X 時,它會讀取此檔案來決定何時需要執行什麼X開始。因此,在您的主目錄中開啟或建立檔案“.xinitrc”,然後新增以下行:

exec wmaker

並保存。

運行第二個桌面

現在我們正處於主要活動中。開啟命令提示字元並輸入:

startx -- :1

這將告訴 X 啟動並使用顯示編號 1(而不是您可能用作主桌面的預設值 0)。如果一切順利,您會發現自己看到的是預設(而且有點難看)的 Window Maker 基本桌面。若要切換回主桌面,請使用全部+控制鍵+F7。返回 Window Maker 是全部+控制鍵+F8。如果事情進展不順利,請參閱下面的故障排除部分。

全部+控制鍵+F7= 侏儒桌面

全部+控制鍵+F8= Window Maker 桌面

故障排除

X:使用者無權運行 X 伺服器,正在中止。

這是一個配置問題,而且很容易解決。以 root 身分開啟以下檔案:

sudo gedit /etc/X11/Xwrapper.config

改變

allowed_users=console

allowed_users=anybody

我不能聲稱對 X 的程式設計有足夠的了解,無法對可能存在或可能不存在的潛在安全問題做出任何有根據的陳述,但它解決了問題。

X:客戶端 1 被本機拒絕

另一個簡單的修復方法,只需刪除主目錄中檔案名稱以“.Xauthority”開頭的所有檔案即可

您可以重複此過程來添加您可能想要的任何其他桌面環境,只需更改1

startx -- :1

2,3等等,功能鍵還蠻多的!