staging.inyokaproject.org

Neueste Artikel

gestern

Die MZLA Technologies Corporation hat mit Thunderbird 152.0.1 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 152.0.1

Mit Thunderbird 152.0.1 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht. Dieses behebt mehrere Sicherheitsprobleme sowie einen Fehler in Zusammenhang mit Exchange.

Der Beitrag Sicherheits-Update Thunderbird 152.0.1 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

30. Juni 2026

Kurz notiert: Besonders schätze ich an KDE, dass die Konfigurationsoptionen über die Jahre so erhalten geblieben sind. Das betrifft insbesondere die Möglichkeit, die Themes und Panels umfangreich anzupassen. Dadurch konnte man noch lange das Oxygen- und Air-Theme nutzen, das eigentlich zu KDE 4 gehörte.

Trotzdem hat man über die Jahre gespürt, dass die Themes effektiv in die Jahre kamen und einige technische Neuerungen nicht mehr zurückportiert wurden. Während die eckigen unpassenden Hintergründe in den Textfeldern noch verkraftbar waren, wurde Dolphin zunehmend schwieriger zu nutzen und auf der Arbeitsfläche funktionierten auch viele Widgets nicht mehr. Das hat dazu gehört, dass ich teilweise schon begann, auf Breeze umzustellen. Ich habe schon vermutet, dass das Theme über kurz oder lang aus dem Source Tree entfernt wird.

Anfang des Jahres kam dann aber die überraschende Nachricht, dass anlässlich des 30-jährigen KDE-Jubiläums auch die alten Themes restauriert werden sollen.

Das Ergebnis wird nun mit Plasma 6.7 veröffentlicht und wird im verlinkten Blogartikel umfangreich vorgestellt. Ich habe das aktualisierte Theme schon ausprobiert und bin begeistert, dass die alten Themes wieder so gut funktionieren und an die neuen Gegebenheiten angepasst wurden. Auch wurde das Icon-Set überarbeitet. Am Refresh hat sogar der ursprüngliche Oxygen-Entwickler Nuno Pinheiro mitgearbeitet. Aus meiner Sicht ein sehr gelungenes Update.

Warum erwähne ich das? Weil es ein gutes Beispiel dafür ist, dass es auch heute noch Software gibt, die es Nutzern nach Designüberarbeitungen erlaubt, ihre Workflows und optischen Präferenzen beizubehalten. Nicht jeder ist ein Freund der verschiedenen Varianten des Flat Designs und es wird auch einige Befürworter der farbenfrohen Icons geben.

Über Design lässt sich streiten. Aber die Option, eine Auswahl zu geben, erhöht nicht nur die Zugänglichkeit der Systeme (Kontraste, etc.), sondern ermöglicht in meinen Augen auch die Kontinuität, was wiederum eine Wertschätzung der Nutzer darstellt.

Mozilla hat mit Firefox 152.0.4 sein wöchentliches Korrektur-Update veröffentlicht, welches auch Sicherheits-Verbesserungen beinhaltet. Dieser Artikel beschreibt die Änderungen des neuesten Updates.

Download Mozilla Firefox 152.0.4

Mit dem Update auf Firefox 152.0.4 behebt Mozilla mehrere Sicherheitslücken.

Auch mit diesem Update gab es wieder diverse Verbesserungen in Zusammenhang mit dem KI-Feature Smart Window, welches schrittweise ausgerollt wird.

Der Dialog „Cookies und Website-Daten verwalten“ öffnete mit einer leeren Liste, wenn er über die Suchergebnisse in den Einstellungen aufgerufen wurde.

Es wurde ein Problem behoben, bei dem Tastenkombinationen für „Kopieren“, „Einfügen“, „Rückgängig“, „Wiederherstellen“ und ähnliche Funktionen in macOS-Systemdialogen, wie beispielsweise „Speichern“ und „Öffnen“, nicht funktionierten.

Der Tastaturfokus landete nach dem Aufrufen eines Links innerhalb der Seite an der falschen Stelle.

Websites verwendeten möglicherweise falsche Symbole, wenn ein Taskleisten-Tab erstellt worden ist, sofern diese zusätzlich ein einfarbiges Manifest-Symbol angeben haben.

Das Sortieren der Suchmaschinen in den Einstellungen über die Tastatur funktionierte nicht wie erwartet.

Eine mögliche Absturzursache unter Windows wurde behoben.

Der Beitrag Mozilla veröffentlicht Sicherheits-Update Firefox 152.0.4 erschien zuerst auf soeren-hentzschel.at.

29. Juni 2026

New Tab Override ist eine Erweiterung zum Ersetzen der Seite, welche beim Öffnen eines neuen Tabs in Firefox erscheint. Die beliebte Erweiterung ist nun in Version 18.0 erschienen.

Was ist New Tab Override?

Die Erweiterung New Tab Override erlaubt das Überschreiben der Seite, welche beim Öffnen eines neuen Tabs in Firefox erscheint. Dies kann eine beliebige Website, immer automatisch die aktuelle Startseite, eine lokale Datei, eine Hintergrundfarbe oder die neuesten Nachrichten von diesem Blog sein.

New Tab Override war das erste Add-on, welches das Überschreiben des neuen Tabs ermöglichte, und ist damit das Original und auch heute noch die meistgenutzte Erweiterung dieser Art. New Tab Override wurde im Dezember 2016 auf dem offiziellen Mozilla-Blog vorgestellt, schon mehrfach im Add-on Manager von Firefox beworben und gehört außerdem zu Mozillas handverlesener Auswahl empfohlener Erweiterungen.

Download New Tab Override für Firefox

Die Neuerungen von New Tab Override 18.0

Modernes Design der Einstellungs-Oberfläche

Die auffälligste Neuerung zuerst: Die Einstellungs-Oberfläche von New Tab Override erstrahlt in völlig neuem Glanz. Das Design basiert auf der identischen Design-Sprache, welche auch vom Enterprise Policy Generator genutzt wird.

New Tab Override 18
New Tab Override 18

In diesem Zusammenhang wurde auch gleich der native Bestätigungsdialog zum Löschen einer lokalen Datei durch eine eigene und visuell deutlich ansprechendere Version ersetzt.

New Tab Override 18

Verbesserungen in Zusammenhang mit Option für Website-Fokus

Für Nutzer, welche die Option aktiviert haben, dass der Fokus auf die Website und nicht auf die Adressleiste gelegt werden soll, gab es mehrere Verbesserungen. So erscheint nicht länger eine interne Datei der Erweiterung in der Liste kürzlich geschlossener Tabs, Firefox behält nun die aktive Tab-Gruppe und die Kompatibilität mit Erweiterungen, welche Gebrauch von Tab-Umgebungen machen, wurde verbessert.

Aus diesem Grund benötigt New Tab Override ab sofort eine zusätzliche Berechtigung, um auf die zuletzt geschlossenen Tabs zugreifen zu dürfen.

Konfiguration der Erweiterung über Unternehmensrichtlinien

System-Administratoren haben ab sofort die Möglichkeit, New Tab Override über sogenannte Unternehmensrichtlinien zu konfigurieren. Dies kann in Form einer policies.json-Datei beispielsweise so aussehen:

{
  "policies": {
    "3rdparty": {
      "Extensions": {
        "newtaboverride@agenedia.com": {
          "type": "custom_url",
          "url": "https://www.soeren-hentzschel.at",
          "focus_website": true
        }
      }
    }
  }
}

Tipp: Der Enterprise Policy Generator hilft bei der Konfiguration von Unternehmensrichtlinien.

Wurde New Tab Override über eine Unternehmensrichtlinie konfiguriert, können die konfigurierten Optionen nicht vom Benutzer verändert werden. Alle weiteren Optionen bleiben weiterhin für den Benutzer veränderbar.

New Tab Override 18

Keine Datensammlung

New Tab Override sammelt keine Daten. Um dies explizit zu machen, wurde eine neue Eigenschaft im Erweiterungs-Manifest gesetzt. Diese sorgt dafür, dass Nutzer bei der Installation sowie in der Add-ons-Verwaltung einen entsprechenden Hinweis sehen.

New Tab Override 18

Sonstige Neuerungen von New Tab Override 18

Bei Verwendung der Option, eine Farbfläche als neuen Tab zu verwenden, zeigen die Einstellungen jetzt auch den Hex-Code der ausgewählten Farbe an.

New Tab Override 18

Ein Fehler wurde behoben, der dafür sorgte, dass der Eintrag im Extras-Menü nicht funktionierte.

Sämtlicher JavaScript- und CSS-Code unter der Haube wurde modernisiert, ebenso wie der dahinter liegende Entwickler-Workflow. Dies zahlt auf eine bessere Code-Qualität sowie bessere Wartbarkeit für zukünftige Updates ein.

Neue Mindestvoraussetzung ist Firefox 140. Firefox 115 bis Firefox 139 werden nicht länger unterstützt.

Ausblick: New Tab Override 19.0

Die Entwicklung von New Tab Override 19.0 ist auch schon weit vorangeschritten. Mit der neuen Version wird es nicht mehr nur möglich sein, eine einzelne Seite für alle neuen Tabs festzulegen. Ab New Tab Override 19.0 wird für jede Tab-Umgebung sowie jede Tab-Gruppe eine individuelle Startseite festlegbar sein.

Entwicklung unterstützen

Wer die Entwicklung des Add-ons unterstützen möchte, kann dies tun, indem er der Welt von New Tab Override erzählt und die Erweiterung auf addons.mozilla.org bewertet. Auch würde ich mich sehr über eine kleine Spende freuen, welche es mir ermöglicht, weitere Zeit in die Entwicklung des Add-on zu investieren, um zusätzliche Features zu implementieren.

Der Beitrag New Tab Override 18.0 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

28. Juni 2026

Die MZLA Technologies Corporation hat mit Thunderbird 20 ein Update für die Android-Version seines E-Mail-Clients veröffentlicht.

Download Thunderbird für Android

Die MZLA Technologies Corporation hat Thunderbird 20 für Android veröffentlicht und bringt damit eine Reihe von kleineren Verbesserungen und Fehlerbehebungen.

Der Beitrag Thunderbird 20 für Android veröffentlicht erschien zuerst auf soeren-hentzschel.at.

27. Juni 2026

Mit Common Voice stellt Mozilla den weltweit größten öffentlichen Datensatz menschlicher Stimmen bereit – kostenlos und für jeden nutzbar. Mozilla hat Version 26 seines Datensatzes veröffentlicht.

Der Markt für Spracherkennung wird von den ganz großen Namen kommerzieller Anbieter dominiert: Amazon, Apple, Google, Microsoft. Darum hat Mozilla im Jahr 2017 das Projekt Common Voice gestartet. Mit Common Voice bietet Mozilla eine kostenlose Alternative an, zu der jeder beitragen kann und die jedem zur Verfügung steht. Damit möchte Mozilla Innovation und Wettbewerb in der Sprachtechnologie auf Basis von Maschinenlernen fördern.

