Was sind die Subsysteme der Benutzeroberfläche, ihre Komponenten und Verantwortlichkeiten?

8

Ich versuche, die verschiedenen Subsysteme zu verstehen, die für die Benutzeroberfläche zuständig sind, die Terminologie, auf die sie verweisen sollen, und wie sie aufgebaut sind. Bisher weiß ich, dass es gibt:

Auf der obersten Ebene:

Desktops ? (kde, gnome usw.)

Dann haben wir:

  • ein Display Manager (auch als Desktop Manager oder Desktop-Umgebung bezeichnet)
  • Fenstermanager
  • noch etwas?

Ich mache dies zu einem Community-Wiki. Ich möchte, dass dies ein zentraler Ort für * alles ist, was (aus Anwendersicht) über Benutzeroberflächensubsysteme unter Linux zu wissen ist. Was ich wissen möchte, ist, was die Komponenten von jedem sind und was die Verantwortlichkeiten von jedem sind, dh ich möchte Dinge wissen wie:

  • Was genau ist für die globalen Tastenkombinationen verantwortlich, wenn ich das Dialogfeld "Anwendung ausführen" öffne, wer das tut, wenn ich eine Taste drücke, um den Desktop anzuzeigen, ein Terminal auszuführen, ein Fenster zu maximieren usw., wer erfasst das und schicke es zum rechten Fenster;
  • Wer ist für das Zeichnen des Desktops, der Arbeitsbereiche usw. verantwortlich?
  • Welche Umgebungsvariablen können mir Informationen zu diesen Komponenten geben?
  • Ist das "Hauptmenü" ein Subsystem oder eine Komponente eines Subsystems?

Es wäre auch schön, eine Liste der beliebtesten Desktops / Subsysteme zusammenzustellen, unter denen jeweils ausgeführt wird. Können Sie Desktops / Desktop-Umgebungen / Fenstermanager usw. mischen und anpassen?

Wie kann ich schließlich feststellen, welche Desktops / Subsysteme tatsächlich auf dem System ausgeführt werden (aktiv?). Können verschiedene Benutzer jeweils ein anderes Subsystem haben?

BlackTigerX
quelle

Antworten:

5

Erstens ist ein Display Manager (oder DM, z. B. xdm, gdm, kdm) nicht dasselbe wie eine Desktop-Umgebung (oder DE, z. B. GNOME, KDE, XFCE).

Der Display Manager kümmert sich um die grafische Anmeldung und entscheidet (oder lässt Sie auswählen), welche Sitzung ausgeführt werden soll. Oder welche Sitzung * s *, falls Sie die Menüoption "Benutzer wechseln" wählen.

Eine Desktop-Umgebung ist im Grunde eine Sammlung von Programmen (Anzeigemanager, Fenstermanager, Sitzungsmanager, Bedienfelder, Konfigurationstools usw.) und Bibliotheken (z. B. Gtk), die eine konsistente und integrierte Arbeitsumgebung bieten sollen.

Ein Fenstermanager verwaltet Fenster: Wo werden sie platziert, verschoben, in der Größe geändert, minimiert / maximiert, gekachelt usw.). Es behandelt auch die Verknüpfungen, um diese Dinge zu tun. In einigen Fällen malt der Fenstermanager auch die Ränder von Fenstern, in anderen Fällen wird diese Aufgabe an einen "Fensterdekorateur" übergeben.

Das Dialogfeld "Anwendung ausführen" in GNOME ist Teil von gnome-panel, in einem anderen DE kann es jedoch auch ein anderer Teil der Umgebung sein.

Wer für das Streichen von Fenstern usw. zuständig ist, hängt davon ab; Wenn ein "Compositor" verwendet wird (häufig Teil des Fenstermanagers, z. B. in Compiz), malt der Compositor die Fenster auf dem Bildschirm, andernfalls (wie in der Vergangenheit üblich) ist dies der X-Server.

