Weblog

KDE Login defekt, Fisch auf der Flucht

09.07.2026 4 Min. Lesezeit

Slackware 15, KDE und Fish: Wenn ein neuer Benutzer nur einen schwarzen Bildschirm sieht

Oder: Wie eine alternative Shell die Plasma-Session aus dem Tritt bringen kann.

Das Problem

Kürzlich bin ich über ein bemerkenswertes Phänomen auf einem frisch installierten und vollständig aktualisierten Slackware 15 System gestolpert.

Ein neu angelegter Benutzer konnte sich zwar erfolgreich über SDDM in KDE Plasma anmelden, landete anschließend jedoch lediglich vor einem schwarzen Bildschirm mit beweglichem Mauszeiger.

Zusätzlich erschien zunächst die Meldung:

No system tray detected on this system.
Unable to start, exiting.

Der erste Verdacht fiel schnell auf HPLIP, da genau diese Meldung regelmäßig vom Programm hp-systray erzeugt wird, wenn beim Start kein System Tray verfügbar ist.

Nach dem Deaktivieren des entsprechenden Autostarts verschwand die Fehlermeldung zwar, das eigentliche Problem blieb jedoch bestehen:

  • Login erfolgreich
  • Schwarzer Bildschirm
  • Mauszeiger sichtbar
  • Keine Panels
  • Kein Desktop
  • Keine Plasma-Oberfläche

Eine klassische Sackgasse.

Die erste Analyse

Ein Blick auf die laufenden Prozesse brachte einen interessanten Befund:

ps ax | egrep 'kwin|plasma'

Ergebnis: kwin_x11 läuft, plasmashell läuft nicht.
Damit war bereits eine wichtige Erkenntnis gewonnen.

Was bedeutet das?

KDE Plasma besteht aus mehreren Komponenten.

kwin_x11 ist der Fenstermanager. Er verwaltet Fenster, Compositing und die grafische Darstellung.

plasmashell hingegen liefert:

  • den Desktop
  • das Panel
  • den System Tray
  • Widgets
  • den Hintergrund

Wenn kwin_x11 läuft, aber plasmashell fehlt, sieht der Anwender typischerweise genau das: Schwarzer Bildschirm, heller Mauszeiger, und gähnende Leere. Der grafische Unterbau funktioniert also, die eigentliche Plasma-Oberfläche wird jedoch nicht gestartet.

Ein wichtiger Test

Als betroffener Benutzer wurde anschließend einfach Folgendes ausgeführt:

plasmashell

Und siehe da: der Desktop erschien sofort.

Das ist ein extrem wertvoller Hinweis. Denn damit konnten wir mehrere Ursachen praktisch ausschließen:

  • keine kaputte Plasma-Installation
  • keine fehlenden Bibliotheken
  • kein Grafiktreiberproblem
  • kein Defekt in KDE selbst

plasmashell funktionierte schließlich einwandfrei.

Die Frage lautete nun:

Warum startet Plasma die Shell nicht automatisch?

Die überraschende Entdeckung

Zunächst wurden unterschiedliche Benutzer miteinander verglichen. Dabei fiel nur ein einziger Unterschied auf:

BenutzerLogin-Shell
Funktionierender Benutzerzsh
Problematischer Benutzerfish

Mehr Unterschiede gab es nicht.
Und plötzlich ergab alles Sinn.

Fish ist anders

Die Fish Shell gehört zu den angenehmsten modernen Shells überhaupt.

Sie bietet:

  • intelligente Autovervollständigung
  • eine hervorragende Standardkonfiguration
  • Syntax-Hervorhebung
  • komfortable Historienfunktionen

Allerdings verfolgt Fish einen besonderen Ansatz:

Fish ist bewusst nicht POSIX-kompatibel.

Während Bash, Zsh und Korn Shell weitgehend dieselben Shell-Konstrukte verstehen, besitzt Fish eine eigene Syntax.

Beispielsweise funktioniert dies in Bash und Zsh:

export PATH=$PATH:/opt/bin

In Fish dagegen:

set -x PATH $PATH /opt/bin

Viele Startskripte klassischer Unix-Software gehen jedoch davon aus, dass eine POSIX-kompatible Shell verwendet wird.

Und genau hier beginnt das Problem.

KDE Plasma und die Login-Shell

Beim Start einer Plasma-Sitzung werden zahlreiche Skripte ausgeführt.

Diese initialisieren unter anderem:

  • Umgebungsvariablen
  • D-Bus
  • XDG-Komponenten
  • Autostart-Dienste
  • Plasma-Module

In vielen Distributionen wird dieser Prozess durch zusätzliche Patches abgesichert. Slackware verfolgt dagegen traditionell einen sehr schlanken und unveränderten Ansatz. Dadurch treten Inkompatibilitäten oftmals deutlicher zutage als bei anderen Distributionen.

Offenbar stolperte in diesem Fall ein Teil des Plasma-Starts über die Fish-Shell als Login-Shell.

Das Ergebnis:

  • kwin_x11 startet
  • plasmashell startet nicht

Der Desktop bleibt schwarz.

Die Lösung

Zum Test wurde die Login-Shell des Benutzers auf Bash oder Zsh umgestellt:

chsh -s /bin/zsh user

oder

chsh -s /bin/bash user

Nach erneuter Anmeldung startete Plasma sofort korrekt.

Problem gelöst.

Fish trotzdem verwenden

Natürlich möchte man deshalb nicht auf Fish verzichten.

Die bewährte Lösung besteht darin, Fish nicht als Login-Shell, sondern lediglich als interaktive Arbeits-Shell zu verwenden.

Die Login-Shell bleibt beispielsweise Zsh:

chsh -s /bin/zsh user

In der .zshrc kann anschließend automatisch Fish gestartet werden:

if command -v fish >/dev/null 2>&1; then
    exec fish
fi

Damit erhält man:

  • eine vollständig kompatible KDE-Sitzung
  • weiterhin die komfortable Fish-Shell
  • keine Überraschungen beim Desktop-Start

Warum die HPLIP-Meldung irreführend war

Besonders interessant war die ursprüngliche Fehlermeldung:

No system tray detected on this system.
Unable to start, exiting.

Diese lenkte die Fehlersuche zunächst in Richtung System Tray.

Tatsächlich war sie lediglich ein Symptom.

Da plasmashell nie gestartet wurde, existierte auch kein System Tray. HPLIP bemerkte das und verabschiedete sich mit einer Fehlermeldung. Die eigentliche Ursache lag jedoch deutlich früher im Startprozess der Plasma-Sitzung.

Fazit

Die Ursache war weder KDE noch SDDM, noch ein Grafiktreiber oder ein beschädigtes Benutzerprofil.

Der Fehler entstand durch eine ungewöhnliche Kombination aus:

  • Slackware 15
  • KDE Plasma
  • Fish als Login-Shell

Ein einziger Prozess fehlte:

plasmashell

Dadurch entstand ein schwarzer Desktop mit Cursor, während der Fenstermanager bereits aktiv war.

Die wichtigste Erkenntnis aus diesem Vorfall:

Wenn KDE Plasma nur einen schwarzen Bildschirm mit Mauszeiger zeigt, lohnt sich ein Blick auf die Login-Shell des Benutzers.

Manchmal liegt die Ursache nicht im Grafiksystem, nicht in Plasma und nicht in der Konfiguration – sondern schlicht darin, dass ein Stück Software erwartet, mit einer klassischen Unix-Shell zu sprechen, während auf der anderen Seite bereits ein moderner Fisch schwimmt.

π