Mozilla Common Voice 26

Der nun veröffentlichte Datensatz Common Voice Scripted Speech 26 beinhaltet für die deutsche Sprache 1.490 Stunden an Daten und ist 34,77 GB groß. In Summe waren 20.529 Menschen am deutschsprachigen Datensatz beteiligt. Der Datensatz Common Voice Spontaneous Speech 4 für spontane Sprache kommt für Deutsch auf 1,2 Stunden an Daten und ist 33,36 MB groß, beigetragen von 28 Personen.

Insgesamt deckt Mozilla Common Voice mit der neuen Version, die wieder Unterstützung für vier neue Sprachen bringt, 294 Sprachen mit insgesamt 42.893 aufgenommenen Stunden ab, was Mozilla Common Voice zum vielfältigsten mehrsprachigen Sprachkorpus der Welt macht. Die Anzahl der unterstützten Sprachen für spontane Sprache ist von 72 auf 78 Sprachen gewachsen.

Zum Download der Mozilla Common Voice Datensätze
Zu Mozilla Common Voice beitragen

Der Beitrag Mozilla veröffentlicht Common Voice 26 erschien zuerst auf soeren-hentzschel.at.

26. Juni 2026

Solo ist ein Website-Builder von Mozilla. Nun steht Solo 2.3 bereit.

Jetzt Website-Builder Solo von Mozilla testen

Die Neuerungen von Solo 2.3

Mozilla hat den Prozess, eine neue Domain zu kaufen, überarbeitet. Bezahlte Pläne beinhalten ab sofort bereits eine kostenlose Domain. Und die Domain-Verwaltung inklusive der DNS-Records und Verlängerungen ist jetzt über das Account-Menü zugänglich.

Websites können nun automatisch bei Bing indiziert werden, um die Sichtbarkeit in den Suchergebnissen zu verbessern.

Neue Layout-Optionen für den Header unterstützen mehr Navigationslinks, zentrierte Logos und größere Logo-Grafiken.

Das Duplizieren von Seiten wurde in den Seiteneinstellungen hinzugefügt. Außerdem können jetzt auch Abschnitte dupliziert oder auf andere Seiten verschoben werden.

Im Blog gibt es nun eine Auswahl für das Datumsformat und im Bereich „Bewertungen” sind Sterne-Bewertungen möglich.

Die Ladegeschwindigkeit veröffentlichter Websites wurde verbessert und es gab diverse Fehlerkorrekturen und Verbesserungen unter der Haube.

Außerdem wurde ein Partnerprogramm gestartet, worüber man Prämien durch das Anwerben neuer Solo-Kunden verdienen kann.

Der Beitrag Website-Builder: Mozilla bringt Solo 2.3 erschien zuerst auf soeren-hentzschel.at.

25. Juni 2026

Mozilla hat mit Firefox 152.0.3 ein Update außer der Reihe veröffentlicht und behebt damit genau ein Problem.

Download Mozilla Firefox 152.0.3

Die vor zwei Tagen veröffentlichte Version Firefox 152.0.2 hatte eine Regression, die dafür sorgen konnte, dass es beim Start von Firefox zu einem hohen Speicherverbrauch kam, der schließlich zum Einfrieren von Firefox führte. Betroffen waren Nutzer von Firefox mit installierten Sprachpaketen. Dieses Problem wurde mit Firefox 152.0.3 aus der Welt geschafft.

Der Beitrag Mozilla veröffentlicht Firefox 152.0.3 erschien zuerst auf soeren-hentzschel.at.

23. Juni 2026

Mozilla hat mit Firefox 152.0.2 sein wöchentliches Korrektur-Update veröffentlicht. Dieser Artikel beschreibt die Änderungen des neuesten Updates.

Download Mozilla Firefox 152.0.2

In manchen Sprachen konnte es vorkommen, dass einzelne Überschriften in den Einstellungen nicht korrekt übersetzt waren. Nach der Änderung der Browsersprache konnte es außerdem vorkommen, dass die Sprache der Widgets auf der Firefox-Startseite nicht ihre Sprache aktualisierten.

Die Gamepad API unterstützt jetzt auch den PlayStation DualSense Controller. Darüber hinaus gab es mehrere Verbesserungen der Webkompatibilität und eine Performance-Regression bei der Web Crypto API wurde behoben.

Auch in Zusammenhang mit dem KI-Feature Smart Window wurden wieder diverse Verbesserungen vorgenommen.

Der Beitrag Mozilla veröffentlicht Firefox 152.0.2 erschien zuerst auf soeren-hentzschel.at.

Mit DCS werden bekannte Desktop-Paradigmen neu sortiert. Wer sich darauf einlässt, erhält ein spannendes und innovatives Retro-Betriebssystem auf Debian-Basis.



Mein erster selbst gekaufter PC war gar keiner, sondern ein Mac. Um genau zu sein, ein quietschbunter iMac. Das Gerät hatte einen PowerPC mit 233 MHz, 32 Megabyte RAM und eine wenige Gigabyte grosse Festplatte. Dazu kamen ein CD-ROM-Laufwerk sowie USB-Anschlüsse und Ethernet. Ausserdem verfügte der iMac über ein integriertes 56-Kbit/s-Modem und eine Infrarot-Schnittstelle (IrDA).

Das Design des ersten iMacs stammt übrigens aus der Feder von Jonathan Ive.


Da ich zu dieser Zeit die Möglichkeit hatte, mich kostenfrei mittels Modem ins Internet einzuwählen, war ich ähnlich wie Bobble auch schon bald online. Und das ganz ohne AOL.

An das Bedienkonzept der mitgelieferten Mac OS-Version hatte ich mich schnell gewöhnt. Der sogenannte Spatial Mode erschloss sich mir intuitiv. Dabei wird der Computer wie ein physischer Raum mit Ordnern betrachtet. Jeder Ordner öffnet sich in einem eigenen Fenster und die Fensterposition und -grösse werden gespeichert. Das heisst, beim erneuten Öffnen des Ordners, erscheint das Fenster an der zuletzt genutzten Position.

Auch die Freie Desktopumgebung GNOME hat diese Idee später mit Version 2.6 fortgeführt und dem Dateimanager Nautilus ein Spatial-Interface spendiert.

Da dieser Ansatz in der PC-Welt eher unbekannt war, sind viele Linux-Distributionen dazu übergegangen, standardmässig den sogenannten Browser-Mode zu aktivieren, den wir auch heute fast überall vorfinden. Dabei wird ein Ordner im gleichen Fenster geöffnet.

Und selbst Apple ist in neueren Versionen von dieser mir logisch erscheinenden Art, mit einem Computer zu interagieren, abgekommen.

mycophobia hat dies zum Anlass genommen, mit dem Desktop Classic System eine Debian-basierte Linux-Distribution bereitzustellen, die vom klassischen Mac OS nicht nur inspiriert wurde, sondern darauf aufbauend intuitive Verbesserungen bietet.

Der Dateimanager

Herzstück ist eine modifizierte Version der MATE-Desktopumgebung, wobei in erster Linie der File Manager Caja angepasst wurde.

Die Grundidee besteht darin, dass sich alle Elemente des Computers vom Desktop aus erreichen lassen. Alle Dateien und Ordner, sowohl lokal als auch über das Netzwerk, sind über den Desktop zugreifbar. Alle Applikationen können über das Menü gestartet, neu installiert oder entfernt werden.

Das mag zunächst abstrakt klingen, erschliesst sich jedoch bereits nach kurzer Zeit, sofern man bereit ist, etablierte Bedienkonzepte zur Seite zu legen.

Am deutlichsten wird dies beim Dateimanager Caja, der wie bei GNOME 2 im Spatial-Modus startet. Die Standardansicht ist die Icon-Ansicht, in der Dateien und Ordner frei platziert und sortiert werden können.


Überdies kann jedes Fenster mit einem eigenen Hintergrundbild oder einer Hintergrundfarbe versehen werden, sodass sich diese schneller identifizieren lassen. Ordner und Dateien können ausserdem mit einem Symbol versehen werden. Ansichtseinstellungen, wie die Symbolgrösse, der Hintergrund oder der Darstellungsmodus werden für jeden Ordner separat gespeichert. Für eine Navigation in komplexen Ordnerstrukturen eignet sich der List-Mode, mit dem man sich auch in verschachtelten Ordnern schnell einen Überblick verschaffen kann.

Die Fensterverwaltung

Nicht nur der Dateimanager arbeitet im Spatial-Modus, auch die Fensterverwaltung nutzt dieses Konzept. Und da wären wir wohl auch bei dem gewöhnungsbedürftigen Punkt von DCS, denn wer Knöpfe zum Minimieren oder Maximieren eines Fensters erwartet, sucht vergeblich. Zwar gibt es in der Taskleiste neben dem Arbeitsflächenumschalter eine Fensterliste, jedoch nur, um «verloren gegangene Fenster» wieder einzufangen. Im besten Falle sollte diese daher nie zum Einsatz kommen.

Fenster vergrössert man über die Resize-Möglichkeiten am Fensterrand und den Fensterecken. Die Position und Grösse eines Fensters werden auch hier gespeichert, das heisst, öffnet man das Programm erneut, wird es an der zuletzt genutzten Position wieder geöffnet.

Auf der linken Titelleiste eines Fensters findet man zwei Knöpfe, einen, der aussieht wie ein Minimieren-Button, und einen, der aussieht wie ein Maximieren-Knopf. Doch die Funktionen sind nicht wie gewohnt belegt. Der Minimieren-Button dient dazu, das Fenster einzurollen. Damit wird nur noch die Titelleiste des Fensters angezeigt, der Fensterinhalt aber ausgeblendet. So werden die darunter liegenden Fenster sichtbar. Ein erneuter Klick auf den im Englischen als Shading bezeichneten Knopf rollt das Fenster wieder aus.

Die Funktion des üblicherweise zum Maximieren genutzten Buttons ist auf Anhieb nicht ersichtlich und wird erst verständlich, sobald man sich mit der Funktionsweise der virtuellen Arbeitsflächen beschäftigt hat. Im oberen rechten Bereich befindet sich der Arbeitsflächenumschalter, mit dem man zwischen vier virtuellen Arbeitsflächen wechseln kann. Die Idee von mycophobia ist, dass man den mit der Funktion «immer auf allen Arbeitsflächen sichtbar» belegten Knopf einmal anklickt, dann zum Beispiel auf die Arbeitsfläche 2 wechselt und dann den Knopf erneut drückt. So lässt sich einfach ein Fenster einfach auf eine andere Arbeitsfläche verschieben.

