diff --git a/spike/inner/s1-plasma.sh b/spike/inner/s1-plasma.sh index 0a64e35..df8e8fd 100755 --- a/spike/inner/s1-plasma.sh +++ b/spike/inner/s1-plasma.sh @@ -60,28 +60,50 @@ for b in kwin_wayland plasmashell; do done # ── Welche Shell? ──────────────────────────────────────────────────────────── -# Der Paketname der Mobile-Shell hat sich mit Plasma 6 geändert: aus -# org.kde.plasma.phoneshell wurde org.kde.plasma.mobileshell. Ein falscher Name -# fällt nicht auf — plasmashell startet klaglos, meldet nur beiläufig -# "starting invalid corona" und zeichnet dann nichts. Deshalb wird nicht geraten, -# sondern nachgesehen, was tatsächlich installiert ist. -echo "── Verfügbare Plasma-Shells ──" -ls -1 /usr/share/plasma/shells/ 2>/dev/null | sed 's/^/ /' || echo " (Verzeichnis fehlt)" +# Ohne gültiges Shell-Paket startet plasmashell klaglos, meldet nur beiläufig +# "starting invalid corona" und zeichnet dann nichts. Von außen sieht das aus wie +# ein Fehlschlag des Compositors und ist keiner. +# +# In Debian liefert ausgerechnet 'plasma-mobile' KEINE Shell mit, sondern nur +# QML-Module und KWin-Skripte. Die Shell steckt in 'plasma-nano' und heißt +# org.kde.plasma.nano. Der Name org.kde.plasma.mobileshell aus den KDE-Quellen +# existiert in Debian nicht. Deshalb wird nachgesehen statt geraten. +shell_suchen() { + local kandidat + for kandidat in org.kde.plasma.mobileshell org.kde.plasma.phoneshell \ + org.kde.plasma.nano org.kde.plasma.desktop; do + if [ -d "/usr/share/plasma/shells/$kandidat" ]; then + printf '%s' "$kandidat" + return 0 + fi + done + return 1 +} -SHELL_PAKET="" -for kandidat in org.kde.plasma.mobileshell org.kde.plasma.phoneshell \ - org.kde.plasma.nano org.kde.plasma.desktop; do - if [ -d "/usr/share/plasma/shells/$kandidat" ]; then - SHELL_PAKET="$kandidat" - break - fi -done +echo "── Verfügbare Plasma-Shells ──" +if [ -d /usr/share/plasma/shells ]; then + ls -1 /usr/share/plasma/shells/ 2>/dev/null | sed 's/^/ /' + [ -z "$(ls -A /usr/share/plasma/shells/ 2>/dev/null)" ] && echo " (leer)" +else + echo " (Verzeichnis /usr/share/plasma/shells fehlt)" +fi + +SHELL_PAKET="$(shell_suchen || true)" + +if [ -z "$SHELL_PAKET" ]; then + echo " ! Keine Shell gefunden — versuche plasma-nano nachzuinstallieren." + apt-get install -y --no-install-recommends plasma-nano plasma-mobile 2>&1 \ + | tail -5 | sed 's/^/ /' + SHELL_PAKET="$(shell_suchen || true)" +fi if [ -n "$SHELL_PAKET" ]; then echo " ✓ Shell: $SHELL_PAKET" else - echo " ✗ Keine Plasma-Shell gefunden — plasmashell hätte nichts zu zeichnen." - echo " Fehlt plasma-mobile oder plasma-nano?" + echo " ✗ Weiterhin keine Plasma-Shell — plasmashell hat nichts zu zeichnen." + echo " Prüfen: dpkg -L plasma-nano | grep shells" + echo " Ohne Shell ist Versuch A zum Scheitern verurteilt; XFCE zeigt dann," + echo " ob wenigstens X-Server und GPU tragen." fi # ── GPU-Nachweis, bevor der Desktop startet ──────────────────────────────────