Kapitel 7. GUI-System

Inhaltsverzeichnis

7.1. GUI-Arbeitsplatzumgebung
7.2. GUI-Kommunikationsprotokoll
7.3. GUI-Infrastruktur
7.4. GUI-Anwendungen
7.5. User directories
7.6. Schriften
7.6.1. Basis-Schriftarten
7.6.2. Schriftenrasterung
7.7. Sandbox
7.8. Arbeitsplatz-Fernzugriff (Remote Desktop)
7.9. X-Server-Verbindungen
7.9.1. Lokale Verbindung zum X-Server
7.9.2. Fernverbindung auf den X-Server
7.9.3. Chroot-Verbindung zum X-Server
7.10. Zwischenablage

Im Debian-System stehen mehrere voll ausgestattete grafische GUI-Arbeitsplatzumgebungen zur Auswahl:


[Tipp] Tipp

Paketabhängigkeiten, die durch ein Programmgruppen-Metapaket (task-*) ausgewählt wurden, könnten nicht mehr synchron sein zu den letzten Versionsübergängen in Debian Unstable/Testing. Für task-gnome-desktop beispielsweise müssen Sie eventuell die Paketauswahl wie folgt anpassen:

  • Starten Sie aptitude(8) mit sudo aptitude -u.

  • Wählen Sie "Tasks" aus und drücken Sie "Enter".

  • Wählen Sie "Endbenutzer" aus und drücken Sie "Enter".

  • Wählen Sie "GNOME" aus und drücken Sie "Enter".

  • Wählen Sie task-gnome-desktop aus und drücken Sie "Enter".

  • Wählen Sie "Hängt ab von" aus und drücken Sie "m" (manuell installiert).

  • Wählen Sie "Empfiehlt" aus und drücken Sie "m" (manuell installiert).

  • Wählen Sie "task-gnome-desktop" aus und drücken Sie "-" (entfernen).

  • Anpassen ausgewählter Pakete bei gleichzeitigem Entfernen von problematischen Paketen, die Abhängigkeitskonflikte auslösen

  • Drücken Sie "g", um die Installation/Aktualisierung zu starten.

Dieser Abschnitt behandelt die Standard-Arbeitsplatzumgebung von Debian: task-gnome-desktop, die GNOME unter wayland bereitstellt.

Beim GNOME-Desktop verfügbare GUI-Kommunikationsprotokolle:

Bitte besuchen Sie die freedesktop.org-Seite für Infos zu Unterschieden zwischen Wayland und der X-Window-Architektur.

Aus Sicht des Benutzers können die Unterschiede wie folgt zusammengefasst werden:

  • Wayland ist ein rechner-internes GUI-Kommunikationsprotokoll: neu, einfacher, schneller, keine setuid-root-Binärdatei;

  • X-Window ist ein netzwerkfähiges GUI-Kommunikationsprotokoll: traditionell, komplex, langsamer, hat eine setuid-root-Binärdatei.

Betreffend Anwendungen, die das Wayland-Protokoll verwenden: der Zugriff auf deren Bildschirminhalte von einem fernen Rechner wird unterstützt durch VNC und RDP. Siehe Abschnitt 7.8, „Arbeitsplatz-Fernzugriff (Remote Desktop)“.

Moderne X-Server enthalten die MIT Shared Memory Extension und kommunizieren über gemeinsam genutzten Speicher (shared memory) mit den lokalen X-Clients. So wird der netzwerk-transparente Xlib-Interprozess-Kommunikationskanal umgangen und die Performance erhöht. Diese Situation war der Hintergrund für die Erstellung von Wayland als ausschließlich lokales GUI-Kommunikationsprotokoll.

Über das xeyes-Programm - vom GNOME-Terminal aus gestartet - können Sie das GUI-Kommunikationsprotokoll für jede GUI-Anwendung getrennt kontrollieren.

 $ xeyes
  • Wenn der Mauscursor auf einer Anwendung steht, die das Wayland Display-Server-Protokoll verwendet - wie z.B. das "GNOME-Terminal", bewegen sich die Augen nicht zusammen mit dem Mauscursor.

  • Befindet sich der Mauscursor auf einer Anwendung, die das X-Window-System Core-Protokoll nutzt - wie "xterm", bewegen sich die Augen synchron zum Mauscursor; hier zeigt sich die nicht-isolierte Natur der X-Window-Architektur.