Die Hauptmenüs werden von einem Teil des Gnome-Panels auf dem Bildschirm angezeigt, aber die verwendeten Daten stammen aus einer Reihe von Dateien in /usr/share/applications/(möglicherweise kombiniert mit einem entsprechenden Verzeichnis in Ihrem Haus für persönliche Änderungen). Diese Dateien haben eine von FreeDesktop.org definierte Struktur (eine Plattform, auf der verschiedene DEs an einer gemeinsamen Infrastruktur zusammenarbeiten können), sodass GNOME und KDE über dieselben Programme Bescheid wissen (sie jedoch immer noch unterschiedlich anzeigen und in einigen Fällen "native" Programme priorisieren können über "fremde").

Und ja, verschiedene Benutzer können eine andere Sitzungskonfiguration verwenden (und sogar ihre eigenen definieren). Probieren Sie in GDM das Dropdown-Menü Sitzung aus, um die verfügbaren Optionen anzuzeigen.

Darüber hinaus ist es möglich, mehrere Komponenten zu mischen und anzupassen. Dies führt jedoch manchmal zu einer geringeren Zusammenarbeit und einem Verlust an "Glätte" bei der Funktionsweise. Ein sehr bekanntes Beispiel für den Austausch von Dingen ist natürlich Compiz, das Metacity ersetzt, wenn Sie ausgefallene Desktop-Effekte wünschen. Es sind aber noch viele andere Änderungen möglich.

JanC
quelle
2

Ein Desktop-Manager verwaltet meistens Ihre Hardware, während ein Fenstermanager Ihre Software verwaltet. Beispielsweise werden Energieverwaltung, Bildschirmschoner, Systemleistung, Anmeldebildschirm usw. von einem Desktop-Manager verwaltet. Ihr Thema, Ihre Fensterplatzierung, Ihr Widget und Ihr Symbolsatz, Ihre Schriftarten usw. werden von Ihrem Fenstermanager verwaltet.

Sie können einen Fenstermanager ohne Desktop-Manager installieren. Es ist üblich, sich bei einem virtuellen Terminal anzumelden und dann ein Anmeldeskript Ihren Fenstermanager ausführen zu lassen, um Ihren "Desktop" zu starten.

Desktop-Manager sind GNOME, KDE und CDE. Fenstermanager sind Metacity, Openbox, Enlightenment, Awesome usw.

Um einige Ihrer Fragen direkt zu beantworten:

  • Der Fenstermanager ist hauptsächlich für die Tastenkombinationen auf dem Desktop zuständig.
  • Der Fenstermanager ist für das Zeichnen des Desktops, der Arbeitsbereiche, der Platzierungen von Fenstern usw. verantwortlich, wie zuvor erwähnt
  • Es gibt nicht viele Umgebungsvariablen für die GUI. Diese gelten normalerweise nur für die Shell hinter einem Terminal. Sie können jedoch ausführen setund envsich ein Bild davon machen, was eingestellt ist.
  • Ich bin mir nicht sicher, was Sie unter dem "Hauptmenü" als Subsystem oder Komponente eines Subsystems verstehen. Menüs sind Teil des Fenstermanagers.

Ich habe bereits einige beliebte Desktop- und Fenstermanager erwähnt. Weitere können über Google gefunden werden.

Abhängig von Ihrem Betriebssystem gibt es wahrscheinlich eine ASCII-Konfigurationsdatei, die Ihren bevorzugten Desktop definiert hat. Unter Debian GNU / Linux ist dies beispielsweise in der /etc/X11/default-display-managerKonfiguration definiert . Sie können auch 'ps -ef | ausführen grep user 'wobei' user 'der Name der Anmeldung eines Benutzers im System ist und Sie sehen, welche Prozesse aufgelistet sind und welcher grafische Desktop ausgeführt wird. Für mich ist es "Metacity".

Aaron Toponce
quelle