NixOS 25.11 "Xantusia": GNOME 49, Rust Init and goodbye to X11

NixOS 25.11 “Xantusia”

NixOS has officially announced the release of version 25.11, with the codename "Xanthusia"This semi-annual update comes loaded with important changes, most notably a massive migration to more modern technologies like Rust and Python for core tools, as well as major updates to the desktop environments.

The figures for this launch are impressive: 2.742 developers have contributed nearly 60.000 changes, resulting in the addition of 7.002 new packages and the update of more than 25.000.

Main new features of NixOS 25.11 "Xantusia"

One of the most important new features of this release is the introduction of nixos-inita new initialization system written in Rust that It dispenses with Bash. This tool, which can be enabled by system.nixos-init.enable = true, It initializes the system at boot and configures the environment for systemd, allowing the creation of ultra-minimalist NixOS systems that do not require command interpreters or heavy scripting languages ​​like Perl or Python at boot.

Continuing with the modernization of internal tools, nixos-rebuild-ng It is now enabled by default. This is a complete rewrite of the system management tool, ported from Bash to Python to improve its maintainability and robustness.

The end of X11 in GNOME

In terms of graphics, NixOS 25.11 takes a decisive step forward with GNOME 49The most drastic change is the removal of native X11 sessionFrom now on, GNOME runs exclusively on Wayland, although older applications will still be able to run thanks to the XWayland compatibility layer.

On the other hand, modern desktop enthusiasts are in luck: the environment COSMIC has reached its Beta phase In this version, we are approaching our first stable release with significant improvements in stability and new applications.

Network and security improvements

Improvements have also been made in the areas of security and network management:

  • FirewallD support: It is now possible to use FirewallD as a standalone service or as a backend for the native NixOS firewall, facilitating dynamic rule management via D-Bus.
  • Secure Boot with Limine: Secure Boot support has been enabled in the Limine bootloader. The system now automatically signs the bootloader and generates kernel integrity hashes during system rebuilds.
  • Goodbye to default VPN plugins: NetworkManager no longer loads a set of VPN plugins by default; the user must explicitly declare which ones they need, reducing the attack surface and bloatware.

New services and packages

As is typical for NixOS, the repository has grown enormously. Among the 107 new modules Additions, note:

  • Pi-hole: The famous DNS-level ad blocker comes as a native service (services.pihole-ftl).
  • dwl: A composer for Wayland based on wlroots, ideal for those looking for a minimalist "tiling" experience.
  • TuneD: The system performance optimization service for Linux.
  • speedify: A VPN that allows you to combine multiple internet connections (Wi-Fi, 4G, Ethernet) to improve speed and stability.
  • Sharkey and Tuwunel: New options for the fediverse and Matrix servers.

Breaking Changes

It is important to note that this version removes obsolete technologies. The Qt 5-based versions of KDE Plasma, Gear, and Maui have been completely removed.Users must migrate to Plasma 6.x.

Furthermore, PostgreSQL 17 It is now the default version for new installations, and Docker It has jumped to the 28.x branch, given that version 27 will no longer be supported in May 2025.

How to upgrade to NixOS 25.11

For current NixOS users, the upgrade process follows the usual channel switching flow.

1. Update the channel to version 25.11:

sudo nix-channel --add https://nixos.org/channels/nixos-25.11 nixos

2. Update local channels:

sudo nix-channel --update

3. Rebuild the system:

sudo nixos-rebuild switch --upgrade

If you use Nix FlakesYou just need to update your inputs in the flake.nix file to point to the nixos-25.11 branch and run:

nix flake update sudo nixos-rebuild switch --flake

Finally, if you're interested in more technical details and a comprehensive list of changes, you can consult the official release notes. In the following link.