added devbox, devenv, flox

This commit is contained in:
randogoth 2026-02-04 11:09:16 +02:00
parent febdf2702c
commit 98d681cf32
5 changed files with 199 additions and 28 deletions

161
flake.lock generated
View file

@ -1,6 +1,21 @@
{ {
"nodes": { "nodes": {
"crane": { "crane": {
"locked": {
"lastModified": 1766774972,
"narHash": "sha256-8qxEFpj4dVmIuPn9j9z6NTbU+hrcGjBOvaxTzre5HmM=",
"owner": "ipetkov",
"repo": "crane",
"rev": "01bc1d404a51a0a07e9d8759cd50a7903e218c82",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"crane_2": {
"locked": { "locked": {
"lastModified": 1769287525, "lastModified": 1769287525,
"narHash": "sha256-gABuYA6BzoRMLuPaeO5p7SLrpd4qExgkwEmYaYQY4bM=", "narHash": "sha256-gABuYA6BzoRMLuPaeO5p7SLrpd4qExgkwEmYaYQY4bM=",
@ -15,7 +30,45 @@
"type": "github" "type": "github"
} }
}, },
"fenix": {
"inputs": {
"nixpkgs": [
"flox",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1766904428,
"narHash": "sha256-ZNm41Tuh+PHpoV7qEFnhgNu/B6Co9c+rIttcr7TCaMo=",
"owner": "nix-community",
"repo": "fenix",
"rev": "3b672faf8fcc01eb63856b69afe7a12dcb7c78fe",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1767039857, "lastModified": 1767039857,
@ -64,7 +117,50 @@
"type": "github" "type": "github"
} }
}, },
"flox": {
"inputs": {
"crane": "crane",
"fenix": "fenix",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1770152711,
"narHash": "sha256-URH0UkeXCofieKJ0Hbh98O+9qZwGgvwfkKP0zL9wUIo=",
"owner": "flox",
"repo": "flox",
"rev": "4093242d704102ca898e64631ff196f1ddeeb883",
"type": "github"
},
"original": {
"owner": "flox",
"repo": "flox",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": {
"nixpkgs": [
"flox",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"lanzaboote", "lanzaboote",
@ -88,7 +184,7 @@
}, },
"lanzaboote": { "lanzaboote": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
@ -184,6 +280,22 @@
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1766651565,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"owner": "flox",
"repo": "nixpkgs",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"type": "github"
},
"original": {
"owner": "flox",
"ref": "stable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1769741972, "lastModified": 1769741972,
"narHash": "sha256-RxSg1EioTWNpoLaykiT1UQKTo/K0PPdLqCyQgNjNqWs=", "narHash": "sha256-RxSg1EioTWNpoLaykiT1UQKTo/K0PPdLqCyQgNjNqWs=",
@ -201,8 +313,8 @@
}, },
"pre-commit": { "pre-commit": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat_2",
"gitignore": "gitignore", "gitignore": "gitignore_2",
"nixpkgs": [ "nixpkgs": [
"lanzaboote", "lanzaboote",
"nixpkgs" "nixpkgs"
@ -222,13 +334,54 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"flox",
"nixpkgs"
]
},
"locked": {
"lastModified": 1765911976,
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"flox": "flox",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"lix-module": "lix-module", "lix-module": "lix-module",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs_2"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1766863309,
"narHash": "sha256-LLGFE8MXlmH9FfPjZAPFnrc0vsUryhIDwcJQgqnpSAg=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "546d1ffbfd296e06424236cd467f41cb6fe63b2e",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
} }
}, },
"rust-overlay": { "rust-overlay": {

View file

@ -12,37 +12,35 @@
lix-module.inputs.nixpkgs.follows = "nixpkgs"; lix-module.inputs.nixpkgs.follows = "nixpkgs";
lanzaboote.url = "github:nix-community/lanzaboote"; lanzaboote.url = "github:nix-community/lanzaboote";
lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs";
flox.url = "github:flox/flox";
}; };
outputs = inputs@{ self, nixpkgs, ... }: outputs =
inputs@{ self, nixpkgs, ... }:
let let
lib = nixpkgs.lib; lib = nixpkgs.lib;
hostFiles = builtins.attrNames (builtins.readDir ./hosts); hostFiles = builtins.attrNames (builtins.readDir ./hosts);
hostNames = hostNames = lib.filter (
lib.filter (name: name: lib.hasSuffix ".nix" name && !(lib.hasSuffix "-hardware.nix" name) && name != "iso.nix"
lib.hasSuffix ".nix" name ) hostFiles;
&& !(lib.hasSuffix "-hardware.nix" name) mkHost =
&& name != "iso.nix" name:
) lib.nixosSystem {
hostFiles; system = "x86_64-linux";
mkHost = name: lib.nixosSystem { specialArgs = { inherit inputs; };
system = "x86_64-linux"; modules = [ (./hosts + "/${name}.nix") ];
specialArgs = { inherit inputs; };
modules = [ (./hosts + "/${name}.nix") ];
};
in {
nixosConfigurations =
lib.genAttrs (map (lib.removeSuffix ".nix") hostNames) mkHost
// {
installer = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [ ./hosts/iso.nix ];
};
}; };
in
{
nixosConfigurations = lib.genAttrs (map (lib.removeSuffix ".nix") hostNames) mkHost // {
installer = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [ ./hosts/iso.nix ];
};
};
packages.x86_64-linux.install-iso = packages.x86_64-linux.install-iso = self.nixosConfigurations.installer.config.system.build.isoImage;
self.nixosConfigurations.installer.config.system.build.isoImage;
packages.x86_64-linux.default = self.packages.x86_64-linux.install-iso; packages.x86_64-linux.default = self.packages.x86_64-linux.install-iso;
}; };
} }

View file

@ -19,6 +19,7 @@
../modules/desktop/desktop-entries.nix ../modules/desktop/desktop-entries.nix
../modules/desktop/file-manager.nix ../modules/desktop/file-manager.nix
../modules/desktop/gnome-minimal.nix ../modules/desktop/gnome-minimal.nix
../modules/development/flox.nix
../modules/users/admin.nix ../modules/users/admin.nix
] ]
++ lib.optionals (builtins.pathExists ./nanuqsaurus-hardware.nix) [ ++ lib.optionals (builtins.pathExists ./nanuqsaurus-hardware.nix) [

View file

@ -0,0 +1,17 @@
{
lib,
pkgs,
inputs,
...
}:
{
nix.settings.trusted-substituters = lib.mkAfter [ "https://cache.flox.dev" ];
nix.settings.trusted-public-keys = lib.mkAfter [
"flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs="
];
environment.systemPackages = lib.mkAfter [
inputs.flox.packages.${pkgs.system}.flox
];
}

View file

@ -3,6 +3,8 @@
{ {
# Baseline system tools available everywhere; users run Home Manager standalone. # Baseline system tools available everywhere; users run Home Manager standalone.
config.environment.systemPackages = lib.mkAfter [ config.environment.systemPackages = lib.mkAfter [
pkgs.devbox
pkgs.devenv
pkgs.distrobox pkgs.distrobox
pkgs.distroshelf pkgs.distroshelf
pkgs.dnsmasq pkgs.dnsmasq