Mit Stand April 2021 wurden viele populäre GUI-Anwendungen wie GNOME- und LibreOffice (LO)-Anwendungen auf das Wayland Display-Server-Protokoll migriert. Soweit ich das sehe, verwenden z.B. xterm, gitk, chromium, firefox, gimp, dia und KDE-Anwendungen noch das X-Window-System Core-Protokoll.

[Anmerkung] Anmerkung

Sowohl für xwayland unter Wayland wie auch für das native X-Window-System sollte die alte X-Server-Konfigurationsdatei "/etc/X11/xorg.conf" nicht auf dem System vorhanden sein. Die Grafikausgabe- und Eingabegeräte werden jetzt vom Kernel über DRM, KMS und udev konfiguriert. Der native X-Server wurde entsprechend angepasst, um diese zu verwenden. Weiteres dazu unter "modedb default video mode support" in der Dokumentation des Linux-Kernels.

Hier einige erwähnenswerte GUI-Infrastruktur-Pakete für die GNOME-Umgebung unter Wayland:


Hierbei bedeutet "[auto]", dass diese Pakete automatisch installiert werden, wenn Sie bei der Installation die Programmgruppe task-gnome-desktop auswählen.

[Tipp] Tipp

gnome-tweaks ist das unverzichtbare Konfigurationswerkzeug für GNOME. Zum Beispiel:

  • können Sie eine "Über-Verstärkung" der Sound-Lautstärke erzwingen (unter "Allgemein");

  • können Sie erzwingen, dass die Feststelltaste ("Caps-Lock") zu "Esc" wird (unter "Tastatur & Maus" -> "Tastatur" -> "Zusätzliche Layout-Optionen").

[Tipp] Tipp

Detail features of GNOME desktop environment can be configured with utilities started by typing "settings", "tweaks", or "extensions" after pressing Super-key.

Viele nützliche GUI-Anwendungen sind jetzt in Debian verfügbar. Die Installation von Paketen wie scribus (aus KDE) innerhalb der GNOME-Arbeitsplatzumgebung ist absolut akzeptabel, da eine entsprechende Funktionalität in GNOME nicht enthalten ist. Allerdings könnte die Installation von vielen Paketen mit identischer Funktion Ihr System aufblähen.

Hier eine Liste von GUI-Anwendungen, die mir ins Auge gestochen sind:

Tabelle 7.3. Liste erwähnenswerter GUI-Anwendungen

