Release 24.05 (“Uakari”) Highlights
In addition to numerous new and upgraded packages, this release has the following highlights:
- The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
- For each supporting version of the Linux kernel, firmware blobs are compressed with zstd. For firmware blobs this means an increase of 4.4% in size, however a significantly higher decompression speed.
- NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS .
- This can be disabled through the environment.stub-ld.enable option.
- If you use programs.nix-ld.enable, no changes are needed. The stub will be disabled automatically.
- On flake-based NixOS configurations using nixpkgs.lib.nixosSystem, NixOS will automatically set NIX_PATH and the system-wide flake registry (/etc/nix/registry.json) to point <nixpkgs> and the unqualified flake path nixpkgs to the version of nixpkgs used to build the system.
This makes nix run nixpkgs#hello and nix-build '<nixpkgs>' -A hello work out of the box with no added configuration, reusing dependencies already on the system. This may be undesirable if Nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled. To disable it, set nixpkgs.flake.setNixPath and nixpkgs.flake.setFlakeRegistry to false.- NixOS AMIs are now uploaded regularly to a new AWS Account. Instructions on how to use them can be found on https://nixos.github.io/amis. We are working on integrating the data into the NixOS homepage. The list in nixos/modules/virtualisation/amazon-ec2-amis.nix will stop being updated and will be removed in the future.
- It is now possible to have a completely perlless system (i.e. a system without perl). Previously, the NixOS activation depended on two perl scripts which can now be replaced via an opt-in mechanism. To make your system perlless, you can use the new perlless profile: { modulesPath, … }: { imports = [ “${modulesPath}/profiles/perlless.nix” ]; }
- Cinnamon has been updated to 6.0. Please be aware that the Wayland session is still experimental in this release and could potentially affect Xorg sessions. We suggest a reboot when switching between sessions.
- GNOME has been updated to 46 “Kathmandu”. Refer to the release notes for more details. Notably this release brings experimental VRR support, default GTK renderer changes and WebDAV support in Online Accounts. This release we have also stopped including the legacy and unsupported Adwaita-Dark theme by default.
- Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with services.desktopManager.lomiri.enable = true. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
- LXQt has been updated to 2.0, which is based on Qt 6 and features Wayland support for many applications.
- MATE has been updated to 1.28.
- To properly support panel plugins built with Wayland (in-process) support, we are introducing the services.xserver.desktopManager.mate.extraPanelApplets option, please use that for installing panel applets.
- Similarly, please use the services.xserver.desktopManager.mate.extraCajaExtensions option for installing Caja extensions.
- To use the Wayland session, enable services.xserver.desktopManager.mate.enableWaylandSession. This is opt-in for now as it is in early an stage and introduces a new set of Wayfire closures. Due to known issues with LightDM, we suggest using SDDM as the display manager.
- Plasma 6 is now available and can be installed with services.xserver.desktopManager.plasma6.enable = true;. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.