Window-Manager

使用者界面子系統、它們的組件和職責是什麼?

  • August 24, 2010

我試圖了解負責使用者界面的不同子系統、引用它們的術語以及它們的結構;到目前為止,我知道有:

在頂層:

台式機?(kde、gnome 等)

然後我們有:

  • 顯示管理器(也稱為桌面管理器或桌面環境)
  • 視窗管理器
  • 還要別的嗎?

我正在把它變成一個社區 wiki,我希望它成為*所有關於 Linux 中使用者界面子系統的知識(從使用者角度來看)的中心位置;我想知道的是每個組件的組成部分是什麼,每個組件的職責是什麼,即我想知道以下內容:

  • 究竟是什麼負責全域快捷鍵,當我打開“執行應用程序”對話框時,誰在執行此操作,當我按下一個鍵以顯示桌面、執行終端、最大化視窗等時,誰在擷取並將其發送到右側視窗;
  • 誰負責繪製桌面、工作區等。
  • 哪些環境變數可以為我提供有關這些組件的資訊
  • “主菜單”是子系統還是子系統的組件?

編譯最流行的桌面/子系統的列表也很好,每個系統下執行哪些,你可以混合和匹配桌面/桌面環境/視窗管理器等嗎?

最後,我如何判斷系統上實際執行(活動?)哪些桌面/子系統,不同的使用者可以有不同的子系統嗎?

首先,顯示管理器(或 DM,例如 xdm、gdm、kdm)與桌面環境(或 DE,例如 GNOME、KDE、XFCE)不同。

顯示管理器負責圖形登錄,並決定(或讓您選擇)要執行的會話。或者什麼 session* s * 如果您選擇“切換使用者”菜單選項。

桌面環境基本上是程序(顯示管理器、視窗管理器、會話管理器、面板、配置工具等)和庫(例如 Gtk)的集合,旨在提供一致且集成的工作環境。

視窗管理器管理視窗:放置它們的位置、移動它們、調整它們的大小、最小化/最大化它們、平鋪它們等)。它還處理執行這些操作的快捷方式。在某些情況下,視窗管理器還會繪製視窗的邊框,在其他情況下,此任務會交給“視窗裝飾器”。

GNOME 中的“執行應用程序”對話框是 的一部分gnome-panel,但在另一個 DE 中,它可能是環境的另一部分。

誰負責粉刷窗戶等取決於;如果有一個“合成器”正在使用(通常是視窗管理器的一部分,例如在 Compiz 中),那麼合成器會在螢幕上繪製視窗,否則(就像過去一樣)它是 X-server 做的。

主菜單由 gnome-panel 的一部分顯示在螢幕上,但使用的數據來自其中的一堆文件/usr/share/applications/(可能與您家中的等效目錄組合以進行個人更改)。這些文件具有由 FreeDesktop.org(不同 DE 在公共基礎設施上協作的平台)定義的結構,因此 GNOME 和 KDE 知道相同的程序(但仍然可以以不同方式顯示它們,並且在某些情況下優先考慮“本機”程序超過“外國”的)。

是的,不同的使用者可以使用不同的會話配置(甚至可以定義他們自己的)。在 GDM 中,嘗試使用會話下拉菜單來選擇可用的選項。

此外,可以混合和匹配多個組件,但這有時會導致合作減少,並失去工作方式的“流暢性”。Compiz 是一個眾所周知的例子,如果你想要精美的桌面效果,它會取代 Metacity。但是還有很多其他可能的變化。

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