From 6b6dab4bbc5c75e5b6db3388498d7bb857eb187e Mon Sep 17 00:00:00 2001 From: "Casper V. Kristensen" Date: Sun, 2 Jun 2024 22:56:02 +0200 Subject: [PATCH] nixos v24.05 --- README.md | 7 +++++-- flake.lock | 34 +++++++++++++++++----------------- flake.nix | 4 ++-- hosts/alpha/default.nix | 4 ++-- hosts/delta/default.nix | 4 ++-- hosts/mu/default.nix | 4 ++-- hosts/omega/default.nix | 4 ++-- hosts/omega/hardware.nix | 2 +- hosts/sigma/default.nix | 4 ++-- hosts/sigma/forgejo.nix | 3 --- hosts/sigma/hardware.nix | 2 +- hosts/sigma/sonarr.nix | 4 +--- hosts/tor/default.nix | 4 ++-- hosts/zeta/default.nix | 4 ++-- modules/base/network.nix | 4 ++-- modules/base/nix.nix | 16 ++++++++-------- modules/desktop/foot.nix | 8 +------- modules/desktop/network.nix | 2 +- modules/desktop/rofi.nix | 9 +++++---- modules/desktop/ssh.nix | 10 +++------- modules/desktop/sway.nix | 3 ++- 21 files changed, 63 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index ddaffa1..dac71e1 100644 --- a/README.md +++ b/README.md @@ -134,10 +134,13 @@ nixos-install --no-root-passwd --flake .#omega `hosts/*/hardware.nix`, while initially generated by `nixos-generate-config --show-hardware-config`, _is_ manually modified. -### State Version +### Upgrading Nixpkgs uses `stateVersion` so sparingly that auditing the entire nixpkgs repo is [easy -enough](https://sourcegraph.com/search?q=context%3Aglobal+repo%3A%5Egithub%5C.com%3FNixOS%2Fnixpkgs%24++lang%3ANix+stateVersion+AND+23.11). +enough](https://sourcegraph.com/search?q=context:global+repo:%5Egithub%5C.com/NixOS/nixpkgs%24+lang:Nix+stateVersion+AND+24.05&patternType=keyword&sm=0). +Important changes to home-manager is available at + and +. ## Useful Commands diff --git a/flake.lock b/flake.lock index 33fcc7a..2e1ea8f 100644 --- a/flake.lock +++ b/flake.lock @@ -64,16 +64,16 @@ ] }, "locked": { - "lastModified": 1716729592, - "narHash": "sha256-Y3bOjoh2cFBqZN0Jw1zUdyr7tjygyxl2bD/QY73GZP0=", + "lastModified": 1716736833, + "narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=", "owner": "nix-community", "repo": "home-manager", - "rev": "2c78a57c544dd19b07442350727ced097e1aa6e6", + "rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.11", + "ref": "release-24.05", "repo": "home-manager", "type": "github" } @@ -85,11 +85,11 @@ ] }, "locked": { - "lastModified": 1717097707, - "narHash": "sha256-HC5vJ3oYsjwsCaSbkIPv80e4ebJpNvFKQTBOGlHvjLs=", + "lastModified": 1717316182, + "narHash": "sha256-Xi0EpZcu39N0eW7apLjFfUOR9y80toyjYizez7J1wMI=", "owner": "nix-community", "repo": "home-manager", - "rev": "0eb314b4f0ba337e88123e0b1e57ef58346aafd9", + "rev": "9b53a10f4c91892f5af87cf55d08fba59ca086af", "type": "github" }, "original": { @@ -121,11 +121,11 @@ ] }, "locked": { - "lastModified": 1716772633, - "narHash": "sha256-Idcye44UW+EgjbjCoklf2IDF+XrehV6CVYvxR1omst4=", + "lastModified": 1717297675, + "narHash": "sha256-43UmlS1Ifx17y93/Vc258U7bOlAAIZbu8dsGDHOIIr0=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "ff80cb4a11bb87f3ce8459be6f16a25ac86eb2ac", + "rev": "972a52bee3991ae1f1899e6452e0d7c01ee566d9", "type": "github" }, "original": { @@ -136,11 +136,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1716987116, - "narHash": "sha256-uuEkErFVsFdg2K0cKbNQ9JlFSAm/xYqPr4rbPLI91Y8=", + "lastModified": 1717248095, + "narHash": "sha256-e8X2eWjAHJQT82AAN+mCI0B68cIDBJpqJ156+VRrFO0=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "8251761f93d6f5b91cee45ac09edb6e382641009", + "rev": "7b49d3967613d9aacac5b340ef158d493906ba79", "type": "github" }, "original": { @@ -152,16 +152,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1716991068, - "narHash": "sha256-Av0UWCCiIGJxsZ6TFc+OiKCJNqwoxMNVYDBChmhjNpo=", + "lastModified": 1717144377, + "narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "25cf937a30bf0801447f6bf544fc7486c6309234", + "rev": "805a384895c696f802a9bf5bf4720f37385df547", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.11", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index a83ceaf..1e47530 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,7 @@ url = "git+ssh://git@git.caspervk.net/caspervk/nixos-secrets.git"; }; nixpkgs = { - url = "github:NixOS/nixpkgs/nixos-23.11"; + url = "github:NixOS/nixpkgs/nixos-24.05"; }; nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixos-unstable"; @@ -32,7 +32,7 @@ inputs.nixpkgs.follows = "nixpkgs"; # use the same nixpkgs as the system }; home-manager = { - url = "github:nix-community/home-manager/release-23.11"; + url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; # use the same nixpkgs as the system }; home-manager-unstable = { diff --git a/hosts/alpha/default.nix b/hosts/alpha/default.nix index ff66f22..d014791 100644 --- a/hosts/alpha/default.nix +++ b/hosts/alpha/default.nix @@ -27,7 +27,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -36,5 +36,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/hosts/delta/default.nix b/hosts/delta/default.nix index c6c7144..ec11d27 100644 --- a/hosts/delta/default.nix +++ b/hosts/delta/default.nix @@ -25,7 +25,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -34,5 +34,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/hosts/mu/default.nix b/hosts/mu/default.nix index a24ddbc..6a997f4 100644 --- a/hosts/mu/default.nix +++ b/hosts/mu/default.nix @@ -28,7 +28,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -37,5 +37,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/hosts/omega/default.nix b/hosts/omega/default.nix index ae6297a..db93643 100644 --- a/hosts/omega/default.nix +++ b/hosts/omega/default.nix @@ -26,7 +26,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -35,5 +35,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/hosts/omega/hardware.nix b/hosts/omega/hardware.nix index 8262c05..7503928 100644 --- a/hosts/omega/hardware.nix +++ b/hosts/omega/hardware.nix @@ -19,7 +19,7 @@ boot.initrd.kernelModules = ["dm-snapshot"]; boot.kernelModules = ["kvm-amd"]; boot.extraModulePackages = []; - boot.supportedFilesystems = ["ntfs"]; + boot.supportedFilesystems = {ntfs = true;}; # https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/ fileSystems."/" = { diff --git a/hosts/sigma/default.nix b/hosts/sigma/default.nix index b6aad58..8a9de2d 100644 --- a/hosts/sigma/default.nix +++ b/hosts/sigma/default.nix @@ -37,7 +37,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -46,5 +46,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/hosts/sigma/forgejo.nix b/hosts/sigma/forgejo.nix index 314ada3..d03a779 100644 --- a/hosts/sigma/forgejo.nix +++ b/hosts/sigma/forgejo.nix @@ -1,6 +1,5 @@ { config, - nixpkgs-unstable, pkgs, secrets, ... @@ -10,8 +9,6 @@ # https://wiki.nixos.org/wiki/Forgejo services.forgejo = { enable = true; - # TODO: remove package override in NixOS 24.04 - package = nixpkgs-unstable.legacyPackages.x86_64-linux.forgejo; # Run Forgejo under git:git for better ssh clone urls. user = "git"; group = "git"; diff --git a/hosts/sigma/hardware.nix b/hosts/sigma/hardware.nix index b6b805b..2ae26e5 100644 --- a/hosts/sigma/hardware.nix +++ b/hosts/sigma/hardware.nix @@ -18,7 +18,7 @@ boot.initrd.kernelModules = ["dm-snapshot"]; boot.kernelModules = ["kvm-amd"]; boot.extraModulePackages = []; - boot.supportedFilesystems = []; + boot.supportedFilesystems = {}; # https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/ fileSystems."/" = { diff --git a/hosts/sigma/sonarr.nix b/hosts/sigma/sonarr.nix index b658f9d..fa23cec 100644 --- a/hosts/sigma/sonarr.nix +++ b/hosts/sigma/sonarr.nix @@ -1,4 +1,4 @@ -{nixpkgs-unstable, ...}: { +{...}: { # Sonarr is an internet PVR for Usenet and Torrents. # https://sonarr.tv/ # @@ -14,8 +14,6 @@ # * UI: Fix retarded date formats. services.sonarr = { enable = true; - # Unstable for sonarr v4. TODO: remove in NixOS 24.04 - package = nixpkgs-unstable.legacyPackages.x86_64-linux.sonarr; # Use the 'torrent' group to share files amongst downloaders, indexers etc. group = "torrent"; }; diff --git a/hosts/tor/default.nix b/hosts/tor/default.nix index dbe47a6..4686cfe 100644 --- a/hosts/tor/default.nix +++ b/hosts/tor/default.nix @@ -26,7 +26,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -35,5 +35,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/hosts/zeta/default.nix b/hosts/zeta/default.nix index 8544b97..3ec76e6 100644 --- a/hosts/zeta/default.nix +++ b/hosts/zeta/default.nix @@ -25,7 +25,7 @@ # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? + system.stateVersion = "24.05"; # Did you read the comment? # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage @@ -34,5 +34,5 @@ # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. - home-manager.users.caspervk.home.stateVersion = "23.11"; # Did you read the comment? + home-manager.users.caspervk.home.stateVersion = "24.05"; # Did you read the comment? } diff --git a/modules/base/network.nix b/modules/base/network.nix index 96be7c9..81cb9e3 100644 --- a/modules/base/network.nix +++ b/modules/base/network.nix @@ -15,7 +15,7 @@ }; # TODO: these systemd networkd settings will be the default once - # https://github.com/NixOS/nixpkgs/pull/202488 is merged. + # https://github.com/NixOS/nixpkgs/pull/264967 is merged. networking.useNetworkd = true; systemd.network.enable = true; @@ -50,7 +50,7 @@ # Resolved falls back to DNS servers operated by American internet # surveillance and adtech companies by default. No thanks, I'd rather have # no DNS at all. - fallbackDns = config.networking.nameservers; + fallbackDns = []; }; # TCP BBR has significantly increased throughput and reduced latency. Note diff --git a/modules/base/nix.nix b/modules/base/nix.nix index e6f61ad..e85a53d 100644 --- a/modules/base/nix.nix +++ b/modules/base/nix.nix @@ -1,4 +1,5 @@ { + config, nix-index-database, nixpkgs-unstable, nixpkgs, @@ -35,20 +36,19 @@ # The nix registry is used to refer to flakes using symbolic identifiers # when running commands such as `nix run nixpkgs#hello`. By default, - # the global registry from [1] is used, which aliases `nixpkgs` to the - # nixpkgs-unstable branch. We overwrite the default global `nixpkgs` - # registry with one which refers to the same nixpkgs as the rest of - # the system, aligning it with flake.lock. - # [1] https://github.com/NixOS/flake-registry/blob/master/flake-registry.json + # `nixpkgs` is an alias of the system's nixpkgs, but no such alias is made + # for unstable. registry = { - nixpkgs.flake = nixpkgs; nixpkgs-unstable.flake = nixpkgs-unstable; }; }; # The system-wide garbage collection service configured above does not know - # about our user profile. TODO: 24.04 - # home-manager.users.caspervk.nix.gc = config.nix.gc; + # about our user profile. + home-manager.users.caspervk.nix.gc = { + inherit (config.nix.gc) automatic options; + frequency = config.nix.gc.dates; + }; # Run unpatched dynamic binaries on NixOS. # https://github.com/Mic92/nix-ld diff --git a/modules/desktop/foot.nix b/modules/desktop/foot.nix index cc01e63..1b752ec 100644 --- a/modules/desktop/foot.nix +++ b/modules/desktop/foot.nix @@ -1,15 +1,9 @@ -{ - home-manager, - nixpkgs-unstable, - ... -}: { +{home-manager, ...}: { # Terminal emulator # https://codeberg.org/dnkl/foot home-manager.users.caspervk = { programs.foot = { enable = true; - # TODO: remove version override in NixOS v24.04 - package = nixpkgs-unstable.legacyPackages.x86_64-linux.foot; # https://man.archlinux.org/man/foot.ini.5.en settings = { main = { diff --git a/modules/desktop/network.nix b/modules/desktop/network.nix index 40a2c36..248ab4e 100644 --- a/modules/desktop/network.nix +++ b/modules/desktop/network.nix @@ -28,6 +28,6 @@ # a different service is responsible for managing the system's internet # connection (for example, NetworkManager), this service is unnecessary and # can be disabled. - # https://search.nixos.org/options?channel=23.11&show=systemd.network.wait-online.enable + # https://search.nixos.org/options?channel=24.05&show=systemd.network.wait-online.enable systemd.network.wait-online.enable = false; } diff --git a/modules/desktop/rofi.nix b/modules/desktop/rofi.nix index 5c4ca71..741902d 100644 --- a/modules/desktop/rofi.nix +++ b/modules/desktop/rofi.nix @@ -15,12 +15,13 @@ package = pkgs.rofi-wayland; theme = "android_notification"; extraConfig = { - modes = "drun,emoji"; + modes = "drun"; # TODO: drun,emoji show-icons = true; }; - plugins = with pkgs; [ - rofi-emoji - ]; + # TODO + # plugins = with pkgs; [ + # rofi-emoji + # ]; }; }; } diff --git a/modules/desktop/ssh.nix b/modules/desktop/ssh.nix index e5ad5a1..c3ba3c8 100644 --- a/modules/desktop/ssh.nix +++ b/modules/desktop/ssh.nix @@ -13,13 +13,9 @@ # to the mess that is IPv6. Force keepalive packets to avoid sessions # dying. See https://news.ycombinator.com/item?id=25737611. serverAliveInterval = 25; - # TODO: use addKeysToAgent attribute in Home Manager 24.04 instead of - # extraConfig. - extraConfig = '' - # Add ssh keys to the agent the first time we unlock them so we don't - # have to type the password all the time. - AddKeysToAgent yes - ''; + # Add ssh keys to the agent the first time we unlock them so we don't + # have to type the password all the time. + addKeysToAgent = "yes"; }; }; diff --git a/modules/desktop/sway.nix b/modules/desktop/sway.nix index 715decd..7c3420f 100644 --- a/modules/desktop/sway.nix +++ b/modules/desktop/sway.nix @@ -45,6 +45,7 @@ }; }; modifier = "Mod4"; # super + defaultWorkspace = "workspace number 1"; keybindings = lib.mkOptionDefault { # Menu "Mod4+backspace" = "exec rofi -show drun"; @@ -139,7 +140,7 @@ src = "${pkgs.waybar}/etc/xdg/waybar"; installPhase = '' # JSON isn't valid if it contains comments - sed 's#//.*##' config | ${pkgs.jq}/bin/jq > $out + sed 's#//.*##' config.jsonc | ${pkgs.jq}/bin/jq > $out ''; }; defaultConfig = builtins.fromJSON (lib.readFile "${mkDefaultConfig}");