什么是用户界面子系统、它们的组件和职责?

Bla*_*erX 8 desktop window-manager desktop-environment

我试图了解负责用户界面的不同子系统、引用它们的术语以及它们的结构;到目前为止,我知道有:

在顶层:

台式机?(kde、gnome 等)

然后我们有:

  • 显示管理器(也称为桌面管理器或桌面环境)
  • 窗口管理器
  • 还要别的吗?

我正在把它变成一个社区维基,我希望它成为*所有(从用户角度)关于 Linux 中的用户界面子系统的知识的中心;我想知道的是每个组件的组成部分是什么,每个组件的职责是什么,即我想知道以下内容:

  • 究竟是什么负责全局快捷键,当我打开“运行应用程序”对话框时,谁在做,当我按下一个键显示桌面,运行终端,最大化窗口等,谁正在捕获并将其发送到正确的窗口;
  • 谁负责绘制桌面、工作区等。
  • 哪些环境变量可以为我提供有关这些组件的信息
  • “主菜单”是子系统还是子系统的组件?

编译一个最流行的桌面/子系统列表也很好,每个桌面/子系统下运行哪些,你能混合和匹配桌面/桌面环境/窗口管理器等吗?

最后,我如何知道哪些桌面/子系统实际上在系统上运行(活动?),不同的用户可以有不同的子系统吗?

Jan*_*anC 5

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

显示管理器负责图形登录,并决定(或让您选择)要运行的会话。或者什么会话* s * 如果您选择“切换用户”菜单选项。

桌面环境基本上是程序(显示管理器、窗口管理器、会话管理器、面板、配置工具等)和库(例如 Gtk)的集合,旨在提供一致且集成的工作环境。

窗口管理器管理窗口:放置它们的位置、移动它们、调整它们的大小、最小化/最大化它们、平铺它们等)。它还处理做这些事情的快捷方式。在某些情况下,窗口管理器还会绘制窗口的边框,在其他情况下,此任务由“窗口装饰器”负责。

GNOME 中的“运行应用程序”对话框是 的一部分gnome-panel,但在另一个 DE 中它可能是环境的另一部分。

谁负责油漆窗户等取决于; 如果使用了“合成器”(通常是窗口管理器的一部分,例如在 Compiz 中),则合成器会在屏幕上绘制窗口,否则(过去通常如此)由 X 服务器执行此操作。

主菜单由 gnome-panel 的一部分放在屏幕上,但使用的数据来自其中的一堆文件/usr/share/applications/(可能与您家中的等效目录结合以进行个人更改)。这些文件具有由 FreeDesktop.org(不同 DE 在公共基础设施上协作的平台)定义的结构,以便 GNOME 和 KDE 了解相同的程序(但仍然可以以不同的方式显示它们,并且在某些情况下优先考虑“本地”程序超过“外国”的)。

是的,不同的用户可以使用不同的会话配置(甚至可以定义自己的会话配置)。在 GDM 中,尝试使用会话下拉菜单以获取可用选项。

此外,可以混合和匹配多个组件,但这有时会导致合作减少和工作方式的“流畅性”损失。一个众所周知的交换事物的例子当然是 Compiz,如果你想要漂亮的桌面效果,它会取代 Metacity。但是还有很多其他的变化是可能的。