Paket Popcon Paketgröße Art Beschreibung
evolution V:30, I:239 486 GNOME persönliches Informationsmanagement (Groupware und E-Mail)
thunderbird V:48, I:119 224760 GTK E-Mail-Client (Mozilla Thunderbird)
kontact V:1, I:12 2208 KDE persönliches Informationsmanagement (Groupware und E-Mail)
libreoffice-writer V:117, I:435 31474 LO Schreibprogramm
abiword V:1, I:8 3542 GNOME Schreibprogramm
calligrawords V:0, I:7 6097 KDE Schreibprogramm
scribus V:1, I:16 31345 KDE Desktop-Publishing-Editor zum Ändern von PDF-Dateien
glabels V:0, I:3 1338 GNOME Aufkleber-Editor
libreoffice-calc V:111, I:432 26009 LO Tabellenkalkulation
gnumeric V:4, I:14 9910 GNOME Tabellenkalkulation
calligrasheets V:0, I:5 11396 KDE Tabellenkalkulation
libreoffice-impress V:69, I:429 2646 LO Präsentation
calligrastage V:0, I:5 5339 KDE Präsentation
libreoffice-base V:26, I:121 5003 LO Datenbank-Verwaltung
kexi V:0, I:1 7118 KDE Datenbank-Verwaltung
libreoffice-draw V:72, I:430 10312 LO Vektorgrafik-Editor
inkscape V:15, I:112 99800 GNOME Vektorgrafik-Editor
karbon V:0, I:6 3610 KDE Vektorgrafik-Editor
dia V:2, I:22 3741 GTK Ablaufschema- und Diagramm-Editor
gimp V:50, I:252 19304 GTK Bitmapgrafik-Editor
shotwell V:17, I:255 6263 GTK Digitalfoto-Verwaltung
digikam V:1, I:9 293 KDE Digitalfoto-Verwaltung
darktable V:4, I:13 30554 GTK Leuchttisch und Dunkelkammer für Photographen
planner V:0, I:4 1394 GNOME Projektverwaltung
calligraplan V:0, I:2 19013 KDE Projektverwaltung
gnucash V:2, I:8 28928 GNOME Finanzverwaltung/Homebanking-Programm
homebank V:0, I:2 1218 GTK Finanzverwaltung/Homebanking-Programm
lilypond V:0, I:7 16092 - Notensatzprogramm
kmymoney V:0, I:2 13937 KDE Finanzverwaltung/Homebanking-Programm
librecad V:1, I:15 8963 Qt-Appl. System für computerunterstützte Konstruktion (CAD, 2D)
freecad I:18 36 Qt-Appl. System für computerunterstützte Konstruktion (CAD, 3D)
kicad V:3, I:14 236461 GTK Software zum Entwurf von Schaltplänen und Platinen
xsane V:12, I:144 2339 GTK Scanner-Frontend
libreoffice-math V:51, I:432 1898 LO mathematischer Gleichungs-/Formel-Editor
calibre V:6, I:28 63385 KDE E-Book-Konvertierer und Bibliotheksverwaltung
fbreader V:1, I:9 3783 GTK E-Book-Reader
evince V:92, I:314 941 GNOME Dokumentenbetrachter (pdf)
okular V:40, I:123 17728 KDE Dokumentenbetrachter (pdf)
x11-apps V:31, I:463 2460 reine X-Appl. xeyes(1), usw.
x11-utils V:192, I:566 651 reine X-Appl. xev(1), xwininfo(1), usw.

Default names for user directories such as "~/Desktop", "~/Documents", ..., used by the Desktop environment depend on the locale used for the system installation. You can reset them to the English ones by:

 $ LANGUAGE=C xdg-user-dirs-update --force 

Then you manually move all the data to the newer directories. See xdg-user-dirs-update(1).

You can also set them to any names by editing "~/.config/user-dirs.dirs". See user-dirs.dirs(5).

Viele nützliche skalierbare Schriftarten sind für Debian-Nutzer verfügbar. Anliegen der Benutzer hierbei sind, wie sie Redundanzen (doppelt vorhandene Schriften) vermeiden können und wie sie Teile von installierten Schriftarten deaktivieren können. Ansonsten könnten unnötigerweise verfügbare Schriften die Menüs der GUI-Anwendungen aufblähen.

Das Debian-System verwendet die FreeType 2.0-Bibliothek zur Rasterung vieler skalierbarer Schriftformate für Bildschirmanzeige und Druck:

The following table is compiled in the hope to help users to chose appropriate scalable fonts with clear understanding of the metric compatibility and the glyph coverage. Most fonts cover all Latin, Greek, and Cyril characters. The final choice of activated fonts can also be affected by your aesthetics. These fonts can be used for the screen display or for the paper printing.

Tabelle 7.4. Liste erwähnenswerter TrueType- und OpenType-Schriftarten