Über einen Mittelklick auf die Titelleiste lässt sich zudem ein Fenster ganz nach unten in dem Fensterstapel absenken. Damit ist das Fenstermanagement bereits vollumfänglich erklärt. Man positioniert und arrangiert die Fenster so im Raum, wie man es möchte, und beim erneuten Öffnen erscheinen sie an der gewohten Position wieder.

Das Menü

Über das Menü lassen sich Programme starten und Favoriten erstellen. Einträge können mittels Drag & Drop auf dem Desktop oder dem Panel platziert werden.

Im Menü befindet sich ausserdem ein Eintrag für den AppManager, einer Eigenentwicklung des Projektes. Darüber lassen sich Updates einspielen, Pakete suchen und installieren, und Programme deinstallieren. Dabei ist zu beachten, dass der AppManager nur Programme zur Installation anbietet, die einen sogenannten .desktop-Eintrag mitliefern, also Programme, die sich grafisch starten lassen.

Zur Deinstallation kann man einfach ein Programm per Drag & Drop aus dem Menü ablegen, und auch .deb-Dateien, wie der offizielle Steam-Client, können auf diese Weise installiert werden.

Die Darreichungsform

DCS basiert auf Debian GNU/Linux in der Stable-Variante. Ausgeliefert wird das System mit einem minimalen Softwareausbau. Nicht mal ein Browser ist standardmässig mit an Bord. Dabei handelt es sich um eine bewusste Designentscheidung.

Interessant ist zudem, dass die Distribution nicht wie sonst üblich in der Form einer ISO-Abbilddatei ausgeliefert wird, sondern als Zip-Archiv, welches auf einen FAT32-formatierten USB-Stick entpackt werden muss. Dabei ist zu beachten, dass der Inhalt des Archivs direkt auf dem Stick abgelegt wird und nicht in einem Unterordner.

Ist das passiert, kann das Desktop Classic System gestartet werden, vorausgesetzt, der Computer verfügt über ein modernes EFI-BIOS.

Auch in einer Virtualisierungsumgebung lässt sich DCS ausprobieren. Ich habe die Distribution in der QEMU-basierten Virtualisierungslösung UTM für den Mac getestet, musste dort allerdings USB-Passthrough aktivieren.

Fazit

Auf mich macht DCS einen soliden und durchdachten Eindruck. Hat man sich erst einmal mit dem ungewöhnlichen Bedienkonzept vertraut gemacht und ist bereit, bekannte Paradigmen beiseitezulegen, macht es nicht nur viel Spass, man kann auch flott damit arbeiten.

Die Idee, dass sich Elemente in einem fest definierten Raum wiederfinden lassen, gefällt mir sehr gut und fühlt sich für mich natürlich an.

Wer die kleineren Hürden vor dem Test der Distribution überwinden mag, dem erschliesst sich eine neue, vielleicht teils vertraute und dennoch innovative Welt.

Links:

DCS-Hauptseite: https://mycophobia.org/dcs/
Gründe für DCS: https://mycophobia.org/reasons/index.html
Quick-Start-Guide: https://mycophobia.org/dcs/Quick-Start%20Guide.pdf
DCS-Forum: https://mycophobia.org/forums/viewtopic.php?t=38
Bildquelle iMACs: Original-Apple-Werbung von 1999
Bildquelle Header: DCS-Homepage

Wenn dir der Artikel gefällt, kannst du mich gerne mit einer Spende unterstützen.


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

20. Juni 2026

Mozilla hat Version 2.38 seiner VPN-Clients für das Mozilla VPN veröffentlicht. Die neue Version bringt unter anderem ein Startbildschirm-Widget für iOS.

Mit dem Mozilla VPN bietet Mozilla in Zusammenarbeit mit Mullvad sein eigenes Virtual Private Network an und verspricht neben einer sehr einfachen Bedienung eine durch das moderne und schlanke WireGuard-Protokoll schnelle Performance, Sicherheit sowie Privatsphäre: Weder werden Nutzungsdaten geloggt noch mit einer externen Analysefirma zusammengearbeitet, um Nutzungsprofile zu erstellen.

Jetzt Mozilla VPN nutzen

Die Neuerungen vom Mozilla VPN 2.38

Nachdem es bereits mit dem Mozilla VPN 2.37 ein paar Neuerungen speziell für iOS gab, macht Mozilla mit dem Mozilla VPN 2.38 dort weiter: Ab sofort gibt es ein Widget in zwei möglichen Größen, um das VPN über den Startbildschirm ein- und ausschalten zu können.

Beim Senden einer Support-Anfrage aus der Anwendung heraus gibt es nun eine zusätzliche Checkbox, um das Mitsenden von Logs aktivieren oder deaktivieren zu können.

Ansonsten bringt das Update auch wieder Fehlerbehebungen und Verbesserungen unter der Haube.

Der Beitrag Mozilla VPN 2.38 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Meine primäre Programmiersprache ist schon sehr lange Python. Ich bin kein Softwareentwickler; dennoch liefere ich damit gut funktionierenden Code und damit auch Lösungen — meist Plugins/Module für bestehende Komponenten, aber auch mal ein Backend für IoT-Devices. Das meiste davon entstand im Rahmen meiner Erwerbsarbeit und steht daher unter NDA.

hello_world.go

Schon länger besteht jedoch der Wunsch, eine weitere Programmiersprache zu können, weshalb ich mir Gedanken über meine Anforderungen an eine neue Programmiersprache gemacht habe:

  • Die Sprache sollte kompiliert werden müssen; es sollte also keine Skriptsprache mehr sein.
  • Die Sprache sollte statisch typisiert sein.
  • Die Sprache sollte plattformübergreifend, zumindest aber auf Linux und macOS gut lauffähig sein.
  • Die Sprache sollte architekturübergreifend, inkl. Cross-Compiling, verwendbar sein. Ich möchte also auch in der Lage sein, auf einer Intel- oder AMD-CPU Binaries für ARM zu bauen.

Evaluiert habe ich folgende Programmiersprachen, jeweils eine Woche. Meine Testaufgabe waren lediglich ein paar einfache REST-API-Aufrufe und das damit verbundene Parsen von JSON.

  • Rust: Alle reden davon, ich wollte es also auch mal wissen. Um ehrlich zu sein, war mir die Einstiegshürde (von Python kommend) zu hoch; gleichzeitig empfand ich das Tooling als wenig attraktiv, und mir fehlte das von Python gewohnte “Batteries included”. Rust ist sicher eine hervorragende Programmiersprache, aber eben doch nicht meine.
  • C: Im Hackerspace- und CCC-Umfeld wird häufig C verwendet, was naheliegend ist für die vielen ESP32, die überall herumliegen. Die Lernkurve war zumindest anfangs noch ganz OK; allerdings empfand ich das Tooling als eher altertümlich und auch das “Batteries included” fehlte mir wieder. Dazu kommen noch die diversen footguns, die die sichere Verwendung dieser alten Sprache nicht gerade einfacher machen.
  • Go: Bekannt vor allem durch das ganze Container- und DevOps-Tooling war natürlich auch Go eine Sprache, die in Betracht kam. Im Vergleich zu Rust oder C konnte ich mich recht schnell an das Tooling gewöhnen. Von Python kommend wirkt Go fast schon wie eine Low-Level-Programmiersprache. Gefallen hat mir auch, dass es wieder “Batteries included” gibt.

So war die Entscheidung schnell gefallen: Es sollte Go werden. Nicht evaluiert habe ich Zig, was sicher auch eine gute Programmiersprache ist; zum Zeitpunkt der Entdeckung hatte ich mich jedoch bereits entschieden.

“Learning by Doing”

Learning by Doing ist sehr effizient, vor allem, da man dabei auch viele Fehler macht und daraus lernt.

Zuerst habe ich die meisten privat laufenden Python-Tools durch neue Implementierungen in Go ersetzt. Dies umfasst diverse Prometheus-Exporter, aber auch das angepasste Lademanagement, welches mein EVCC “optimiert”.

Aufgefallen ist mir dabei unter anderem, wie viel kleiner meine Container wurden: in einem Fall ging es von ca. 300 MiB auf ca. 15 MiB herunter — das ist ordentlich.

Die (oft) deutlich bessere Performance von Go spielte hier nur selten eine Rolle; nichts, was ich privat betreibe, läuft im Maßstab von Google, Cloudflare oder Amazon.

Unerwartet schnell habe ich gelernt, dass Fehler auch Freunde sind (Go hat ein sehr explizites Error-Handling) und dass Exceptions weniger nett sind, als das Konzept zunächst klingt.

Dokumentation

Neben A Tour of Go empfand ich vor allem Go by Example als sehr hilfreich. Die offizielle Dokumentation der Sprache ist ebenfalls sehr gut und verständlich.

Bücher

Der nächste Schritt war dann ein Deep Dive in Form von Abendlektüre und beinhaltete zwei Bücher, die ich hier kurz vorstellen möchte.

Learning Go: An Idiomatic Approach to Real-World Go Programming (English Edition)

Vor allem, wenn man von einer anderen Sprache kommt, ist dieses Buch sehr hilfreich, da es zeigt, wie man idiomatischen Code erstellt, der auch zu den Patterns der Sprache passt.

Zu oft ist es mir passiert, dass ich versucht habe, “pythonic” Code zu schreiben, obwohl ich jetzt auf Go unterwegs bin, wo Dinge eben anders getan werden sollten oder sogar müssen.

Effektiv habe ich das Buch am Abend in einer Woche komplett verschlungen; es ist meiner Ansicht nach jeden Cent wert.

100 Go Mistakes and How to Avoid Them (English Edition)

Wie schon weiter oben erwähnt: Aus Fehlern lernt man. Und der Autor dieses Buches hat mindestens 100 Fehler sehr oft gemacht, sodass ich direkt vom Profi lernen kann.

Das Buch ist eine sehr gute Ergänzung, da man im einen Buch über idiomatischen Code lernt, wie Code aussehen sollte, und in diesem hier, wie genau er nicht aussehen sollte.

Zugegeben: ca. ein Drittel der genannten Fehler wären mir auch ohne Kenntnisse der Sprache aufgefallen; bei wiederum anderen wäre ich direkt in das offene Messer gelaufen.

AI / KI

Zum Lernen habe ich auch KI-generierte Inhalte verwendet. Anfangs hatte ich in meinem Editor (Visual Studio Code) noch Copilot aktiviert, aber zumindest auf dem privaten PC wurde diese Erweiterung nach einigen Tests deinstalliert.

Man lernt nicht oder nur sehr langsam, wenn einem die KI immer die “beste” Lösung vorschlägt, und manchmal läuft man auch einen komplett falschen Pfad entlang.

Mittlerweile verwende ich nur noch OpenCode und beziehe ein paar Tokens durch OpenRouter. Hin und wieder hilft mir auch Perplexity bei der Recherche.

