Kapitel 7. GUI-System

# Kapitel 7. GUI-System

## 7.1. GUI-Arbeitsplatzumgebung

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

Tabelle 7.1. Liste der Arbeitsplatzumgebungen

Programmgruppen-Paket | Popcon | Größe | Beschreibung
--- | --- | --- | ---
`task-gnome-desktop` | I:187 | 9 | GNOME-Arbeitsplatzumgebung
`task-xfce-desktop` | I:88 | 9 | Xfce-Arbeitsplatzumgebung
`task-kde-desktop` | I:93 | 6 | KDE Plasma-Arbeitsplatzumgebung
`task-mate-desktop` | I:31 | 9 | MATE-Arbeitsplatzumgebung
`task-cinnamon-desktop` | I:36 | 9 | Cinnamon-Arbeitsplatzumgebung
`task-lxde-desktop` | I:20 | 9 | LXDE-Arbeitsplatzumgebung
`task-lxqt-desktop` | I:17 | 9 | LXQt-Arbeitsplatzumgebung
`task-gnome-flashback-desktop` | I:9.9 | 6 | GNOME Flashback-Arbeitsplatzumgebung

| 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.

## 7.2. GUI-Kommunikationsprotokoll

Beim GNOME-Desktop verfügbare GUI-Kommunikationsprotokolle:

- Wayland (Display-Server-Protokoll) (nativ)

- X-Window-System Core-Protokoll (über `xwayland`)

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

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.

## 7.3. GUI-Infrastruktur

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

Tabelle 7.2. Liste erwähnenswerter GUI-Infrastruktur-Pakete

Paket | Popcon | Paketgröße | Beschreibung
--- | --- | --- | ---
`mutter` | V:1, I:24 | 215 | GNOMEs Fenster-Manager mutter [auto]
`xwayland` | V:249, I:329 | 2652 | Ein X-Server, der auf wayland läuft [auto]
`gnome-remote-desktop` | V:139, I:236 | 2453 | Remote-Desktop-Daemon für GNOME, der PipeWire verwendet [auto]
`gnome-tweaks` | V:16, I:228 | 1145 | Fortgeschrittene Konfigurationsoptionen für GNOME
`gnome-shell-extension-prefs` | V:7, I:121 | 73 | Werkzeug, um die GNOME-Shell-Extensions zu aktivieren/deaktivieren

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

| 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
Detail-Funktionen der GNOME-Desktop-Umgebung können mit Hilfsprogrammen konfiguriert werden, die Sie erreichen, indem Sie nach dem Drücken der `Super`-Taste "`settings`", "`tweaks`" oder "`extensions`" eingeben.

