1 🏗️ Electron (Das Fundament moderner Desktop-Apps)
1.1 1.1 🔬 DIE FUNKTIONSWEISE: EIN WEBBROWSER ALS SOFTWARE-MUTTERSCHIFF
Das Kernkonzept von Electron lässt sich am besten so beschreiben:
Jede Electron-App ist im Grunde eine eigenständige Website, die ihren eigenen, unsichtbaren Google-Chromium-Browser mitschleppt.
1.1.1 1.1.1 Die zwei inneren Motoren:
- Chromium (Die Oberfläche):
Sorgt dafür, dass die App gerendert wird. Grafische Effekte, Schaltflächen und Menüs werden genau wie auf einer modernen Internetseite dargestellt. - Node.js (Der System-Zugriff):
Da ein normaler Webbrowser aus Sicherheitsgründen nicht auf deine Linux-Festplatte zugreifen darf, schaltet Electron Node.js dazu. Diese Komponente erlaubt es der App, Dateien zu schreiben, das Terminal anzusprechen oder USB-Geräte zu steuern.
1.1.2 1.1.2 Warum Entwickler es lieben – und Linux-Nutzer oft fluchen:
- Der Vorteil:
Entwickler müssen den Code nur ein einziges Mal schreiben. Die App läuft ohne Mehraufwand sofort exakt gleich auf Ubuntu, Arch Linux, Windows und macOS. Das spart Millionen an Entwicklungskosten. - Der Nachteil:
Da jede App einen kompletten Browser-Unterbau laden muss, verbraucht selbst ein simpler Electron-Texteditor nach dem Start oft 150 bis 300 Megabyte Arbeitsspeicher. Wer also VS Code, Discord, Spotify und Signal gleichzeitig offen hat, blockiert schnell über einen Gigabyte RAM nur für die Hintergrund-Frameworks.
1.2 1.2 🛠️ INTEGRATION IM SYSTEM UND IDENTIFIKATION
Da Electron eine Entwicklungs-Basis und kein eigenständiges Programm ist, installiert man es in der Regel nie direkt, sondern immer als blinden Passagier innerhalb einer anderen App.
1.2.1 Wie entlarvt man eine Electron-App ?
Wenn ein User über ein Programm klagt, das extrem viel RAM frisst, kann man im Terminal mit dem Prozess-Manager nachsehen. Gibt man dort beispielsweise Folgendes ein:
... und sieht daraufhin eine lange Liste von 5 bis 10 verschiedenen Unterprozessen (wie --type=renderer oder --type=utility), handelt es sich unverkennbar um eine Electron-Anwendung. Jedes dieser Segmente ist ein eigener Browser-Prozess von Chromium.
1.3 1.3 ⚠️ DIE KLASSISCHEN STOLPERSTEINE
1.3.1 „Meine Electron-App (z. B. Discord oder Spotify) zeigt unter Wayland nur ein schwarzes Fenster oder flackert extrem.“
Hintergrund:
Ältere Versionen von Electron nutzen standardmäßig noch das veraltete X11-Protokoll zur Bildausgabe. Läuft das Linux-System auf dem modernen Wayland-Standard (wie heute bei Debian, Ubuntu oder Fedora üblich), muss die Grafikausgabe über die XWayland-Kompatibilitätsschicht übersetzt werden. Das führt gelegentlich zu Darstellungsfehlern oder Hardwarebeschleunigungs-Problemen.
Lösung:
Man kann moderne Electron-Apps zwingen, nativ mit Wayland zu kommunizieren, indem man ihnen beim Start spezielle Parameter mitgibt. Im Terminal oder im Starter (.desktop-Datei) fügt man dafür folgende Flags an den Befehl an:
Tipp: Bei vielen Flatpak-Versionen (z. B. VS Code) sind diese Anpassungen in den neuesten Updates oft schon ab Werk aktiv.
1.3.2 „Eine Electron-App stürzt beim Start sofort ab und meldet einen Fehler bezüglich 'User Namespaces'.“
Hintergrund:
Chromium nutzt eine extrem strikte Sicherheits-Sandbox, um Schadcode zu isolieren. Auf einigen minimalistisch oder sehr restriktiv konfigurierten Linux-Systemen (oft bei speziellen Kernel-Einstellungen im Bereich IT-Sicherheit) ist das Erstellen von unprivilegierten User Namespaces jedoch komplett deaktiviert. Die App verweigert dann den Dienst.
Lösung:
Sollte dieser seltene Fehler im Forum auftauchen, kann man die Sandbox der App als Übergangslösung deaktivieren (Achtung: verringert die Sicherheit der App!).
Der Befehl im Terminal lautet:
Die sauberere Methode ist jedoch immer, die Namespaces im Linux-Kernel über sysctl dauerhaft zu erlauben.
1.4 1.4 💡 FAZIT
Electron hat die Linux-Software-Landschaft gerettet, da es großen Firmen (wie Spotify oder Slack) den Portierungs-Aufwand massiv erleichtert hat.
Für Nutzer gilt jedoch die goldene Regel:
Auf starken PCs ist Electron ein Segen für die Software-Vielfalt – auf sehr alter Hardware oder Systemen mit wenig RAM sollte man, wo immer es geht, nach nativen Alternativen (wie Geany statt VS Code) Ausschau halten.