KI darf privat meinen Code nur noch reviewen oder mir in bestimmten Fällen etwas Unterstützung geben. Meist reichen die Reviews aus, um meinen Code zu verbessern. Agenten sollen privat keinen Code für mich schreiben. Ich möchte den Lerneffekt mitnehmen, die Basics verstehen und in Fallen laufen. Scheitern ist Teil des Weges.

Fazit

Go macht mir sehr viel Spaß, und ich konnte das neue Wissen auch schon im beruflichen Kontext umsetzen. Der Blick über den Python-Tellerrand hat mir gut getan.

18. Juni 2026

Mozilla hat Firefox 152.0.1 veröffentlicht und behebt damit unter anderem Abstürze auf Systemen mit Intel Raptor Lake Prozessoren.

Download Mozilla Firefox 152.0.1

Nur zwei Tage nach Veröffentlichung von Firefox 152 hat Mozilla Firefox 152.0.1 veröffentlicht. Behoben werden damit Abstürze, welche – wieder einmal – nur auf Systemen mit einer Raptor Lake CPU von Intel auftreten. Damit wiederholt sich eine Geschichte, die es bereits mit Firefox 151 gab. Es handelt sich hierbei allerdings nicht um das gleiche Problem. Die Raptor Lake Familie von Intel ist leider bekannt als Ursache für massive Stabilitätsprobleme, was Software-Hersteller immer wieder zu Workarounds zwingt.

Außerdem wurde eine weitere potenzielle Absturzursache unter Windows behoben und ein Problem unter macOS wurde korrigiert, bei dem die Auswahl einer PDF-Option, wie beispielsweise „Als PDF speichern“, im Systemdruckdialog dazu führte, dass der Druckauftrag an den Drucker gesendet wurde, anstatt eine Datei zu speichern.

Der Beitrag Mozilla veröffentlicht Firefox 152.0.1 erschien zuerst auf soeren-hentzschel.at.

17. Juni 2026

Mozilla hat Firefox 152 für Windows, Apple macOS und Linux veröffentlicht. Dieser Artikel fasst die wichtigsten Neuerungen zusammen – wie immer auf diesem Blog weit ausführlicher als auf anderen Websites.

Download Mozilla Firefox für Microsoft Windows, Apple macOS und Linux

Neue Oberfläche für Firefox-Einstellungen

Die Firefox-Einstellungen erstrahlen in neuem Glanz. Doch nicht nur optisch hat sich etwas getan. Auch die Implementierung unter der Haube wurde erneuert und aus Nutzersicht relevant: Die Einstellungen wurden neu strukturiert mit deutlich mehr Kategorien als vorher, womit es einfacher sein sollte, die gewünschte Option zu finden.

Firefox 152 Firefox 152

Sonstige Endnutzer-Neuerungen in Firefox 152

Wird eine Website mit blockierten Trackern in einem privaten Fenster neu geladen, erscheint eine neue Infoleiste, welche die Option anbietet, die strengeren Schutzmaßnahmen temporär aufzuheben.

Wenn der Download einer PDF-Datei oder einer anderen Datei, die Firefox direkt öffnet, abgeschlossen ist, wird diese nun in einem Hintergrund-Tab geöffnet, falls bereits ein Wechsel zu einem anderen Tab erfolgte oder die ursprüngliche Seite geschlossen wurde.

Das Vergrößern oder Verkleinern von Websites mittels Tastatur oder Maus erfolgt nun in kleineren Schritten.

Über die Eingabe von „stumm” in die Adressleiste kann eine neue Schnellaktion erreicht werden, um alle Tabs mit aktiver Audio-Wiedergabe stumm zu schalten.

Über Menü → Weitere Werkzeuge → Symbolleiste anpassen … lässt sich eine neue Schaltfläche zur Oberfläche hinzufügen, um den aktiven Tab an ein anderes Gerät zu senden.

In der Sidebar „Tabs von anderen Geräten“ können Tabs nun über das Kontextmenü in einem neuen Tab geöffnet werden.

Das Kontextmenü für Tabs beinhaltet nun auch für nicht angemeldete Nutzer einen Eintrag, um Tabs an andere Geräte zu setzen, worüber man dann zur Anmeldung für die Synchronisation gelangt.

Auf Windows und Linux gibt es im Kontextmenü von Tabs einen neuen Eintrag Teilen → Link kopieren, um Links von Tabs teilen zu können, ohne den Tab dafür wechseln zu müssen.

Für die Widevine-Wiedergabe wird nun bevorzugt der jeweilige Plattform-Decoder anstelle des Standard-Decoders von Widevine genutzt, welcher ein Hardware-Decoder sein kann und damit eine bessere Performance sowie HDR-Unterstützung bringt.

Die Übersetzungsfunktion steht nun auch für die Sprachen Baskisch und Galicisch zur Verfügung.

Firefox-Versionen in Kroatisch, Englisch (Großbritannien), Georgisch, Persisch, Slowenisch, Tadschikisch, Tamil, Tibetisch, Türkisch, Walisisch und Xhosa werden nun von Haus aus mit einem integrierten Wörterbuch für die Rechtschreibprüfung ausgeliefert, ohne dass dieses manuell installiert werden muss.

In den Einstellungen der Entwickerwerkzeuge gibt es eine neue Option, um die Anzeige von Kommentaren im Inspektor ein- oder auszuschalten.

Die Illustrationen auf den Netzwerk-Fehlerseiten wurden durch das neue ersetzt, die das neue Kit-Maskottchen von Mozilla zeigen.

Sogenannte Taskbar-Tabs nutzen jetzt die vom Website-Entwickler in einem Manifest definierten Symbole, sofern vorhanden.

Firefox unterstützt nicht länger eine Migration von Daten aus dem alten Edge Browser, bevor dieser auf Chromium basierte.

Mehr Sicherheit für Firefox-Nutzer

Auch in Firefox 152 wurden wieder mehrere Sicherheitslücken geschlossen. Alleine aus Gründen der Sicherheit ist ein Update auf Firefox 152 daher für alle Nutzer dringend empfohlen.

Verbesserungen der Webplattform

Über den Abschnitt „Firefox Labs” in den Einstellungen lässt sich eine experimentelle Unterstützung des Bildformats JPEG XL aktivieren.

Datei-Uploadfelder mit accept="image/*" akzeptieren nun auch *.avif und *.jxl-Dateien.

Firefox unterstützt nun die Funktion „WebAuthn Related Origin Request“, die Anmeldeabläufe vereinfacht, indem Passkeys von mehreren Domains aus verwendet werden können.

Web-Benachrichtigungen unterstützen jetzt die Eigenschaft actions, um diese mit Aktionsschaltflächen versehen zu können. Diese werden als Schaltflächen unterhalb des Benachrichtigungstextes oder in der Optionsliste unter macOS angezeigt.

Die CSS-Eigenschaft field-sizing wird unterstützt, womit Formularsteuerelemente die Größe an ihren Inhalt anpassen können.

Dies war nur eine kleine Auswahl. Auch für Entwickler von Firefox-Erweiterungen gab es Änderungen. Weitere Verbesserungen der Webplattform und für Erweiterungsentwickler lassen sich wie immer in den MDN Web Docs nachlesen.

Der Beitrag Mozilla veröffentlicht Firefox 152 erschien zuerst auf soeren-hentzschel.at.

Beim Spielen ist eine Ungereimtheit aufgefallen. Wer einen anderen Spieler angreift, kann das von überall tun. Standort egal, das Gefecht passiert sofort. Wer dagegen einen fremden Planeten erobern will, muss erst in das betreffende System reisen. Zwei Angriffsarten, zwei verschiedene Regeln.

Das ist eher zufällig so gewachsen als bewusst entworfen. Für Season 3 wollen wir das vereinheitlichen, und ihr entscheidet wie.

Es gibt drei Möglichkeiten:

1. Wie bisher
Spieler greift man von überall an, Planeten nur vor Ort. Die bekannte Mischung bleibt.

2. Immer hinfliegen
Jeder Angriff setzt voraus, dass du im selben System wie dein Ziel stehst. Auch um einen Spieler anzugreifen, musst du erst zu ihm reisen. Mehr Bewegung, mehr Taktik, mehr Aufklärung nötig.

3. Alles von überall
Auch Planeten lassen sich ohne Anreise erobern. Bequem, aber das Reisen verliert an Bedeutung.

Die Abstimmung läuft im Spiel unter dem Menüpunkt “Abstimmungen”. Das Ergebnis gilt für Season 3, die aktuelle Runde bleibt unverändert. Season 2 neigt sich ohnehin dem Ende zu, also stimmt am besten jetzt ab, solange ihr noch im Spiel seid.

16. Juni 2026

Die MZLA Technologies Corporation hat mit Thunderbird 152 eine neue Version seines Open Source E-Mail-Clients für Windows, Apple macOS und Linux veröffentlicht.

Neuerungen von Thunderbird 152

Mit Thunderbird 152 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht. Die neue Version bringt kleinere Verbesserungen und eine ganze Reihe von Fehlerkorrekturen, welche sich wie immer in den Release Notes (engl.) nachlesen lassen. Auch Sicherheitslücken wurden im neuesten Update wieder behoben.

Der Beitrag Thunderbird 152 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

15. Juni 2026

Remote System mit NixOS installlieren, aber dabei die manuelle Interaktion mit dem Remote-Host reduzieren.



In diesem Beitrag möchte ich ein Remote-System mit NixOS installieren, aber dabei die manuelle Interaktion mit dem Remote-Host reduzieren, d. h., ich will kein manuelles Set-up direkt am Zielsystem durchführen.

Grundsätzliches Vorgehen

Die ersten 3 Schritte sind im Wesentlichen dieselben wie bei einer manuellen Installation – ich muss das Zielsystem vorbereiten:

  1. Aktuelles ISO-Image herunterladen
  2. Image auf einen USB-Stick brennen
  3. Notebook vom USB-Stick booten

Der nächste Schritt ist entscheidend: Ein mit USB-Stick gestartetes Zielsystem hat SSH aktiv. Leider ist für weder root noch den Standardbenutzer nixos ein Passwort gesetzt. Wenn man das Image von der Website verwendet, muss man kurz am Remote-System eingreifen und sudo passwd nixos oder sudo passwd root ausführen.

Manuelles Passwort-Setzen auf dem Remote-Rechner vermeiden

Anstatt das Standard-NixOS-ISO zu verwenden, kann man ein benutzerdefiniertes ISO erstellen, das bereits den eigenen öffentlichen SSH-Schlüssel enthält. Wenn das Notebook von diesem USB-Stick bootet, startet es automatisch den SSH-Daemon und vertraut dem eigenen Schlüssel.

Das lässt sich mit nixos-generators bewerkstelligen. Folgendes auf dem lokalen Rechner (von dem aus Nix-Befehle ausgeführt werden) hinzufügen:

nix run github:nix-community/nixos-generators -- \
  --format iso \
  --configuration '{ ... }: {
    users.users.nixos.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAA..." ];
  }'

Das habe ich selbst noch nicht getestet.

Die Konfiguration erstellen

Angenommen, wir haben nun ein laufendes Remote-System mit einem Admin-Passwort. Bevor wir beginnen können, benötigen wir eine Konfiguration. Neben der Systemkonfiguration (Bootloader usw.) benötigen wir auch die Festplattenkonfiguration. Dafür verwenden wir disko – ein Werkzeug, das es erlaubt, das Festplatten-Layout (Partitionen, LVM, LUKS, Dateisysteme) in einer .nix-Datei zu beschreiben.

  disko.devices = {
    disk = {
      main = {
        device = "/dev/sdb";
        type = "disk";
        content = {
          type = "gpt";
          partitions = {
            ESP = {
              size = "500M";
              type = "EF00";
              content = {
                type = "filesystem";
                format = "vfat";
                mountpoint = "/boot";
                mountOptions = [ "umask=0077" ];
              };
            };
            root = {
              end = "-1G";
              content = {
                type = "filesystem";
                format = "ext4";
                mountpoint = "/";
              };
            };
            plainSwap = {
              size = "100%";
              content = {
                type = "swap";
                discardPolicy = "both";
                resumeDevice = true; # Ruhezustand von diesem Gerät fortsetzen
              };
            };
          };
        };
      };
    };
  };
}

Im GitHub-Repository von disko finden sich viele verschiedene Beispiele für komplexere Set-ups. Für mein Homelab reicht es einfach: Ich brauche nur eine Boot-Partition, eine Swap-Partition und die Root-Partition.

Das zweite benötigte Werkzeug ist nixos-anywhere – ein Tool, das die Installation von NixOS auf beliebigen Maschinen über SSH ermöglicht. Es setzt lediglich voraus, dass die Zielmaschine von einem Linux-Installer (wie einem NixOS-ISO) gebootet ist und SSH-Zugang besteht.

Ich passe meine flake.nix ⁣entsprechendan, um den neuen Host zu installieren. Einfachheitshalber zeige ich hier eine vereinfachte Version:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    disko.url = "github:nix-community/disko";
    disko.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = { self, nixpkgs, disko, ... }: {
    nixosConfigurations.lenovo = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        disko.nixosModules.disko
        ./hosts/lenovo
        ./profiles/server
      ];
    };
  };
}

Das Verzeichnis hosts/lenovo enthält die hostspezifische Konfiguration einschließlich der Disko-Konfiguration. Die default.nix sieht so aus:

{ pkgs, ... }: {
  imports = [
    ./hardware.nix
    ./disko.nix
  ];
}

Die hardware.nix wiederum sieht folgendermaßen aus:

{ config, lib, pkgs,  modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.loader = {
    systemd-boot.enable = true;
    efi.canTouchEfiVariables = true;
  };

  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];
}

Unter profiles/server befinden sich gemeinsame Netzwerkkonfigurationen usw., die für alle „Server" gelten.

Die Installation durchführen

Mit der gesamten Konfiguration an Ort und Stelle können wir die Installation anstoßen. Da der Host per DHCP eine IP-Adresse erhalten hat, muss diese zunächst herausgefunden werden. Danach kann folgender Befehl ausgeführt werden:

nix run github:nix-community/nixos-anywhere -- \
  --flake .#lenovo \
  root@

Folgendes passiert nun:

  1. SSH-Verbindung: nixos-anywhere verbindet sich mit dem Ziel.
  2. Partitionierung: Disko wird verwendet, um die Festplatte zu löschen und Partitionen exakt wie definiert anzulegen.
  3. Installation: Das Flake wird lokal gebaut und das System auf das Ziel kopiert.
  4. Neustart: Nach Abschluss startet die Maschine neu und bootet das frisch und perfekt konfigurierte NixOS.

Nun haben wir ein vollständig funktionierendes Remote-System.

Abschluss

Es gibt einige Dinge, die man bedenken sollte:

  1. Wer nix-sops verwendet, sollte auch den Host-Schlüssel zur .sops.yaml⁣⁣⁣hinzufügen, wie in meinem letzten Beitrag beschrieben.

  2. Sicherstellen, dass SSH keine Passwort-Authentifizierung erlaubt:

    # OpenSSH-Server aktivieren.
    services.sshd.enable = true;
    services.openssh.settings = {
      PasswordAuthentication = false;
      PermitRootLogin = "no";
    };
  3. Die Standard-Benutzerkonten root und nixos absichern:

    • Für nixos wird ein Passwort gesetzt und SSH-Schlüssel hinzugefügt:

      users.users.nixos = {
       isNormalUser = true;
       extraGroups = [
         "wheel"
         "networkmanager"
         "video"
       ];
       hashedPasswordFile = config.sops.secrets.default_password.path;
       # Den leeren String-Fallback deaktivieren
       initialHashedPassword = lib.mkForce null;
       openssh.authorizedKeys.keys = [
         "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOrOn3Kj/+ztMtQAaq4pVvXgTsIs1ZOqQDbsA+nJMuRM nixos@homelab from clawfinger"
         "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFTCwPNpVjW6R9vqpKgNSWgGS5hZMZcHwexAMl7E/OI2 nixos@homelab from clawfinger"
       ];
      };
    • root wird vollständig für den Log-in gesperrt und ebenfalls mit einem Passwort versehen:

      users.users.root = {
      openssh.authorizedKeys.keys = lib.mkForce [ ];
      hashedPasswordFile = config.sops.secrets.default_root_password.path;
      };

Fazit und Ausblick

Dieser Workflow ist ein Gamechanger für mein Homelab. Ich kann meine Server jetzt von Grund auf neu installieren, ohne jemals eine direkt angeschlossene Tastatur anfassen zu müssen.

Quellen:
im Haupttext

Titelbild: https://hdqwalls.com/linux-nixos-wallpaper


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

Ein Wohnmobil, drei Reisende, vier Tage und fünf internetfähige Geräte (von denen wir wissen). Diese bilden den Rahmen für den zweiten Erfahrungsbericht zu meinem Reise-Router GL.iNet GL-A1300 mit OpenWrt und Travelmate.

Nach unserem Kurzurlaub habe ich meine Frau gefragt, ob sie den kleinen Reise-Router nützlich fand. Die Antwort war ein klares Ja. Es hat ihr gefallen, dass wir den kleinen Router nur mit einem USB-Anschluss versorgen und mit einem Uplink verbinden mussten und alle unsere internetfähigen Geräte waren ohne weitere Konfiguration wieder online. Das freut mich sehr, denn genau dies war der erhoffte Effekt.

Mir ist aufgefallen, dass ich das LuCI-Webinterface nicht mit den Webbrowsern meines Android-Smartphones aufrufen kann, mit denen meines Android-Tablets aber schon. Ich nutze auf beiden Firefox und Firefox Klar. Falls jemand eine Erklärung, für dieses Mysterium hat, freue ich mich über einen Kommentar.

AdBlock Fast klemmte zu Beginn. Ein apk update gefolgt von einem apk upgrade auf der CLI löste das Problem jedoch schnell in Luft auf.

An Plätzen, an denen kein Uplink-WLAN verfügbar war, habe ich den mobilen Hostspot meines Smartphones als Uplink benutzt. Auch dies hat gut funktioniert. Da sich das Smartphone meist in meiner Hosentasche befindet, habe ich mich einige Male damit aus der Reichtweite des Reise-Routers entfernt. Dramatisch war auch dies nicht, wurde jedoch umgehend durch humanoide Überwachungssysteme angezeigt. ;-)

Natürlich hat GL.iNet mit dem Mudi 7 (GL-E5800) auch für dieses Luxusproblem eine Lösung im Angebot. Allerdings sind mir die ca. 425 Euro für diesen Luxus etwas zu viel. Kennt ihr Alternativen, die über ähnliche Funktionen verfügen? Also klein, kompakt und fähig eine SIM-Karte zu tragen? Dann teilt diese doch bitte in den Kommentaren.

Der Reise-Router hat sich während einer Dienstreise und einer viertägigen Urlaubsreise bewährt und wird uns bzw. mich auch zukünftig auf diesen Reisen begleiten.

13. Juni 2026

Wer in MMO-20044 eine Forschung startet und eine Stunde später zurückkommt, findet seinen Forscher seit 40 Minuten untätig vor. Die Forschung war längst fertig, der nächste Schritt wartet auf einen Klick. So funktioniert es bisher: eine Aktion zur Zeit, manuell weiterschalten.

Eine erste Ingame-Umfrage hat ergeben, dass 60 Prozent der Spieler Forschung und Reisen gern parallel laufen lassen würden. Jetzt geht es um die Frage, wie genau das aussehen soll. Drei Varianten stehen zur Wahl.

Variante 1: Status quo
Alles bleibt wie es ist. Eine Aktion zur Zeit, manuell nachsteuern. Wer reist, kann nicht forschen. Wer fertig ist, muss selbst Hand anlegen.

Variante 2: Vollständige Warteschlange
Bis zu vier Aktionen lassen sich vorplanen. Flotte (Reisen, Besiedeln) und Labor (Forschung) haben je eine eigene Schlange und laufen unabhängig voneinander. Eine Reisekette und drei Forschungen lassen sich in einem Zug einreihen, der Rest läuft automatisch durch.

Variante 3: Nur parallel, keine Vorplanung
Forschung und Reise dürfen gleichzeitig laufen, aber ohne Warteschlange. Kein gegenseitiges Blockieren mehr, aber den nächsten Schritt muss man weiterhin selbst starten.

Der Unterschied zwischen Variante 2 und 3 liegt im Komfort: bei Variante 2 kann man mehrere Schritte im Voraus einreihen und das Spiel arbeitet allein weiter, bei Variante 3 muss man trotzdem regelmäßig vorbeischauen.

Die Abstimmung läuft im Spiel unter dem Menüpunkt “Abstimmungen”. Jeder angemeldete Spieler hat eine Stimme, das Ergebnis ist erst nach Ablauf sichtbar.

12. Juni 2026

Ein modernes Linux-Phone im vertrauten Design der ersten iPhones? Mithilfe von iGTK ist es möglich ein postmarkesOS Gerät mit der GNOME Oberfläche in ein Retro-Handy zu verwandeln.



Mein erstes Smartphone war tatsächlich ein iPhone. Damals präsentierte es ein einmaliges Konzept und war das erste Handy, welches ausschließlich über den Touchscreen bedient wurde. Auch die Qualität der Hardware überzeugte und mein altes iPhone habe ich tatsächlich immer noch und es befindet sich in einem neuwertigem Zustand. Zuletzt hatte ich es gejailbreaked um überhaupt noch Software darauf installieren zu können. Wirklich nutzbar, ausser für eine Runde Angry Birds, ist es heute natürlich nicht mehr.

