GUI 的元件如何在 Linux 中運作?

GUI 的元件如何在 Linux 中運作?

至少有幾個基本組成部分:

-server (to talk to drivers and listen for input)
-desktop environment (?)
-windows manager (manages apps boarders, size, position, etc) 
-other polishing apps (menus, clocks, icons)

那麼什麼可以追蹤滑鼠的位置以及其他互動活動呢?

如果其中一些元件遺失,會發生什麼情況,比如說我在沒有視窗管理器或桌面環境的情況下運行 Firefox,它會在沒有滑鼠的情況下全螢幕運行嗎?

我如何從終端完全啟動和停止圖形使用者介面?

謝謝

答案1

滑鼠遊標由圖形伺服器管理 - 客戶端接收輸入事件,但不需要自己繪製指標。

視窗也是如此 – 一般的「多視窗」概念是核心 X11 協議的一部分,因此您仍然可以在沒有視窗管理器的情況下在 X11 中運行應用程序,但它們將是無邊框的,您將無法移動或調整它們的大小。預設的“無 WM”焦點模式是焦點跟隨滑鼠。

(在 Wayland 中,視窗管理器與圖形伺服器是相同的進程。此外,在大多數 Wayland 環境中(甚至一些 X11 環境,如 GNOME 3),視窗裝飾通常由客戶端自己繪製,因此線條有點模糊。)


「桌面環境」不是一個元件。它描述了一個收藏組件數量-除其他外,DE 包括:

  • 視窗管理器和一些 shell UI(例如桌面、面板等)——這可能是 GNOME 3 或 e17 中的單一進程,也可能是 Xfce 中彼此完全獨立的進程;
  • 也許是設定管理器(如 gnome-settings-daemon),用於執行各種任務,例如電源設定或顯示熱插拔;
  • 和一個會話管理器來實際啟動所有內容 - 這是由 DM 或 startx 啟動的“初始”進程,終止它會導致硬註銷。

此外,DE還有一套基本的應用程式——檔案管理器、終端機、文字編輯器、系統設定;您可以在 Windows 中的「附件」下看到這些內容。


有兩種啟動圖形伺服器的方法 - 透過顯示管理器或手動。

常見的顯示管理器有GDM、LightDM、SDDM、KDM、Xdm——它們的主要任務是自動偵測圖形伺服器(即顯示器)何時可以啟動,通常也會顯示圖形登入提示。顯示管理器本身是一個通過service或管理的系統服務systemctl

手動方法是運行startx,它會啟動 Xorg 以及文件中列出的任何客戶端.xinitrc(可以是 DE 的會話管理器,或普通的舊 WM)。

(Xorg 可以完全手動啟動,但不會做任何有用的事情;因為它接管了螢幕,所以您必須從其他地方啟動初始客戶端。)

相關內容