Something went wrong. Try again.
Something went wrong. Try again.
finixified flake.nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154{ description = "finix config";
inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
finix.url = "github:finix-community/finix"; community-modules.url = "github:finix-community/community-modules";
nixcord.url = "github:4evy/nixcord"; nix-index-database.url = "github:nix-community/nix-index-database";
vscode-server.url = "github:nix-community/nixos-vscode-server";
disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; };
sops-nix = { url = "github:FixeQD/sops-nix/feat/non-systemd-activation"; inputs.nixpkgs.follows = "nixpkgs"; };
spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
hjem = { url = "github:feel-co/hjem"; inputs.nixpkgs.follows = "nixpkgs"; };
hjem-rum = { url = "github:snugnug/hjem-rum"; inputs.nixpkgs.follows = "nixpkgs"; inputs.hjem.follows = "hjem"; };
helium = { url = "github:AlvaroParker/helium-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
exo = { url = "github:FixeQD/Exo"; inputs.nixpkgs.follows = "nixpkgs"; }; };
outputs = inputs@{ nixpkgs, finix, community-modules, nixcord, disko, sops-nix, helium, ... }: let mkHost = { host, system ? "x86_64-linux", extraModules ? [ ], }: let flakeDir = "/etc/finix";
pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; overlays = [ sops-nix.overlays.default ]; }; hostConfig = (import host) { inherit pkgs nixpkgs inputs disko community-modules finix nixcord flakeDir ; }; in finix.lib.finixSystem { inherit (pkgs) lib; specialArgs = (hostConfig.specialArgs or { }) // { inherit sops-nix; }; modules = [ { nixpkgs.pkgs = nixpkgs.lib.mkDefault pkgs; } ( { config, ... }: let user = config.modules.user.name; in { system.activation.scripts.ensure-flake-dir = { deps = [ "users" ]; text = '' install -d -o ${user} -g ${config.users.users.${user}.group} -m 0775 ${flakeDir} ''; }; } ) ] ++ hostConfig.modules ++ extraModules; };
hostConfigurations = { wifi-chan = mkHost { host = ./hosts/wifi-chan/default.nix; }; gownobook = mkHost { host = ./hosts/gownobook/default.nix; }; };
mkInstallApp = { config, resume ? false, }: let installer = if resume then config.system.build.resumeInstaller else config.system.build.installer; in { type = "app"; program = nixpkgs.lib.getExe installer; meta.description = installer.meta.description; }; in { nixosConfigurations = hostConfigurations;
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
apps.x86_64-linux = nixpkgs.lib.concatMapAttrs (name: host: { "install-${name}" = mkInstallApp { inherit (host) config; }; "resume-install-${name}" = mkInstallApp { inherit (host) config; resume = true; }; }) hostConfigurations; };}