Paket Popcon Größe sans serif mono Hinweise zur Schriftart
fonts-cantarell V:216, I:306 572 59 - - Cantarell (GNOME 3; Bildschirmanzeige)
fonts-noto I:153 31 61 63 40 Noto-Schriften (Google; mehrsprachig inkl. CJK)
fonts-dejavu I:421 35 58 68 40 DejaVu (GNOME 2; MCM:Verdana, erweiterte Bitstream Vera)
fonts-liberation2 V:130, I:427 15 56 60 40 Liberation-Schriften für LibreOffice (Red Hat; MCMATC)
fonts-croscore V:20, I:40 5274 56 60 40 Chrome OS: Arimo, Tinos und Cousine (Google; MCMATC)
fonts-crosextra-carlito V:21, I:131 2696 57 - - Chrome OS: Carlito (Google; MCM:Calibri )
fonts-crosextra-caladea I:128 347 - 55 - Chrome OS: Caladea (Google; MCM:Cambria ) (nur Latein)
fonts-freefont-ttf V:76, I:218 14460 57 59 40 GNU FreeFont (erweiterte URW Nimbus)
fonts-quicksand V:123, I:438 392 56 - - Debian task-desktop, Quicksand (Bildschirmanzeige, nur Latein)
fonts-hack V:24, I:120 2508 - - 40 P Eine Schriftart, die für Quellcode-Hack entworfen wurde (Facebook)
fonts-sil-gentiumplus I:32 14345 - 54 - Gentium SIL
fonts-sil-charis I:27 6704 - 59 - Charis SIL
fonts-urw-base35 V:167, I:472 15560 56 60 40 URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu V:2, I:5 4339 58 - 33 P Ubuntu-Schriften (Bildschirmanzeige)
fonts-terminus V:0, I:3 452 - - 33 Coole Retro-Terminal-Schriften
ttf-mscorefonts-installer V:1, I:49 85 56? 60 40 Downloader für nicht-freie Microsoft-Schriften (siehe unten)

Hierbei:

  • steht "MCM" für "metrisch kompatibel mit durch Microsoft bereitgestellte Schriften";

  • steht "MCMATC" für "metrisch kompatibel mit durch Microsoft bereitgestellte Schriften: Arial, Times New Roman, Courier New";

  • steht "MCAHTC" für "metrisch kompatibel mit durch Adobe bereitgestellte Schriften: Helvetica, Times, Courier";

  • stehen Zahlen in den Schrifttyp-Spalten für die ungefähre Weite von "M" der gleichen Punktgrößen-Schrift;

  • steht "P" in einer Mono-Schrifttyp-Spalte für die Eignung in der Programmierung (mit einem klaren Unterschied bei "0"/"O" und "1"/"I"/"l").

  • Das ttf-mscorefonts-installer-Paket lädt Microsofts "Core fonts for the Web" herunter und installiert Arial, Times New Roman, Courier New, Verdana, ... . Diese Schriftarten sind nicht-freie Daten.

Viele freie lateinische Schriftarten haben eine Abstammungslinie zur URW Nimbus-Familie oder zu Bitstream Vera.

[Tipp] Tipp

Wenn Ihr Gebietsschema Schriften erfordert, die von den oben genannten Schriften nicht gut abgedeckt werden, verwenden Sie bitte aptitude, um nach Tasks-Paketen zu suchen (unter "Tasks" -> "Lokalisierung"). Die Schriftpakete, die in dem zu Ihrem Gebietsschema gehörigen Lokalisierungs-Task zu finden sind (unter "Hängt ab von" oder "Empfiehlt"), sind die primär für Sie interessanten Kandidaten.

Debian verwendet FreeType für die Rasterung von Schriften. Deren Infrastruktur zur Schriftenauswahl wird von der Schriften-Konfigurationsbibliothek Fontconfig bereitgestellt.


[Tipp] Tipp

Einige Schriftpakete wie fonts-noto* installieren zu viele Schriftarten. Auch möchten Sie vielleicht einige Schriftpakete installiert haben, aber die zugehörigen Schriftarten sollen normalerweise trotzdem nicht aktiv sein. Doppelte Glyphen sind für einige Unicode-Codepoints aufgrund der Han-Vereinheitlichung zu erwarten, und durch eine unkonfigurierte Fontconfig-Bibliothek könnte es dazu kommen, dass unerwünschte Glyphen ausgewählt werden. Sehr nervige Fälle sind dabei "U+3001 IDEOGRAPHIC COMMA" und "U+3002 IDEOGRAPHIC FULL STOP" in CJK-Ländern. Sie können solche Problematiken ganz einfach vermeiden, indem Sie die Verfügbarkeit von Schriftarten über den grafischen Schriften-Manager font-manager konfigurieren.

Der Schriftarten-Konfigurationsstatus kann auch über die Befehlszeile abgefragt werden:

  • "fc-match(1)" zeigt, welche fontconfig-Schriften Standardeinstellung sind;

  • "fc-list(1)" zeigt verfügbare fontconfig-Schriften.