## 7.4. GUI-Anwendungen

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:25, I:225 | 489 | GNOME | persönliches Informationsmanagement (Groupware und E-Mail)
`thunderbird` | V:41, I:103 | 274581 | GTK | E-Mail-Client (Mozilla Thunderbird)
`kontact` | V:1.0, I:9.3 | 2360 | KDE | persönliches Informationsmanagement (Groupware und E-Mail)
`libreoffice-writer` | V:107, I:418 | 34123 | LO | Schreibprogramm
`abiword` | V:0.9, I:5.2 | 3596 | GNOME | Schreibprogramm
`calligrawords` | V:0.2, I:2.9 | 7134 | KDE | Schreibprogramm
`scribus` | V:1, I:12 | 32415 | KDE | Desktop-Publishing-Editor zum Ändern von PDF-Dateien
`glabels` | V:0.3, I:2.6 | 1283 | GNOME | Aufkleber-Editor
`libreoffice-calc` | V:104, I:415 | 28733 | LO | Tabellenkalkulation
`gnumeric` | V:3, I:11 | 9945 | GNOME | Tabellenkalkulation
`calligrasheets` | V:0.1, I:1.8 | 14012 | KDE | Tabellenkalkulation
`libreoffice-impress` | V:91, I:414 | 2485 | LO | Präsentation
`calligrastage` | V:0.1, I:1.8 | 6194 | KDE | Präsentation
`libreoffice-base` | V:21, I:69 | 5050 | LO | Datenbank-Verwaltung
`kexi` | V:0.06, I:0.86 | 7565 | KDE | Datenbank-Verwaltung
`libreoffice-draw` | V:91, I:414 | 11209 | LO | Vektorgrafik-Editor
`inkscape` | V:11, I:76 | 113353 | GNOME | Vektorgrafik-Editor
`karbon` | V:0.1, I:2.3 | 4004 | KDE | Vektorgrafik-Editor
`dia` | V:1, I:15 | 3846 | GTK | Ablaufschema- und Diagramm-Editor
`gimp` | V:41, I:214 | 32779 | GTK | Bitmapgrafik-Editor
`shotwell` | V:14, I:243 | 6334 | GTK | Digitalfoto-Verwaltung
`digikam` | V:1.5, I:8.6 | 325 | KDE | Digitalfoto-Verwaltung
`darktable` | V:4, I:11 | 35876 | GTK | Leuchttisch und Dunkelkammer für Photographen
`gnome-video-trimmer` | V:0.2, I:1.1 | 1665 | GNOME | lossless cutting of video files
`kdenlive` | V:3, I:22 | 19821 | KDE | non-linear video editor
`shotcut` | V:1.0, I:7.1 | 7943 | Qt-Appl. | non-linear video editor
`openshot-qt` | V:0.9, I:9.3 | 196007 | Qt-Appl. | non-linear video editor
`flowblade` | V:0.2, I:2.3 | 42213 | GTK | non-linear video editor
`planner` | V:0.1, I:3.2 | 1400 | GNOME | Projektverwaltung
`calligraplan` | V:0.1, I:1.8 | 23545 | KDE | Projektverwaltung
`gnucash` | V:2.3, I:7.2 | 29451 | GNOME | Finanzverwaltung/Homebanking-Programm
`homebank` | V:0.3, I:1.7 | 3194 | GTK | Finanzverwaltung/Homebanking-Programm
`kmymoney` | V:0.5, I:2.0 | 19289 | KDE | Finanzverwaltung/Homebanking-Programm
`frescobaldi` | V:0.2, I:1.5 | 11102 | Qt-Appl. | LilyPond sheet music text editor
`librecad` | V:1, I:12 | 9164 | Qt-Appl. | System für computerunterstützte Konstruktion (CAD, 2D)
`freecad` | V:1, I:19 | 112 | Qt-Appl. | System für computerunterstützte Konstruktion (CAD, 3D)
`kicad` | V:3, I:13 | 222895 | GTK | Software zum Entwurf von Schaltplänen und Platinen
`xsane` | V:8, I:129 | 1512 | GTK | Scanner-Frontend
`libreoffice-math` | V:87, I:417 | 1958 | LO | mathematischer Gleichungs-/Formel-Editor
`calibre` | V:7, I:26 | 69924 | KDE | E-Book-Konvertierer und Bibliotheksverwaltung
`fbreader` | V:0.6, I:6.0 | 3827 | GTK | E-Book-Reader
`evince` | V:72, I:282 | 942 | GNOME | Dokumentenbetrachter (pdf)
`okular` | V:41, I:129 | 4419 | KDE | Dokumentenbetrachter (pdf)
`x11-apps` | V:30, I:440 | 2461 | reine X-Appl. | xeyes(1), usw.
`x11-utils` | V:222, I:551 | 651 | reine X-Appl. | xev(1), xwininfo(1), usw.

## 7.5. Benutzerverzeichnisse

Die Standardnamen für Benutzerverzeichnisse wie "`~/Desktop`", "`~/Documents`", ... sind innerhalb der Desktop-Umgebung abhängig von der Locale, die für die Systeminstallation verwendet wurde, können also in eine andere Sprache als Englisch übersetzt sein. Sie können sie auf Englisch zurücksetzen mit:

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

Anschließend verschieben Sie alle Daten in die neuen Verzeichnisse. Siehe dazu xdg-user-dirs-update(1).

Sie können auch frei wählbare eigene Namen vergeben, indem Sie "`~/.config/user-dirs.dirs`" editieren. Näheres dazu in user-dirs.dirs(5).

## 7.6. Schriften

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:

- Type 1 (PostScript)-Schriften, die kubische Bézierkurven verwenden (nahezu veraltetes Format);

- TrueType-Schriften, die quadratische Bézierkurven verwenden (gute Wahl);

- OpenType-Schriften, die kubische Bézierkurven verwenden (beste Wahl).

### 7.6.1. Basis-Schriftarten

Die folgende Tabelle wurde erstellt in der Hoffnung, dass sie Nutzern hilft, passende skalierbare Schriftarten auszuwählen durch ein klares Verständnis der metrischen Kompatibilität und der Glyphenabdeckung. Die meisten Schriftenarten decken alle lateinischen, griechischen und kyrillischen Zeichen ab. Auch ästhetische Gründe könnten Einfluß darauf haben, welche Schriften Sie letztlich aktivieren. Diese Schriften können sowohl für die Bildschirmanzeige wie auch für den Druck genutzt werden.

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

Paket | Popcon | Größe | sans | serif | mono | Hinweise zur Schriftart
--- | --- | --- | --- | --- | --- | ---
fonts-cantarell | V:173, I:285 | 224 | 59 | - | - | Cantarell (GNOME 3; Bildschirmanzeige)
fonts-noto | I:151 | 30 | 61 | 63 | 40 | Noto-Schriften (Google; mehrsprachig inkl. CJK)
fonts-dejavu | I:384 | 34 | 58 | 68 | 40 | DejaVu (GNOME 2; MCM:Verdana, erweiterte Bitstream Vera)
fonts-liberation2 | V:44, I:168 | 15 | 56 | 60 | 40 | Liberation-Schriften für LibreOffice (Red Hat; MCMATC)
fonts-croscore | V:20, I:36 | 5260 | 56 | 60 | 40 | Chrome OS: Arimo, Tinos und Cousine (Google; MCMATC)
fonts-crosextra-carlito | V:20, I:91 | 2696 | 57 | - | - | Chrome OS: Carlito (Google; MCM:Calibri )
fonts-crosextra-caladea | V:12, I:85 | 347 | - | 55 | - | Chrome OS: Caladea (Google; MCM:Cambria ) (nur Latein)
fonts-freefont-ttf | V:79, I:203 | 14460 | 57 | 59 | 40 | GNU FreeFont (erweiterte URW Nimbus)
fonts-quicksand | V:207, I:447 | 392 | 56 | - | - | Debian task-desktop, Quicksand (Bildschirmanzeige, nur Latein)
fonts-hack | V:34, I:136 | 2507 | - | - | 40 P | Eine Schriftart, die für Quellcode-Hack entworfen wurde (Facebook)
fonts-sil-gentiumplus | V:0, I:28 | 14345 | - | 54 | - | Gentium SIL
fonts-sil-charis | V:1, I:28 | 6704 | - | 59 | - | Charis SIL
fonts-urw-base35 | V:190, I:528 | 15558 | 56 | 60 | 40 | URW Nimbus (Nimbus Sans, Roman No. 9 L, Mono L, MCAHTC)
fonts-ubuntu | V:2.2, I:4.7 | 4339 | 58 | - | 33 P | Ubuntu-Schriften (Bildschirmanzeige)
fonts-terminus | V:0.3, I:4.0 | 451 | - | - | 33 | Coole Retro-Terminal-Schriften
ttf-mscorefonts-installer | V:1, I:39 | 85 | 56? | 60 | 40 | Downloader für nicht-freie Microsoft-Schriften (siehe unten)

Hierbei gilt:

- 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
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.

### 7.6.2. Schriftenrasterung

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

Tabelle 7.5. Liste erwähnenswerter Pakete für Schriftumgebungen

Paket | Popcon | Größe | Beschreibung
--- | --- | --- | ---
`libfreetype6` | V:583, I:997 | 1018 | FreeType-Bibliothek zur Schriftenrasterung
`libfontconfig1` | V:573, I:810 | 344 | Fontconfig - Schriften-Konfigurationsbibliothek
`fontconfig` | V:464, I:692 | 415 | `fc-*`: Konsolen-Befehle für Fontconfig
`font-manager` | V:2.4, I:7.0 | 1116 | Font Manager: GUI-Programm für Fontconfig
`nautilus-font-manager` | V:0.11, I:0.43 | 38 | Nautilus-Erweiterung für Font Manager

| 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).

## 7.7. Sandbox

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

- AppImage -- Linux apps that run anywhere

- FLATHUB -- Apps for Linux, right here

- snapcraft -- The app store for Linux

| 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) .

Tabelle 7.6. Liste erwähnenswerter Pakete für Sandbox-Umgebungen

Paket | Popcon | Größe | Beschreibung
--- | --- | --- | ---
`flatpak` | V:107, I:115 | 9278 | Rahmenwerk zur Verteilung von Desktop-Anwendungen basierend auf Flatpak
`gnome-software-plugin-flatpak` | V:30, I:42 | 283 | Flatpak-Unterstützung für GNOME Software
`snapd` | V:61, I:64 | 78931 | Daemon und Werkzeuge, um Snap-Pakete zu aktivieren
`gnome-software-plugin-snap` | V:1.5, I:2.3 | 145 | Snap-Support für GNOME Software
`xdg-desktop-portal` | V:365, I:434 | 2291 | Desktop-Integrations-Portal für Flatpak und Snap
`xdg-desktop-portal-gtk` | V:329, I:432 | 715 | xdg-desktop-portal-Backend für gtk (GNOME)
`xdg-desktop-portal-kde` | V:79, I:111 | 3324 | xdg-desktop-portal-Backend für Qt (KDE)
`xdg-desktop-portal-wlr` | V:2.3, I:5.4 | 159 | xdg-desktop-portal-Backend für wlroots (Wayland)
`firejail` | V:1.3, I:4.7 | 1827 | das Sicherheits-Sandbox-Programm firejail zur Nutzung mit AppImage

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.

## 7.8. Arbeitsplatz-Fernzugriff (Remote Desktop)

Tabelle 7.7. Liste erwähnenswerter Server für Fernzugriff

Der Zugriff von fern auf den Arbeitsplatz sowie auf Anwendungen, die Wayland nutzen und auf dem fernen Rechner laufen, wird von GNOME Remote Desktop auf dem fernen Rechner bereitgestellt und über VNC oder RDP an den lokalen Client übertragen.

Zugriff auf die Desktop-Fähigkeiten aller virtuellen Maschinen mit QEMU wird über das SPICE (the Simple Protocol for Independent Computing Environments)-Protokoll unterstützt.

Paket | Popcon | Größe | Protokolle | Beschreibung
--- | --- | --- | --- | ---
`gnome-remote-desktop` | V:139, I:236 | 2453 | RDP | GNOME Remote Desktop-Server
`xrdp` | V:27, I:29 | 4669 | RDP | xrdp, Remote-Desktop-Protocol (RDP) Server
`x11vnc` | V:9, I:44 | 1863 | RFB (VNC) | x11vnc, Remote-Framebuffer-Protocol (VNC) Server
`tigervnc-standalone-server` | V:5, I:15 | 2960 | RFB (VNC) | TigerVNC, Remote-Framebuffer-Protocol (VNC) Server
`gnome-connections` | V:6, I:139 | 1695 | RDP, RFB (VNC) | GNOME Remote-Desktop-Client
`vinagre` | V:1, I:23 | 4249 | RDP, RFB (VNC), SPICE, SSH | Vinagre: GNOME-Client für Arbeitsplatz-Fernzugriff
`remmina` | V:16, I:62 | 983 | RDP, RFB (VNC), SPICE, SSH, ... | Remmina: GTK-Client für Arbeitsplatz-Fernzugriff
`krdc` | V:2, I:14 | 4144 | RDP, RFB (VNC) | KRDC: KDE-Client für Arbeitsplatz-Fernzugriff
`virt-viewer` | V:3, I:38 | 1278 | RFB (VNC), SPICE | Virtual Machine Manager: grafischer Display-Client von Gastbetriebssystemen

## 7.9. X-Server-Verbindungen

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.

Tabelle 7.8. Liste der Verbindungsmethoden zum X-Server

Paket | Popcon | Größe | Befehl | Beschreibung
--- | --- | --- | --- | ---
`openssh-server` | V:772, I:820 | 3594 | `sshd` mit der Option `X11-forwarding` | SSH-Server (sicher)
`openssh-client` | V:657, I:996 | 3521 | `ssh -X` | SSH-Client (sicher)
`xauth` | V:189, I:973 | 81 | `xauth` | Werkzeug für die X-authority-Datei
`x11-xserver-utils` | V:304, I:528 | 559 | `xhost` | Server-Zugriffskontrolle für X

### 7.9.1. Lokale Verbindung zum X-Server

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
Für `xwayland` enthält `XAUTHORITY` einen Wert wie "`/run/user/1000/.mutter-Xwaylandauth.YVSU30`".

### 7.9.2. Fernverbindung auf den X-Server

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:

- Öffnen Sie `gnome-terminal` auf dem lokalen Rechner.

- Führen Sie ssh(1) mit der Option `-X` wie folgt aus, um eine Verbindung mit der fernen Seite aufzubauen:

      localname @ localhost $ ssh -q -X loginname@remotehost.domain
      Password:

- Starten Sie auf der fernen Seite einen X-Anwendungsbefehl, z.B. "`gitk`":

      loginname @ remotehost $ gitk

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
Eine TCP/IP-Verbindung zu einem fernen X-Server ist in Debian aus Sicherheitsgründen deaktiviert. Wenn Sie es vermeiden können, sollten Sie dies auch nicht aktivieren (z.B. indem Sie einfach "`xhost +`" setzen oder XDMCP-Verbindungen gestatten).

### 7.9.3. Chroot-Verbindung zum X-Server

Der Zugriff auf den X-Server über Anwendungen, die das X-Core-Protokoll verwenden und auf dem gleichen Rechner laufen, jedoch in einer Umgebung (wie einem chroot), in der die authority-Datei nicht erreichbar ist, kann sicher über `xhost` authentifiziert werden, indem User-based access verwendet wird, z.B. wie hier für "`gitk`":

    username $ xhost + si:localuser:root ; sudo chroot /path/to
    # cd /src
    # gitk
    # exit
    username $ xhost -

## 7.10. Zwischenablage

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:

Tabelle 7.9. Liste von Programmen zum Beeinflussen der Zwischenablage

Paket | Popcon | Paketgröße | Ziel | Beschreibung
--- | --- | --- | --- | ---
`xsel` | V:7, I:42 | 55 | X | Befehlszeilenprogramm für die X-Auswahl (Zwischenablage)
`xclip` | V:18, I:79 | 62 | X | Befehlszeilenprogramm für die X-Auswahl (Zwischenablage)
`wl-clipboard` | V:9, I:27 | 174 | Wayland | `wl-copy` / `wl-paste`: Befehlszeilenschnittstelle für die Wayland-Zwischenablage
`gpm` | V:8.2, I:9.1 | 524 | Linux-Konsole | ein Daemon, der Mausereignisse auf der Linux-Konsole verarbeitet

Kapitel 6. Netzwerkapplikationen |  | Kapitel 8. I18N und L10N