📖 Offizielles spotify-screensaver Wiki
Willkommen im offiziellen Wiki für spotify-screensaver – der elegante, ressourcenschonende Desktop-Bildschirmschoner mit scharfer Digitaluhr, Live-Spotify-Metadaten, intelligenter Werbeerkennung, redundanzfreiem Clean-Cover-Layout, 60 FPS Canvas Audio-Visualizer und nativer Steuerung für Linux und Windows.
🚧 Pre-Release Status (Work in Progress): spotify-screensaver befindet sich in aktiver Entwicklung und ist noch nicht final fertiggestellt. Alle Versionen und Builds sind Pre-Releases.
💡 100% Local-First & Zero-AI: Diese Anwendung läuft komplett autonom auf deinem Rechner. Keine Cloud-Telemetry, keine externen KI-Aufrufe, keine Tracker. Deine Musik, deine Daten, deine Privatsphäre.
1. Einführung
Wer am Arbeitsplatz Musik hört, möchte oft eine ästhetische, ablenkungsfreie Anzeige: die Uhrzeit groß im Blick, das Cover und der Songtitel des aktuell spielenden Titels, und die Möglichkeit, Songs ohne Fensterwechsel zu überspringen.
spotify-screensaver löst dies als native Desktop-Anwendung in reiner Go-Architektur mit extrem geringer CPU- und RAM-Last:
- Linux: Echtes natives WebKitGTK 4.1 Desktop-Fenster mit Hardware-Compositing.
- Windows: Randloser App-Mode (Edge / Chrome WebView).
- Zero-Config: Erkennt automatisch laufende Spotify-Clients via Linux MPRIS D-Bus.
- Intelligente Werbeerkennung: Erkennt Werbepausen bei Spotify Free und zeigt ein diskretes Werbe-Cover mit Statusanzeige.
- Fokussiertes Clean-Layout: Modernes zentriertes Albumcover ohne ablenkende Vinyl-Grafiken.
- Kein Electron-Ballast: Startet in Sekundenbruchteilen und schont Laptop-Akkus.
2. Architektur & MPRIS D-Bus
Die Anwendung besteht aus einem leichtgewichtigen Go-Core und einem eingebetteten Canvas-Frontend:
+-------------------------------------------------------------+ | spotify-screensaver | | | | +-------------------+ +------------------+ | | | Native GUI Layer | | Go HTTP Server | | | | (WebKitGTK / |<--- fetch ---| (127.0.0.1: | | | | Chrome App) |--- Actions ->| 43210) | | | +-------------------+ +--------+---------+ | | | | | +-------v---------+ | | | Linux MPRIS | | | | D-Bus Engine | | | | (org.mpris. | | | | MediaPlayer2) | | | +-----------------+ | +-------------------------------------------------------------+
Unter Linux kommuniziert der Daemon über den Session-Bus direkt mit org.mpris.MediaPlayer2.spotify. Titel, Interpret, Album, Cover-URL, Songposition und Status werden ohne Polling-Verzögerung synchronisiert.
3. Installation & Setup
spotify-screensaver wird als statische Single-Binary für Linux (x86_64) und Windows (x86_64) ausgeliefert.
Option A: Installation via Go (Empfohlen)
go install github.com/benzjeremy/spotify-screensaver@latest spotify-screensaver
Option B: Vorkompilierte Binaries
Die offiziellen Release-Archive stehen auf GitHub unter Releases (Latest) zum Download bereit:
Linux (x86_64):
tar -xzf spotify-screensaver-v1.4-linux.tar.gz sudo cp spotify-screensaver /usr/local/bin/spotify-screensaver spotify-screensaver
Windows (x86_64):
Archiv spotify-screensaver-v1.4-windows.zip entpacken und spotify-screensaver.exe starten.
4. Screensaver-Funktionen
- Intelligente Werbeerkennung: Erkennt Werbepausen bei Spotify Free (MPRIS
:ad:& Metadaten) und schaltet nahtlos auf ein embedded Dark-Theme Werbecover mit Status-Badge. - Fokussiertes Clean-Layout: Redundanzfreies, zentriertes Albumcover mit sanften Rundungen und Cover-Glow.
- OLED Digitaluhr: Gestochen scharfe Zeitanzeige (12h oder 24h) mit deutscher Datumsausgabe und zuschaltbarer Sekundenanzeige.
- Cover Art & Metadaten: Hochauflösende Cover-Anzeige mit Songtitel, Artist und Album.
- Interaktiver Progress Scrubber: Durch Anklicken des Fortschrittsbalkens springt der Player direkt an die ausgewählte Stelle im Song.
- Lautstärkeregler: Direkte Lautstärkejustierung per Schieberegler oder Pfeiltasten.
- Inaktivitäts-Autohide: Mauszeiger und HUD-Footer blenden sich bei Inaktivität nach 4 Sekunden automatisch aus.
5. Audio-Visualizer & Themes
Der integrierte HTML5 Canvas Visualizer läuft mit nativer 2D-Hardwarebeschleunigung und bietet 3 verschiedene Darstellungsmodi:
bars: 48 Frequenzbalken mit schwerkraft-simulierten Peak-Hold Kappen und fließendem Farbverlauf.wave: Weich pulsierende, mehrlagige Sinus-Wellenform mit hardwarenahem Neon-Glow.mirrored: Von der Mittellinie nach oben und unten gespiegelte Frequenzsäulen.
4 Dynamische Themes
Über das Einstellungs-Icon (Zahnrad oben rechts) kann die Akzentfarbe jederzeit gewechselt werden:
- 🟢 Spotify Green (
#1db954) – Klassischer Spotify-Look - 🔵 Electric Cyan (
#00f2ff) – Cyberpunk Neon-Blau - 🟣 Neon Purple (
#c084fc) – Kräftiges Synthwave-Violett - 🟠 Sunset Amber (
#fbbf24) – Warmer Sonnenuntergang
6. Tastaturkürzel
Leertaste (Space) -> Wiedergabe pausieren / fortsetzen Pfeil rechts (->) -> Nächster Titel (Next Track) Pfeil links (<-) -> Vorheriger Titel (Previous Track) Pfeil oben (^) -> Lautstärke +5% Pfeil unten (v) -> Lautstärke -5% Taste F / F11 -> Vollbildmodus umschalten (Fullscreen Toggle) Taste Escape (ESC) -> Einstellungsfenster / Screensaver schließen
7. Lokale REST-API
Der interne HTTP-Server lauscht ausschließlich auf 127.0.0.1:43210 und stellt folgende Endpunkte bereit:
GET /api/status -> Liefert aktuellen Track, Position, Dauer und Cover-URL
POST /api/playpause -> Schaltet Play/Pause um
POST /api/next -> Springt zum nächsten Song
POST /api/previous -> Springt zum vorherigen Song
POST /api/seek -> Springt im Song (Body: {"seconds": 120})
POST /api/volume -> Ändert Lautstärke (Body: {"delta": 5})
GET /api/config -> Liest gespeicherte Display- und Theme-Optionen
POST /api/config -> Speichert Einstellungen (JSON)
8. Sicherheit & Krypto
Nach Jeremys strikten Architekturstandards bindet sich der interne Webserver niemals an externe Schnittstellen:
- Strict Localhost: Server bindet ausnahmslos an
127.0.0.1. - Token-Verschlüsselung: OAuth-Tokens werden mit AES-256-GCM verschlüsselt.
- Key Derivation: Schlüsselableitung erfolgt über PBKDF2 mit 100.000 Iterationen und kryptografischem Salt pro Installation.
- Anti-CSRF & DNS-Rebinding: Externe Domains können keine Anfragen an die lokale API stellen.
9. Troubleshooting & Performance
Problem: Hohe CPU-Auslastung auf Linux-Laptops
In Version v1.2 wurde der bekannte WebKitGTK DMABUF-Compositor-Bug durch Setzen von WEBKIT_DISABLE_DMABUF_RENDERER=1 und WEBKIT_FORCE_COMPOSITING_MODE=1 vollständig behoben. Gleichzeitig wurden alle schweren CSS-Blur-Filter entfernt.
Falls du eine ältere Version nutzt, aktualisiere umgehend auf v1.2:
go install github.com/benzjeremy/spotify-screensaver@v1.2
Problem: Spotify MPRIS wird nicht erkannt
Prüfe, ob Spotify auf deinem Linux-System läuft und D-Bus aktiviert ist:
playerctl -l # Ausgabe sollte 'spotify' oder 'spotify_player' enthalten