staging.inyokaproject.org

2026 Woche 24

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.

9. Juni 2026

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

Download Mozilla Firefox 151.0.4

Ein Problem wurde behoben, bei dem Firefox bei bestimmten sehr alten GPU-Modellen nicht länger die Hardwarebeschleunigung nutzte.

Eine Absturzursache in Zusammenhang mit Barrierefreiheits-Diensten wurde korrigiert, von der aussschließlich deutlich veraltete Versionen von Windows 10 betroffen waren.

Firefox auf Windows reagierte unter Umständen nicht mehr nach Verwendung der Zurück- und Vorwärtsschaltflächen.

Diverse Anpassungen für das in Firefox integrierte VPN wurden vorgenommen.

Außerdem gab es Verbesserungen der Webkompatibilität.

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

8. Juni 2026

Google und andere Anbieter fragen den genauen Standort ab, auch wenn man dies im Browser deaktiviert hat. Wie du das verhindern kannst, erkläre ich dir hier.



Was ich hier beschreibe, habe ich vor einigen Tagen am Computer erlebt und es hat mich sowohl in Staunen versetzt als auch erschrocken. Ich nutze am PC den Firefox Browser, ausgestattet mit diversen Add-Ons wie uBlock Origin, den Privacy Badger und CookieBlock. Ausserdem habe ich in den Einstellungen wichtige Privatsphäre Regeln definiert. Damit es für euch einfacher ist, habe ich dies bereits einmal in einem Video dokumentiert.

Der Computer hat kein GPS und so kann der Standort eigentlich nur anhand der IP-Adresse ermittelt werden. Diese zeigt auf den Standort meines Providers, in meinem Fall auf den schönen Ort Lupfig im Kanton Aargau in der Schweiz. Für euch könnt ihr das ebenfalls prüfen, in dem ihr eine Geolocation-Datenbank abfragt. Die Ergebnisse gelten als 95 % akkurat und ich kann dies aus meiner Erfahrung heraus bestätigen.

Soweit so gut, dies sollten die maximalen Informationen sein, die eine Webseite über mich ermitteln kann, sofern ich kein VPN verwende, das meinen Standort verschleiert.

Umso erstaunter war ich, als ich auf Google Maps gesurft bin und die Webseite meinen richtigen Standort mit sehr hoher Genauigkeit erkannt hat. Dabei wurde ich weder vom Browser gefragt, ob ich den Standort freigeben möchte noch wurde mir ein Hinweis angezeigt, wie denn mein Standort so detailliert ermittelt werden konnte.

Auch eine Nachfrage bei meinem Provider ergab keine Klarheit, immerhin bestätigte dieser mir, dass von dessen Seite keine Weitergabe von Standort-Daten an Google oder andere Anbieter erfolgt.

Ich war also ratlos. Wie konnte das passieren? Die einzige Möglichkeit, die ich mir vorstellen könnte, wäre, dass die Webseite in irgendeiner Form an die umliegenden WLAN-Netzwerke gelangt. Damit lässt sich der Standort immerhin sehr genau ermitteln und das ist auch der Grund warum ich persönlich an meine WLAN-Netzwerknamen (SSIDs) immer ein _nomap anhänge, damit keine Datenerfassung erfolgt. Es ist übrigens ein Trugschluss zu glauben, dass die WLAN-Netze von Google-Fahrzeugen erfasst werden. Das war vielleicht in der Vergangenheit einmal der Fall. Heute jedoch trägt jede_r Android-Nutzer zur Erfassung mit bei, sofern in den Einstellungen nicht die Punkte "WLAN Suche" und "Bluetooth Suche" deaktiviert sind. Wer von euch am Handy eine Karten-App wie Co-Maps verwendet und diese Funktionen einmal deaktiviert hat, weiss wie ungenau die Standortermittlung wird.

Mir war aber immer noch nicht klar, wie ich die Standortübermittlung an Google verhindern kann, oder was diese genau diese auslöst. In den Einstellungen vom Firefox habe ich sogar unter Datenschutz und Sicherheit / Berechtigungen / Standort den Punkt "Neue Anfragen für den Zugriff auf den Standort blockieren" gesetzt. Ohne Auswirkungen. Zumal der Browser ja vor der Standortübermittlung nicht mal fragt, ob dies gestattet werden soll. Die Daten werden einfach ungefragt im Hintergrund übertragen.

Als Nächstes habe ich versucht in den erweiterten Einstellungen (about:config in der Adressleiste eingeben) die Punkte geo.enabled auf false zu setzen und die geo.provider.network.url zu leeren, denn diese zeigt verdächtigerweise auf einen Geolocation-Server von Google!

All diese Versuche waren leider erfolglos. Google, und meiner Erfahrung nach nur Google konnte dennoch meinen Standort genauer ermitteln als alle Anderen. Webseiten wie der KI Chatbot Perplexity nutzen auch ungefragt den Standort um "bessere Ergebnisse" liefern zu können, doch dort wurde dort der Standort anhand der IP-Geolocation ermittelt.

Nach einiger Recherche, als ich schon fast kapitulieren wollte (Nein, das mache ich nicht!) habe ich das Spoof Geolocation Add-on für den Firefox gefunden.

Damit ist es möglich, einen Fake Standort zu setzen und diesen zu übertragen. Laut der Add-on-Dokumentation befüllt das Plugin das "navigator.geolocation" Objekt mit dem Fake Standort und überträgt dieses an die Webseite.

Nachdem ich Spoof Geolocation eingerichtet habe, wurde mir dann endlich auch in Google Maps der gefakte Standort angezeigt und das Symbol der Erweiterung wurde blau. Man kann sich das Symbol auch an die Adressleiste anpinnen. Dazu muss man nur auf das Puzzleteil klicken und "An Symbolleiste anheften" wählen.

Noch besser ist es aber, wenn man die Standortübermittlung ganz verweigert. Dazu klickt man auf das Erweiterungssymbol und deaktiviert den Haken bei "Share Location".

Das hat noch den schönen Nebeneffekt, dass bei jeder Standortanfrage das Add-On-Symbol rot wird. Ihr werdet überrascht sein, wie viele Webseiten den Standort abfragen, ohne euch darüber zu informieren.

Die Nutzung des Standortes kann durchaus sinnvoll sein, zum Beispiel am Handy bei der Verwendung einer Freien Karten-App wie Co-Maps. Aber auch hier möchte ich entscheiden welche App den Standort wie lange verwenden kann und standardmässig möchte ich den Standort mit keiner App oder Webseite teilen.

Bei dem Freien Android Custom-ROM /e/OS ist das gut gelöst, denn dort ist Location-Spoofing bereits auf Systemebene integriert und ich kann einzelne Apps auswählen, mit denen ich meinen echten Standort teilen möchte.

In diesem Sinne, Location, Location, Location ist wichtig, aber bitte unter unserer eigenen Kontrolle.


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.