Sie können den Schriftarten-Konfigurationsstatus auch über einen Texteditor konfigurieren, aber dies ist nicht trivial. Lesen Sie dazu fonts.conf(5).

Viele (meist grafische) Anwendungen unter Linux sind auch in binärer Form über Debian-fremde Quellen verfügbar:

[Warnung] Warnung

Binärdateien aus diesen Quellen könnten proprietäre, nicht-freie Software-Pakete enthalten.

Es gibt eine Existenzberechtigung für diese Binärformat-Distributionen auch unter Liebhabern Freier Software, die Debian nutzen, da auf diesem Wege ein sauberer Satz von Bibliotheken für jede Anwendung vom jeweiligen Upstream-Entwickler bereitgestellt werden kann, unabhängig von den ansonsten in Debian verfügbaren Versionen.

Das dem Nutzen von externen Binärdateien anhängende Risiko kann reduziert werden, indem eine Sandbox-Umgebung genutzt wird, die moderne Linux-Sicherheitsfunktionalitäten zum Einsatz bringt (siehe Abschnitt 4.7.5, „Linux Sicherheits-Funktionalitäten“):

  • Binärdateien von AppImage und einigen weiteren Upstream-Sites sollten Sie in firejail laufen lassen (bei manueller Konfiguration).

  • Binärdateien von FLATHUB sollten Sie in Flatpak laufen lassen. (Keine manuelle Konfiguration erforderlich.)

  • Binärdateien von Snapcraft sollten Sie in Snap laufen lassen. (Keine manuelle Konfiguration erforderlich. Kompatibel mit Daemon-Programmen.)

Das xdg-desktop-portal-Paket bietet eine standardisierte API-Schnittstelle für allgemeine Desktop-Funktionalitäten. Näheres unter xdg-desktop-portal (Flatpak) und xdg-desktop-portal (Snap) .


Diese Sandbox-Technologie ähnelt sehr den Apps auf Smartphone-Betriebssystemen, wo Apps mit eingeschränktem Ressourcenzugriff ausgeführt werden.

Einige große GUI-Anwendungen in Debian wie Webbrowser nutzen intern ebenfalls die Sandbox-Technologie, um sicherer zu werden.


Es gibt verschiedene Wege, um eine Anwendung auf einem fernen Rechner mit dem X-Server zu verbinden; dazu gehört auch xwayland auf dem lokalen Rechner.


Ein Zugriff auf den lokalen X-Server durch lokale Anwendungen, die das X-Core-Protokoll nutzen, kann über einen lokalen UNIX-Domain-Socket realisiert werden. Die Authentifizierung hierfür kann über die authority-Datei mittels Access-Cookies erfolgen. Der Speicherort der authority-Datei wird über die Umgebungsvariable "$XAUTHORITY" definiert, und das X-Display über die "$DISPLAY"-Umgebungsvariable. Da diese normalerweise automatisch gesetzt werden, ist keine spezielle Aktion dafür nötig; für "gitk" starten Sie z.B. einfach:

username $ gitk
[Anmerkung] Anmerkung

Für xwayland enthält XAUTHORITY einen Wert wie "/run/user/1000/.mutter-Xwaylandauth.YVSU30".

Der Zugriff von fern auf den lokalen X-Server mittels einer Anwendung, die das X-Core-Protokoll verwendet, wird über die Nutzung der X11-forwarding-Funktionalität unterstützt:

Mit dieser Methode kann die Anzeige eines fernen X-Clients dargestellt werden, als wäre sie lokal über einen UNIX-Domain-Socket verbunden.

Lesen Sie für Informationen zu SSH/SSHD Abschnitt 6.3, „Der Server für Fernzugriff (SSH) und Hilfsprogramme“.

[Warnung] Warnung

A remote TCP/IP connection to the X server is disabled by default on the Debian system for security reasons. Don't enable them by simply setting "xhost +" nor by enabling XDMCP connection, if you can avoid it.

Um Text in die Zwischenablage zu kopieren, lesen Sie Abschnitt 1.4.4, „Mausoperationen“.

Um Grafiken in die Zwischenablage zu kopieren, gehen Sie zu Abschnitt 11.6, „Werkzeuge für Grafikdaten“.

Auch einige CLI-Befehle können die Zwischenablage beeinflussen: