Vom schwarzen Bildschirm zu einem Zuhause: Wie ich Sway auf meinem Dell XPS 13 zum Laufen brachte
Ich wechselte von i3 zu Sway, meldete mich zum ersten Mal in der neuen Sitzung an und bekam einen schwarzen Bildschirm und einen einsamen Cursor. So wurde aus dieser Leere ein Desktop, den ich liebe.
Ich wechselte auf meinem Dell XPS 13 mit Fedora 43 von i3 zu Sway, meldete mich zum ersten Mal in der neuen Sitzung an und wurde von… nichts begrüßt. Ein schwarzer Bildschirm und ein einsamer Mauszeiger.
Mein erster Gedanke war: super, schon kaputtgemacht. Mein zweiter Gedanke, nach viel Graben, war weit interessanter. Dies ist die Geschichte, wie aus diesem schwarzen Bildschirm ein Desktop wurde, den ich wirklich gern benutze.
Der schwarze Bildschirm war nicht kaputt — er war leer
Diagnose · leere ArbeitsflächeDas sagt einem niemand, wenn man von einem „Rundum-sorglos“-Desktop kommt: eine leere Sway-Arbeitsfläche ohne Hintergrundbild ist einfach schwarz. Das ist kein Absturz. Das ist die Voreinstellung.
Meine Konfiguration machte es schlimmer. Es stellte sich heraus, dass ~/.config/sway/config vom i3-config-wizard erzeugt worden war — es war also in Wahrheit eine i3-Konfiguration, die Sway höflich im Kompatibilitätsmodus ausführte. Sie setzte kein Hintergrundbild und startete kein Fenster. Zwei Zeilen halfen enorm gegen die „Läuft das überhaupt?“-Panik — Hintergrundbild beim Anmelden, Terminal beim Anmelden:
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill exec foot

Ein hartnäckiges Detail überlebte hier jede andere Korrektur: Arbeitsfläche 1, auf der ich beim Anmelden lande, blieb auch danach schwarz. Ich zuckte mit den Schultern, machte Super+2 zu meinem De-facto-Zuhause und arbeitete die Liste weiter ab. Behalte das im Kopf.
Das Tray, das sich nicht klicken ließ
Fix · swaybar → waybarMeine Tray-Symbole — WLAN, Bluetooth, Dropbox, Remmina — erschienen, aber ein Klick darauf bewirkte nichts. Schuld war die eingebaute swaybar: sie beherbergt das Tray korrekt, doch ihre Kontextmenüs sind berüchtigt instabil und erscheinen oft schlicht nie.
Die eigentliche Lösung war, die Leiste zu ersetzen. Ich tauschte swaybar gegen waybar, deren Tray die Menüs tatsächlich rendert. In der Sway-Konfiguration ist es fast schon beleidigend einfach:
bar {
swaybar_command waybar
}Eine kleine ~/.config/waybar/config später — Arbeitsflächen, Uhr, Tray, Netzwerk, Bluetooth, Lautstärke, Akku — und ich hatte eine Leiste, die sich nicht gegen mich wehrte.
Die Leiste belog mich (oder doch nicht?)
Diagnose · glaub den ZahlenMit laufender waybar sahen zwei Zahlen falsch aus. Die Lautstärke zeigte 3359 %. Ich nahm einen Anzeigefehler an. War keiner. PipeWire hatte den Software-Pegel tatsächlich auf über das Dreißigfache der vollen Lautstärke davonlaufen lassen, weil meine Lauter-Taste endlos 5 % addierte, ohne Obergrenze. Ich setzte ihn zurück und deckelte die Taste mit einem -l-1.0-Sicherheitsgurt:
bindsym XF86AudioRaiseVolume exec wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
Der Akku zeigte 100 %, während meine alte Leiste auf 70 % schwor. Das ist hinterhältig: Der Akku war voll. Die alte Anzeige maß die Ladung an der ursprünglichen Designkapazität des Akkus — diese „70 %“ waren also in Wahrheit die Gesundheit meines Akkus. Die Zellen sind verschlissen. Nichts zu reparieren; nur eine Zahl, die ich jetzt verstehe.
Glaub deiner Statusleiste. Als sie 3359 % sagte, meinte sie 3359 %.
Die X11-Geister ausräumen
Fix · Wayland-nativ werdenJe tiefer ich grub, desto mehr Konfigurationsreste aus der i3-Welt fand ich, die Xorg brauchten, um überhaupt etwas zu bedeuten. Der schlimmste Übeltäter: die Bildschirmsperre. Meine Konfiguration rief xss-lock und i3lock auf, beide nur für X11. Unter Wayland taten sie nichts — mein Laptop sperrte beim Suspend oder Zuklappen gar nicht. Die native Lösung:
exec swayidle -w \
timeout 300 'swaylock -f -c 000000' \
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f -c 000000'Dann die kleineren Geister: mein Starter war das X11-dmenu (→ natives wmenu-run), und mein Abmelde-Dialog nutzte i3-nagbar und i3-msg (→ swaynag und swaymsg exit). Stück für Stück machte ich alles Wayland-nativ.
Der Komfort-Durchgang
Aufbau · was fehlteAls das Fundament stand, suchte ich nach dem, was fehlte. Hier wurde aus „funktioniert“ ein „meins“.
- Screenshots. grim + slurp + wl-copy waren bereits installiert; ich band nur Print (ganzer Bildschirm in eine Datei) und Shift+Print (Bereich auswählen in die Zwischenablage).
- Helligkeitstasten. brightnessctl an die Helligkeitstasten des Laptops gebunden. Im Nachhinein offensichtlich.
- Benachrichtigungen. Ich hatte gar keinen Benachrichtigungsdienst, sah also nie etwas — auch keine Warnungen bei niedrigem Akku. mako installiert und automatisch gestartet.
- Nachtlicht. redshift startete automatisch und scheiterte still — es spricht nur X11-Gamma-Protokolle. Ich wechselte zu wlsunset, das den Bildschirm auf native Art wärmt (ich fütterte es mit meinen Koordinaten — Berlin).
- Zwischenablage-Verlauf. clipman installiert (die Fedora-freundliche Alternative zu cliphist); überwacht die Zwischenablage und ist auf Super+h gelegt.
- Energieverwaltung. dnf verweigerte power-profiles-daemon — es kollidiert mit tuned-ppd, das Fedora 43 bereits mitbringt. Ich aktivierte stattdessen tuned und wechsle Profile mit tuned-adm profile balanced. Gleiches Ergebnis, weniger Gefriemel.
Die letzten zwei Ärgernisse
Fix · lies die VoreinstellungenIch stellte mein Terminal auf foot um (leichter, nativ Wayland) und beschwerte mich sofort, die Schrift sei winzig — obwohl mein Bildschirm auf Skalierung 2.0 lief. Ich war bereit, wieder HiDPI die Schuld zu geben. Nein: foot kommt mit einer Standardschrift von 8 pt und ich hatte ihm keine Konfiguration gegeben. Eine einzeilige foot.ini:
font=monospace:size=12
Und meine Zwischenablage-Auswahl — Super+h — zeigte die Einträge horizontal, einen nach dem anderen, mit einem kleinen >, das „da kommt noch was“ sagte. Ich dachte, mein Verlauf sei leer. War er nicht; wmenu nutzt standardmäßig eine horizontale Reihe. Ein -l 10 machte daraus eine ordentliche vertikale Liste meiner letzten zehn Einträge.
Womit ich endete
Status · Wayland-nativ
Ein Dell XPS 13 mit einem Sway-Desktop, der endlich vollständig Wayland-nativ und vollständig meiner ist:
- Ein Hintergrundbild und eine Leiste, die erscheinen und sich benehmen
- Ein Tray, das ich tatsächlich anklicken kann
- Eine Lautstärke, die mich nicht taub macht, und eine Akkuanzeige, die ich verstehe
- Ein Laptop, der sich sperrt, wenn ich weggehe
- Screenshots, Helligkeit, Benachrichtigungen, Nachtlicht, Zwischenablage-Verlauf und Energieprofile — alles läuft
- Ein Terminal in einer Schriftgröße, der meine Augen zustimmten
Was ich meinem früheren Ich sagen würde
- Ein schwarzer Bildschirm in Sway ist meist eine leere Arbeitsfläche, kein Absturz — aber prüfe, nimm nichts an. Beweg die Maus, drück ein Tastenkürzel. Und wenn eine Arbeitsfläche stur schwarz bleibt, während sich die anderen benehmen, führe swaymsg -t get_tree aus und schau wirklich hin.
- Eine erzeugte i3-Konfiguration funktioniert in Sway größtenteils, und genau das ist die Falle. „Größtenteils“ verbirgt einen Haufen Nur-X11-Reste — Sperren, Starter, Dialoge — die still versagen. Plan einen Nachmittag ein, um alles nativ zu machen.
- Glaub deiner Statusleiste. Als sie 3359 % sagte, meinte sie 3359 %.
- Lies den Paketkonflikt, bevor du ihn erzwingst. tuned-ppd gegen power-profiles-daemon hätte mich einen funktionierenden Energie-Stack kosten können, hätte ich nach --allowerasing gegriffen.
- Winzige Schriften bei HiDPI sind meist die Voreinstellung der App, nicht deine Skalierung. Prüf die Konfiguration der App, bevor du dem Compositor die Schuld gibst.
Der schwarze Bildschirm war nie leer
Gelöst · Arbeitsfläche 1Erinnerst du dich an den Gedanken, den du behalten solltest? Arbeitsfläche 1, nach allem noch schwarz? Sie war nie leer. Der allererste schwarze Bildschirm — der, der mich glauben ließ, ich hätte die Maschine kaputtgemacht, dem ich die ganze Zeit mit Super+2 ausgewichen war — war die ganze Zeit ein Fenster. Ich habe nur nie hingeschaut.
Als ich endlich swaymsg -t get_tree auf Arbeitsfläche 1 ausführte, war es da: mein foot-Terminal und ein zweites Fenster, das ich nie wissentlich geöffnet hatte — eine streunende Xwayland Video Bridge. Ein Helfer, auf den sich Bildschirmfreigabe-X11-Apps stützen, beim Anmelden automatisch gestartet, eigentlich ein unsichtbarer 1×1-Pixel. Stattdessen hatte sie sich als echtes Fenster abgebildet und war im Vollbild gelandet: ein echtes, undurchsichtiges schwarzes Rechteck, seit dem ersten Start auf Arbeitsfläche 1 geparkt, das auf dem Terminal saß, das exec foot die ganze Zeit treu darunter gestartet hatte.
for_window [class="xwaylandvideobridge"] floating enable, resize set 1 1, move position 0 0, border none, move to scratchpad no_focus [class="xwaylandvideobridge"]
Eine einzige Fensterregel nagelt die Bridge endlich fest — schweben lassen, auf einen Pixel schrumpfen, den Rahmen entfernen, ins Scratchpad werfen. Super+1 öffnet jetzt mein Terminal. Das erste Problem dieses Beitrags entpuppte sich als das letzte, das ich löste: ein schwarzer Bildschirm in Sway ist meist eine leere Arbeitsfläche — aber trau dem „meist“ nicht. Führe swaymsg -t get_tree aus und schau wirklich hin.
Manchmal ist die Leere ein Fenster, das zurückstarrt.