Umso eher aber mein Pixel 3a, das in den letzten Monaten eine sehr gute Unterstützung durch postmarketOS erfahren hat. Und sogar bei Ubuntu Touch werkelt Alfred aktuell an einer Portierung auf eine aktuellere Android-Basis, um VoLTE-Support zu ermöglichen.

Doch heute widmen wir uns einem anderen Abenteuer. Mein Ziel war es, das Pixel 3a mit GNOME (nicht Phosh, das habe ich nicht getestet), möglichst so aussehen zu lassen wie mein altes iPhone. Ermöglicht hat mir dies der unermüdliche Einsatz von Krafting der seine Fortschritte in einem Git-Repository mit uns teilt.

Als Basis habe ich postmarketOS mit GNOME in der Version 26.06 gewählt. Die Installation der Theme ist denkbar einfach und wird ausführlich im Git-Repository beschrieben.

Alternativer Video-Link: https://fediserve.de/preview.php?v=SjGUN6pJe5w

Das Ergebnis kann sich wirklich sehen lassen. Zu beachten ist, dass es sich um eine stetig voranschreitende Entwicklung handelt. So wird beispielsweise gerade an einer passenden Shell Theme gearbeitet.

Für mich sind es Projekte wie dieses, die das Herz von Freier Software und Linux verkörpern. Die Möglichkeit das eigene System bis ins letzte Detail an die eigenen Wünsche anzupassen, ist sonst nur schwer zu finden.

Wie ist es mit dir? Hast du auch schon Stunden damit verbracht, dein System zu themen? Oder hast du schon die Möglichkeiten der unterschiedlichen m Desktop-Umgebungen auf einem Linux-Handy ausgetestet? Teile deine Erfahrungen gerne in den Kommentaren und im Fediverse.


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

In meinem letzten Beitrag der NixOS-Reihe zeige ich, wie man einen einzelnen Rechner aus dem gemeinsamen Setup herauslöst und individuell konfiguriert – ohne die anderen Rechner auch nur zu berühren.



Wer meiner Reihe gefolgt ist, hat mittlerweile vielleicht mehrere Rechner mit identischer Konfiguration am Laufen. Eine configuration.nix für alle, eine home.nix für alle – sauber, simpel, reproduzierbar. Das ist bereits beeindruckend und für viele Anwendungsfälle völlig ausreichend.

Aber die Realität ist eben manchmal: drei Rechner, drei unterschiedliche Charaktere.

Es gibt viele Gründe und Szenarien für eine abweichende Konfiguration - als Beispiel nehme ich hier einfach mal meine Situation - das Vorgehen ist aber exemplarisch und vollständig auf andere Szenarien übertragbar.

Rücksicht nehmen muss ich auf einen geliebten alten Wegbegleiter, ein alter Lenovo mit nur 8 GB und einem schwachen Pentium Prozessor. Er ist das schwächste Glied in meiner kleinen Flotte und leidet unter der identischen Konfiguration, die meine leistungsfähigen Dell-Rechner problemlos stemmen. Fotoverwaltung mit tausenden RAW-Dateien - oder gar deren Entwicklung? Auf dem Lenovo undenkbar. Synchronisation mit mehreren Cloud-Speichern im Hintergrund? Verschwendete Ressourcen. Und der LanguageTool-Server mit seiner Java-Implementierung, die gerne mal fast 2 GB RAM schluckt – den will ich auf dem schwächsten Rechner erst recht nicht.

Dazu kommt: Der Lenovo ist ein Detachable, also ein Gerät das ich meist als Tablet weitab einer Steckdose nutze. Da möchte ich einen Energieverwaltungs-Button der wirklich funktioniert - manchmal muss ich die volle Power nämlich auch im Akkubetrieb zuschalten können. Mit TLP ist der Energieverwaltungs-Button bekanntlich wirkungslos, weil absichtlich lahm gelegt. TLP übernimmt nämlich die Kontrolle vollautomatisch über die CPU-Taktung und ignoriert was ich z.B. über GNOME einstellen möchte.

Jetzt könnte man auf die Idee kommen, die configuration.nix mit Bedingungen zu pflastern: "wenn Lenovo, dann dies, sonst das". Das ist aber der Weg in die Unübersichtlichkeit - und Unübersichtlichkeit ist nicht "Nix-like", wie du dir anhand des bisher Dargestellten sicher denken kannst. NixOS hat eine elegantere Antwort parat.


Das Prinzip: additive Module

In NixOS lassen sich mehrere Konfigurationsdateien zu einem System zusammensetzen. Statt eine einzige große configuration.nix mit Ausnahmen vollzustopfen, addiert man für den Lenovo einfach eine weitere kleine Datei obendrauf. Die configuration.nix bleibt vollständig unangetastet. Die Dell-Rechner bemerken von alldem nichts.

Das Ergebnis sieht so aus:

/etc/nixos/
├── flake.nix                          ← angepasst
├── configuration.nix                  ← unverändert (gilt für alle)
├── home.nix                           ← unverändert (gilt für meine zwei Dell)
├── lenovo-system.nix                  ← NEU: Lenovo-spezifisch (System)
├── home-lenovo.nix                    ← NEU: Lenovo-spezifisch (Benutzer)
├── hardware-configuration-dell5320.nix
├── hardware-configuration-dellpro.nix
└── hardware-configuration-lenovo.nix

Zwei neue Dateien. Mehr nicht.


Schritt 1: lenovo-system.nix erstellen

Diese Datei enthält ausschließlich die Dinge, die auf dem Lenovo anders sein sollen als in der configuration.nix. Alles andere – GNOME, Drucker, Sprache, Pakete – bleibt unverändert aus der gemeinsamen Konfiguration.

Die folgenden Dateien spiegeln meine eigene Konfiguration wider, sind also nur als Beispiele zu sehen. Das Grundprinzip sollte dir dadurch aber klar werden und dich zu einer individuellen Umsetzung auf deine Rahmenbedingungen befähigen.

Ich habe mich entschlossen meine Konfigurationsdateien weitgehend ungekürzt hier wiederzugeben. Das ist für die Lesbarkeit des Artikels zwar ungünstig, aber hilfreich für alle, welche damals meine Setup-Dateien als Ausgangspunkt für die eigene Konfiguration genutzt haben.

sudo nano /etc/nixos/lenovo-system.nix
# ============================================================
# Lenovo-spezifische Systemkonfiguration
# Ergänzt und überschreibt configuration.nix nur dort,
# wo der Lenovo andere Einstellungen benötigt.
# ============================================================

{ config, pkgs, lib, ... }:

{
  # ─────────────────────────────────────────
  # TLP deaktivieren – es überschreibt den GNOME-Energieprofil-Button.
  # lib.mkForce ist nötig um den Wert aus configuration.nix zu überschreiben.
  # ─────────────────────────────────────────
  services.tlp.enable = lib.mkForce false;

  # ─────────────────────────────────────────
  # Power Profiles Daemon aktivieren – er steuert die CPU-Leistungsstufen
  # und integriert sich vollständig in GNOME. Der Energieprofil-Button
  # oben rechts in GNOME funktioniert damit wieder.
  # ─────────────────────────────────────────
  services.power-profiles-daemon.enable = lib.mkForce true;

  # ─────────────────────────────────────────
  # Intel Thermaldienst
  # Schützt die CPU vor Überhitzung auf schwacher Hardware.
  # ─────────────────────────────────────────
  services.thermald.enable = true;
}

Wie wirkt hier lib.mkForce? Wenn zwei NixOS-Module dieselbe Option setzen, gibt es normalerweise einen Konflikt. lib.mkForce sagt NixOS: "Diese Datei gewinnt – egal was andere Module sagen." Das ist genau das richtige Werkzeug um Einstellungen aus der gemeinsamen configuration.nix für einen einzelnen Rechner zu überschreiben.


Schritt 2: home-lenovo.nix erstellen

Hier liegt der eigentliche Hebel für die Ressourcenschonung. Statt die gemeinsame home.nix mit Ausnahmen zu belasten, erstellen wir eine eigene, schlanke Variante.

Wie gesagt, hier nochmal meine (fast) vollständige originale home.nix mit allen Skripten - jetzt ergänzt mit Markierungen zu den Stellen, die sich geändert haben und den entsprechenden Auskommentierungen.

sudo nano /etc/nixos/home-lenovo.nix
# ============================================================
# Home Manager Konfiguration – Lenovo)
# Schlanke Version ohne LanguageTool, Fotosoftware und Clouds.
# ============================================================

{ config, pkgs, pkgs-unstable, ... }:

{
  home.username      = "dein-username";    # anpassen!
  home.homeDirectory = "/home/dein-username";    # anpassen!

  # Nie die Erstinstallations-Version ändern, auch nicht nach Versionssprung!
  home.stateVersion = "25.11";

  programs.home-manager.enable = true;

  # ─────────────────────────────────────────
  # Benutzerprogramme – schlanke Auswahl
  # ─────────────────────────────────────────
  home.packages = [

    # ── Büro (unstable) ───────────────────
    pkgs-unstable.libreoffice-fresh    # Office-Suite
    pkgs-unstable.hunspell             # Rechtschreibprüfung
    pkgs-unstable.hunspellDicts.de_DE  # Deutsches Wörterbuch
    pkgs-unstable.mythes               # Thesaurus
    # languagetool  ← bewusst weggelassen: Java-Server, ~2 GB RAM

    # ── Kommunikation (unstable) ──────────
    pkgs-unstable.thunderbird          # E-Mail
    pkgs-unstable.nextcloud-client
    # weitere Clouddienste         ← nicht benötigt

    # ── Notizen (unstable) ────────────────
    pkgs-unstable.obsidian             # Markdown-Notizen (unfree)

    # ── Datensicherung (unstable) ─────────
    # pkgs-unstable.pika-backup    ← bewusst weggelassen

    # ── Fotografie ────────────────────────
    # pkgs-unstable.rapidraw  ← nicht benötigt
    # pkgs-unstable.digikam   ← nicht benötigt

    # ── Shell & Tools (stable) ────────────
    pkgs.starship
    pkgs.nix-output-monitor
    pkgs.nvd

  ];

  # LanguageTool-Dienst bewusst nicht gestartet
  # (spart ~2 GB RAM auf schwacher Hardware)

  # ─────────────────────────────────────────
  # Git – Benutzerkonfiguration
  # ─────────────────────────────────────────
  programs.git = {
    enable = true;
    settings = {
      user.email = "deine.mail@für.codeberg";    # anpassen!
      user.name  = "dein-username";    # anpassen!
    };
  };

  # ─────────────────────────────────────────
  # SSH – Konfiguration für Codeberg
  # ─────────────────────────────────────────
  programs.ssh = {
    enable              = true;
    enableDefaultConfig = false;
    matchBlocks."codeberg.org" = {
      hostname     = "codeberg.org";
      user         = "git";
      identityFile = "~/.ssh/id_ed25519";
    };
  };

  # ─────────────────────────────────────────
  # GTK-Theme (Arc)
  # ─────────────────────────────────────────
  gtk = {
    enable = true;
    theme       = { name = "Arc";     package = pkgs.arc-theme; };
    iconTheme   = { name = "Papirus"; package = pkgs.papirus-icon-theme; };
    cursorTheme = { name = "Adwaita"; size = 24; };
  };

  # ─────────────────────────────────────────
  # XDG User Directories – Ordner auf Deutsch
  # ─────────────────────────────────────────
  xdg.userDirs = {
    enable            = true;
    createDirectories = true;
    desktop     = "${config.home.homeDirectory}/Schreibtisch";
    documents   = "${config.home.homeDirectory}/Dokumente";
    download    = "${config.home.homeDirectory}/Downloads";
    music       = "${config.home.homeDirectory}/Musik";
    pictures    = "${config.home.homeDirectory}/Bilder";
    publicShare = "${config.home.homeDirectory}/Öffentlich";
    templates   = "${config.home.homeDirectory}/Vorlagen";
    videos      = "${config.home.homeDirectory}/Videos";
  };

  # ─────────────────────────────────────────
  # Fish Shell
  # ─────────────────────────────────────────
  programs.fish = {
    enable = true;

    interactiveShellInit = ''
      starship init fish | source
    '';

    shellAliases = {
      ".."          = "cd ..";
      "..."         = "cd ../..";
      ll            = "ls -lah";
      nix-clean-all = "sudo nix-collect-garbage -d";
    };

    functions = {

      rebuild = {
        description = "System auf diesem Rechner neu bauen";
        body = ''
          sudo nixos-rebuild switch --flake /etc/nixos#(hostname) 2>&1 | nom
        '';
      };

      update-push = {
        description = "NixOS aktualisieren und auf Codeberg sichern";
        body = ''
          echo "────────────────────────────────────────────"
          echo "  NixOS Update + Store bereinigen + Git Push"
          echo "────────────────────────────────────────────"

          cd /etc/nixos

          if test -e result
            sudo rm -f result
          end
          if test -f .gitignore
            grep -q '^result$' .gitignore
            or echo "result" | sudo tee -a .gitignore >/dev/null
          else
            echo "result" | sudo tee .gitignore >/dev/null
          end
          sudo git rm -r --cached result 2>/dev/null
          or true

          echo ""
          echo "→ Schritt 1/5: flake.lock aktualisieren..."
          sudo nix flake update
          or return 1

          echo ""
          echo "→ Schritt 2/5: System bauen und aktivieren..."
          set old_system (readlink -f /run/current-system)
          sudo nixos-rebuild switch --flake /etc/nixos#(hostname) 2>&1 | nom
          if test $pipestatus[1] -ne 0
            echo "✗ Fehler beim Rebuild."
            return 1
          end

          echo ""
          echo "→ Schritt 3/5: Paketänderungen anzeigen..."
          nvd diff $old_system /run/current-system

          echo ""
          echo "→ Schritt 4/5: Nix-Store bereinigen..."
          sudo nix-collect-garbage --delete-older-than 30d
          or return 1

          echo ""
          echo "→ Schritt 5/5: Auf Codeberg sichern..."
          sudo git add -A
          sudo git commit -m "System aktualisiert "(date +%Y-%m-%d)
          or true
          sudo git push origin master
          and begin
            echo "✓ Fertig!"
            return 0
          end

          echo "✗ Push fehlgeschlagen. Bitte später erneut versuchen."
          return 1
        '';
      };

      pull-update = {
        description = "Konfiguration von Codeberg holen und System bauen";
        body = ''
          echo "──────────────────────────────────────"
          echo "  Git Pull + NixOS Rebuild + Cleanup  "
          echo "──────────────────────────────────────"

          cd /etc/nixos

          if test -e result
            sudo rm -f result
          end
          if test -f .gitignore
            grep -q '^result$' .gitignore
            or echo "result" | sudo tee -a .gitignore >/dev/null
          else
            echo "result" | sudo tee .gitignore >/dev/null
          end
          sudo git rm -r --cached result 2>/dev/null
          or true

          echo ""
          echo "→ Schritt 1/4: Konfiguration von Codeberg holen..."
          sudo git fetch origin
          or return 1
          sudo git reset --hard origin/master
          or return 1

          echo ""
          echo "→ Schritt 2/4: System bauen und aktivieren..."
          set old_system (readlink -f /run/current-system)
          sudo nixos-rebuild switch --flake /etc/nixos#(hostname) 2>&1 | nom
          if test $pipestatus[1] -ne 0
            echo "✗ Fehler beim Rebuild."
            return 1
          end

          echo ""
          echo "→ Schritt 3/4: Paketänderungen anzeigen..."
          nvd diff $old_system /run/current-system

          echo ""
          echo "→ Schritt 4/4: Nix-Store bereinigen..."
          sudo nix-collect-garbage --delete-older-than 30d
          or return 1

          echo ""
          echo "✓ Fertig!"
        '';
      };

    };
  };

  # ─────────────────────────────────────────
  # GNOME-Einstellungen via dconf
  # ─────────────────────────────────────────
  dconf.settings = {

    "org/gnome/desktop/interface" = {
      color-scheme = "default";
      cursor-theme = "Adwaita";
    };

    "org/gnome/desktop/wm/preferences" = {
      button-layout = "appmenu:minimize,maximize,close";
    };

    "org/gnome/settings-daemon/plugins/color" = {
      night-light-enabled            = false;
      night-light-schedule-automatic = false;
      night-light-schedule-from      = 22.0;
      night-light-schedule-to        = 7.0;
      night-light-temperature        = 4000;
    };

    "org/gnome/desktop/peripherals/touchpad" = {
      tap-to-click   = true;
      natural-scroll = true;
    };

    "org/gnome/mutter" = {
      experimental-features = [ "scale-monitor-framebuffer" ];
    };

    "org/gnome/shell" = {
      disable-user-extensions = false;
      enabled-extensions = [
        pkgs.gnomeExtensions.appindicator.extensionUuid
        "dash-to-dock@micxgx.gmail.com"
        "no-overview@fthx"
      ];
    };

  };
}

Schritt 3: flake.nix anpassen

Das ist der entscheidende Schritt. Bisher zeigt die flake.nix für alle Rechner auf dieselbe home.nix. Das muss für den Lenovo geändert werden – und gleichzeitig muss lenovo-system.nix als zusätzliches Modul eingebunden werden.

Dazu wandert home-manager.users.dein-username aus den gemeinsamen Modulen heraus und wird stattdessen je Rechner einzeln eingetragen. Bitte lies alle Kommentierungen in der Datei, damit müsste es klar werden.

Die flake.nix hier nur als Ausschnitt. Bitte beachten: ich habe überall meinen Usernamen und die Hostnamen meiner Rechner depersonalisiert - das sind viele Stellen an denen nun entweder "dein-username" oder "dein-hostname" steht - bitte detektivisch genau aufspüren.

sudo nano /etc/nixos/flake.nix

{
  outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }:
  let
    system = "x86_64-linux";
    pkgs-unstable = import nixpkgs-unstable {
      inherit system;
      config.allowUnfree = true;
    };

    # Gemeinsame Basis – gilt für alle Rechner.
    # home-manager.users.dein-username ist hier bewusst NICHT mehr enthalten,
    # da jeder Rechner seine eigene home.nix bekommt.
    common-modules = [
      ./configuration.nix
      home-manager.nixosModules.home-manager
      {
        home-manager.useGlobalPkgs            = true;
        home-manager.useUserPackages          = true;
        home-manager.backupFileExtension      = "backup";
        home-manager.extraSpecialArgs         = { inherit pkgs-unstable; };
        # ← home-manager.users.dein-username wurde hier entfernt
      }
    ];
  in {
    nixosConfigurations = {

      # Dell 5320 – unverändert, nutzt die gemeinsame home.nix
      dein-hostname = nixpkgs.lib.nixosSystem {
        inherit system;
        specialArgs = { inherit pkgs-unstable; };
        modules = common-modules ++ [
          ./hardware-configuration.nix
          { networking.hostName = "dein-hostname"; }
          { home-manager.users.dein-username = import ./home.nix; }  # gemeinsame home.nix
        ];
      };

      # Dell Pro Plus – unverändert, nutzt die gemeinsame home.nix
      dein-hostname = nixpkgs.lib.nixosSystem {
        inherit system;
        specialArgs = { inherit pkgs-unstable; };
        modules = common-modules ++ [
          ./hardware-configuration-dein-hostname.nix
          { networking.hostName = "dein-hostname"; }
          { home-manager.users.dein-username = import ./home.nix; }  # gemeinsame home.nix
        ];
      };

      # Lenovo – individuelle Konfiguration:
      # lenovo-system.nix überschreibt ausgewählte Systemeinstellungen,
      # home-lenovo.nix ersetzt die Benutzerumgebung komplett.
      lenovo = nixpkgs.lib.nixosSystem {
        inherit system;
        specialArgs = { inherit pkgs-unstable; };
        modules = common-modules ++ [
          ./hardware-configuration-lenovo.nix
          { networking.hostName = "dein-hostname"; }
          ./lenovo-system.nix                                        # ← Systemoverrides
          { home-manager.users.dein-username = import ./home-lenovo.nix; } # ← schlanke home.nix
        ];
      };

    };
  };
}


Schritt 4: Alle Dateien Git bekannt machen und bauen

Flakes ignorieren Dateien die Git nicht kennt – das kennen wir bereits. Daher erst registrieren:

cd /etc/nixos
sudo git add lenovo-system.nix home-lenovo.nix flake.nix
sudo git commit -m "Lenovo individualisiert: schlanke home.nix, Power Profiles Daemon"

Dann auf dem Lenovo einmalig manuell bauen:

sudo nixos-rebuild switch --flake /etc/nixos#lenovo

Und auf Codeberg sichern:

sudo git push origin master

Ab jetzt läuft auf dem Lenovo update-push und pull-update (direkt einmal danach ausführen) wie gewohnt.


Meine deklarativ gesetzte Wunsch-Konfiguration

Dell 5320 Dell Pro Plus Lenovo
Systemkonfiguration configuration.nix configuration.nix configuration.nix + lenovo-system.nix
Benutzerumgebung home.nix home.nix home-lenovo.nix
Energieverwaltung TLP TLP Power Profiles Daemon ✅
GNOME-Energieprofil-Button wirkungslos wirkungslos funktioniert ✅
LanguageTool (~2 GB RAM) ✅ läuft ✅ läuft ❌ gespart
Fotosoftware ❌ nicht nötig
mehrere Cloud-Dienste synchronisieren ❌ nicht nötig

Die Dell-Rechner laufen weiterhin völlig unverändert. In den gemeinsamen configuration.nix und home.nix wurde kein einziger Buchstabe angefasst. Alles was der Lenovo anders macht, steht in seinen eigenen zwei Dateien.

Dazu, cool wie immer: Änderungen pflege ich für meine ganze Flotte an dem Rechner, an dem ich zufällig gerade sitze - die flake.nix (bzw. flake.lock) im Zusammenspiel mit Codeberg verteilt es dann an alle anderen. Und Systempflege weiterhin mit nur einem einzigen Befehl.

Ich finde gerade heute zeigte sich NixOS mal wieder von seiner besten Seite. Es war zum Abschluss nochmal ein schönes Beispiel für das Potenzial des Paradigmenwechsels durch den konsequent und logisch durchdachten deklarativen Ansatz.

Abgesehen vom geringen Aufwand für die Systempflege gefällt mir nach den Monaten mit NixOS am besten, dass ich erstmals das Gefühl habe wirklich Herr meines Systems zu sein. Nichts versteckt sich hinter Eingabemasken oder Linux-Befehlen welche ich nicht genau entschlüsseln kann. Bei NixOS weiß ich ganz genau, an welcher Stelle in den wenigen Konfigurationsdatein welche Systemeinstellung beschrieben ist - in normalen Textdateien und in einer einheitlichen Sprache, welche über die Dokumentation (zentral, an einer Stelle - siehe Teil 2) gelernt und entschlüsselt werden kann.

So, das war's von meiner Seite. Aber das muss nicht alles gewesen sein. Wenn du spannende und hilfreiche Aspekte oder News zu NixOS weitergeben möchtest, dann setz dich gerne an die Tastatur und reiche deinen Artikelvorschlag direkt hier auf der Page unter "Mitschreiben" ein.

Ich würde mich sehr über konstruktive Kritik zu der NixOS-Reihe in den Kommentaren freuen! Gebt dort gerne auch eure eigenen Erfahrungen mit NixOS weiter.

Tschüss einstweilen!

Artikel der NixOS-Reihe


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

11. Juni 2026

In den Kommentaren kam die berechtigte Frage auf, wo man selbst gelandet ist: Die Rangliste im Spiel zeigte nur die Top 7 plus die eigene Nachbarschaft, und der Screenshot im Season-1-Fazit ebenso. Hier ist die komplette Abschlusstabelle, rekonstruiert aus dem Datenbank-Backup der letzten Nacht von Season 1.

Links die offizielle Wertung nach der alten Season-1-Formel, rechts zum Vergleich, wie dieselbe Season mit der neuen Season-2-Formel ausgegangen wäre:

 #  Spieler        Rasse     Punkte   Pl  Te  Si Gen  | neue Formel (Platz)
 1  Kaon           Nomade     22.857  11  10   3   5  |  17.900   (3)
 2  alf            Mensch     21.761   1   2   4   0  |   3.900  (17)
 3  Coyitie        Mensch     21.722   1   0   1   0  |   3.000  (21)
 4  C4PO           Cyborg     21.685   3   6   2   0  |   5.700  (13)
 5  VirulenZ       Mensch     20.845   2   3   1   0  |   4.250  (15)
 6  Mchef          Cyborg     20.710  10  11   3   5  |  17.250   (4)
 7  Wh1sper        Ashar      20.671  15  12   8   5  |  22.400   (2)
 8  Slash          Cyborg     18.961   1   1   2   0  |   3.350  (18)
 9  Lord-Bane      Kael       18.881   1   5   2   0  |   3.950  (16)
10  onli           Kael       18.088   9  10   2   4  |  15.100   (5)
11  Korvax         Threx      17.644   2   5   0   0  |   4.350  (14)
12  femur          Velhari    17.621  16  11   5   5  |  22.450   (1)
13  JohnnyRocket   Nomade     17.473   4  10   2   2  |   9.100   (7)
14  Lamby          Kael       16.208   3  10   2   0  |   6.300  (11)
15  K:Wall         Mensch     15.153   1   2   1   0  |   3.300  (19)
16  Moskito        Nomade     14.619   3   8   1   1  |   6.800  (10)
17  BombadilsAxt   Ashar      12.347   3  12   4   2  |   9.000   (8)
18  Hoppy          Ashar      11.866   1   3   0   0  |   3.250  (20)
19  M0n1y          Cyborg      8.523   2  12   5   1  |   7.400   (9)
20  dergrauemann   Mensch      8.326   4  12   7   3  |  10.126   (6)
21  comLar         Mensch      8.184   1  12   1   1  |   5.800  (12)

Die Tabelle ist das beste Argument für die neue Formel, das ich liefern kann: femur, der die Season mit dem ersten Genesis-Planeten auf Stufe 5 tatsächlich gewonnen hat, steht in der alten Wertung auf Platz 12. Mit der neuen Formel wäre er Platz 1. Auch Wh1sper, onli und dergrauemann, die viel besiedelt, geforscht und gekämpft haben, rücken weit nach vorn. Wer nur Ticks gesammelt hat, rutscht ins hintere Drittel.

Zur Methodik: Grundlage ist das nächtliche Backup vom letzten Spieltag, ergänzt um die Tick-Stände und Genesis-Level vom Season-Ende. Die Punkte der Top 7 stimmen exakt mit dem offiziellen Endstand überein. Einzige Unschärfe: Korvax und femur trennen nur 23 Punkte, diese beiden Plätze könnten vertauscht sein.

Damit diese Frage in Season 2 gar nicht erst aufkommt: Die Rangliste im Spiel hat jetzt einen Link "Komplette Liste anzeigen", der alle Spieler zeigt.

Mitspielen: https://zockertown.de/mmo/

Season 2 von MMO-20044 ist gestartet. Die Galaxie wurde komplett neu gewürfelt: neue Systeme, neue Koordinaten, neue Planeten. Vorwissen aus Season 1 hilft niemandem, alle starten bei null.

Was sich gegenüber Season 1 ändert und warum, steht ausführlich im Season-1-Fazit. Die Kurzfassung: Die Punkteformel belohnt jetzt aktives Spielen statt Tick-Horten, und auf der Reiseseite steht vor dem Abflug, welche Spieler im Zielsystem Planeten besitzen.

Dazu kommen einige Korrekturen aus dem Spieler-Feedback:

  • Dieselbe Technologie kann nicht mehr doppelt gleichzeitig erforscht werden
  • Bei der Besiedlung zählt der Planet, den man angeklickt hat, nicht der erstbeste im System
  • Der Passwortwechsel in den Einstellungen funktioniert jetzt

Auf der Rangliste gibt es seit dieser Runde eine Hall of Fame. Den ersten Platz darin hat sich femur gesichert: als erster Spieler auf Genesis-Stufe 5 ist er der Sieger von Season 1 und bleibt dort dauerhaft verewigt.

Der Raumpirat treibt übrigens weiter sein Unwesen. Wer zu viele Ticks hortet, könnte Besuch bekommen.

Mitspielen: https://zockertown.de/mmo/

Firefox zeigt während der Fußball-Weltmeisterschaft optionale WM-Widgets auf seiner Startseite an, um die Ergebnisse des Turniers verfolgen zu können. Das Feature steht sowohl am Desktop als auch auf Android und iOS zur Verfügung.

Heute startet die Fußball-Weltmeisterschaft in Kanada, Mexiko und den USA. Passend dazu wird Mozilla WM-Widgets für die Firefox-Startseite ausrollen. Auch das Firefox-Logo auf der Startseite ist mit aktiviertem Widget angepasst und es stehen zusätzliche Hintergrundbilder mit Fußball-Motiven zur Auswahl. Selbstverständlich ist all dies optional und muss nicht genutzt werden.

Firefox WM 2026 Widget

Über das Widget lassen sich die Spiele der WM 2026 verfolgen. Das bedeutet einen Ausblick auf kommende Spiele, aber auch Ergebnisse, die während der Spiele live aktualisiert werden. Auf Wunsch lassen sich bestimmte Nationen verfolgen und nur die Spiele dieser Nationen anzeigen. Während der Spiele gibt es außerdem eine Anzeige, welche TV-Sender das jeweilige Spiel live übertragen. Standardmäßig werden die Sender des Landes angezeigt, in dem sich der Anwender befindet, es können aber auch internationale Sender angezeigt werden.

Firefox WM 2026 Widget Firefox WM 2026 Widget Firefox WM 2026 Widget Firefox WM 2026 Widget
Firefox WM 2026 Widget
Firefox WM 2026 Widget Firefox WM 2026 Widget

Der Beitrag Firefox mit WM-Widgets während der Fußball-Weltmeisterschaft erschien zuerst auf soeren-hentzschel.at.

10. Juni 2026

Firefox besitzt ein integriertes VPN, welches den Anwender nichts kostet. Normalerweise gibt es hierfür eine Auswahl aus fünf Standorten und ein Nutzungslimit von 50 GB pro Monat. Bis zum 31. August entfällt das Nutzungslimit und es kann ein Standort aus 28 Ländern gewählt werden.

Firefox besitzt eine kostenlose VPN-Integration für Windows, macOS und Linux. Dabei stehen 50 GB pro Monat zur Verfügung, um die echte IP-Adresse zu verbergen und den Internetverkehr über einen sicheren Proxy-Server zu leiten. Die Nutzung wird an jedem Monatsersten zurückgesetzt. Einzige Voraussetzung ist ein kostenfreies Mozilla-Konto. Zur Auswahl stehen Server in Deutschland, Großbritannien, Frankreich, USA und Kanada.

Ab sofort und bis zum 31. August 2026 entfällt das Nutzungslimit, Firefox-Nutzer können das VPN in der Zeit also unbegrenzt verwenden. Außerdem wurde die Standortauswahl auf 28 Länder erweitert. Die zusätzlichen Länder sind: Australien, Belgien, Bulgarien, Chile, Dänemark, Finnland, Irland, Italien, Kolumbien, Malaysia, Mexiko, Neuseeland, Niederlande, Norwegen, Österreich, Polen, Portugal, Schweden, Schweiz, Singapur, Spanien, Südafrika und Thailand.

Ab dem 1. September 2026 wird dann wieder das Nutzungslimit von 50 GB pro Monat und die bisherige Auswahl von fünf Standorten greifen. Wer dauerhaft unlimitierten Zugang, eine Auswahl aus ca. 500 Servern in über 30 Ländern und einen systemweiten Schutz haben möchte, der nicht nur in Firefox greift, findet mit dem kostenpflichtigen Mozilla VPN eine Lösung.

Der Beitrag Kostenloses VPN in Firefox: Vorübergehend unlimitierte Bandbreite und 28 Standorte erschien zuerst auf soeren-hentzschel.at.