referenzprojekt

Edge Dashboard: Corsair Xeneon Edge unter Linux

Für das Corsair Xeneon Edge, ein schmales Touch-Display für den Schreibtisch, bietet Corsair keine Software für Linux an. Das Edge Dashboard ist mein Ersatz dafür: Widgets mit Livedaten auf mehreren Seiten, dazu ein Kachelraster für Befehle und ein eigenes Einstellungsfenster. Entwickelt und im Dauerbetrieb unter Arch Linux mit KDE Plasma auf Wayland.

Hauptseite auf dem Xeneon Edge: Netzwerkdurchsatz, Uhr, Wetter sowie CPU, GPU und RAM mit KurvenZweite Seite: Pomodoro-Uhr, Belegung der Datenträger und alle TemperatursensorenQuick-Action-Deck auf dem Display, daneben die Steuerung der smarten LampenEDGE//DASH: Auswahl des Designs und der Sprache der AnzeigeEDGE//DASH: Editor für das Quick-Action-Deck mit Raster und Kacheln

Bild 1 von 5

Über das Projekt

Dashboard für das Corsair Xeneon Edge, das schmale Touchdisplay unter dem Monitor, entstanden, weil Corsair keine Linux-Software für das Gerät anbietet. Drei Teile: ein FastAPI-Server, der Systemwerte, Wetter, Medien und smarte Lampen einsammelt, ein Kioskfenster in QML, das die 2560x720 Pixel füllt, und EDGE//DASH, eine eigene Desktop-Anwendung für Designs, Moduloptionen, Quick Actions und das Seitenlayout.

Funktionen im Überblick

  • Widgets für CPU, RAM, GPU, Netzwerk, Sensoren, Datenträger und Prozesse
  • Wetter, Medien über MPRIS, YouTube, smarte Lampen von Govee und Tuya, Pomodoro und Notizen
  • Mehrere Seiten in frei definierten Rasterlayouts, gewischt wird mit dem Finger
  • Quick-Action-Deck: Befehle, HTTP-Aufrufe und Programme auf Kacheln
  • EDGE//DASH als eigenes Einstellungsfenster, Änderungen ohne Neustart
  • Sieben Designs und zwei Sprachen, beides über eine abgelegte Datei erweiterbar

Warum ich es gebaut habe

Corsair liefert für das Xeneon Edge nur Software für Windows. Unter Linux bleibt das Display damit eine reine Fläche ohne Inhalt. Da ich Linux nutze, war die Wahl zwischen „teures Zweitdisplay ungenutzt lassen" und „selbst etwas bauen" schnell getroffen. Entstanden ist eine Anzeige, die einfach läuft: Sie kommt mit der Anmeldung hoch, zeigt Systemwerte, Wetter und Medien und wird mit dem Finger bedient, ohne Tastatur und ohne Maus.

Widgets und Seiten

Es gibt Widgets für CPU, RAM und GPU, Netzwerkdurchsatz, Temperatursensoren, Datenträger und die aufwendigsten Prozesse, dazu Uhr, Wetter, die Steuerung laufender Medien über MPRIS, YouTube-Kacheln, smarte Lampen von Govee und Tuya, eine Pomodoro-Uhr und Notizen. Die Kacheln liegen in frei definierten Rasterlayouts auf mehreren Seiten, zwischen denen waagerecht gewischt wird. Ein Widget kann mehrere Darstellungen anbieten: Die Messwert-Kacheln kennen eine kompakte ohne Diagramm für kleine Felder, bei der das Diagramm gar nicht erst geladen wird.

Quick Actions

Eine Seite ist ein Kachelraster nach Art eines Stream Decks. Ein Tippen führt einen Befehl aus, schickt eine HTTP-Anfrage, startet ein Programm oder öffnet einen Ordner mit weiteren Kacheln. Die Anzeige selbst kennt dabei ausschließlich undurchsichtige Kennungen. Was tatsächlich ausgeführt wird, samt Adressen und HTTP-Headern, bleibt im Backend und erreicht die Oberfläche nie. Befehle laufen als Argumentliste, ohne Shell dazwischen, also ohne Globbing, ohne Einsetzen von Variablen und ohne Pipes.

EDGE//DASH, das Einstellungsfenster

Konfiguriert wird das Dashboard nicht auf sich selbst. Ein Grid-Template oder eine Argumentliste mit dem Finger auf einem 2560 mal 720 Pixel schmalen Streifen zu bearbeiten war der unangenehmste Teil des früheren Aufbaus. Stattdessen gibt es EDGE//DASH, eine eigene Desktop-Anwendung mit Symbol im Systemabschnitt der Leiste: Design, Moduloptionen, das Quick-Action-Deck und das Seitenlayout, Letzteres mit einer Vorschau im Seitenverhältnis der Anzeige. Was dort gespeichert wird, kündigt der Server über einen WebSocket an, und die Anzeige zieht nach, ohne neu zu laden und ohne Neustart.

Technische Umsetzung

Drei Prozesse mit je einer Aufgabe: ein FastAPI-Server in Python, der die Daten einsammelt und als Einziger die Konfiguration schreibt, das Kioskfenster in Qt Quick über PySide6 und das Einstellungsfenster als Tauri-Anwendung mit React. Kiosk und Einstellungen sind gewöhnliche Clients über HTTP und WebSocket, sodass ein abgestürzter Renderer die Datensammlung nicht mitreißt. Anfangs war die Anzeige ein Chromium im Kioskmodus; inzwischen erzeugt der Kiosk sein Fenster selbst in Qt Quick, weil die Qt-WebEngine unter Wayland rund 20 MB Speicher je Minute liegen ließ, was bei einem Display, das wochenlang durchläuft, im OOM-Killer endet. Das QML-Fenster steht bei etwa 130 MB und bleibt dort. Ein Widget besteht seitdem aus einem Modul im Backend, einer QML-Datei und einem Manifest, das es dem Layout-Editor bekannt macht. Ein neues Widget braucht keine Änderung am Gerüst.

Weitere Projekte

Alle Leistungen und Projekte ansehen

Ein ähnliches Projekt im Kopf?

Was in meinen eigenen Produkten steckt, entwickle ich genauso für Ihr Vorhaben, von der Idee bis zum laufenden Betrieb.

Projekt anfragen