{ inputs = { flake-parts.url = "github:hercules-ci/flake-parts"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; nextcloud = { url = "github:onny/nixos-nextcloud-testumgebung"; inputs.nixpkgs.follows = "nixpkgs"; }; gtrackmap = { url = "github:gtrackmap/gtrackmap"; inputs.nixpkgs.follows = "nixpkgs"; }; lanzaboote.url = "github:nix-community/lanzaboote"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; auto-cpufreq = { url = "github:AdnanHodzic/auto-cpufreq"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs = { nixpkgs.follows = "nixpkgs"; }; }; commander-nvim = { url = "github:FeiyouG/commander.nvim"; flake = false; }; vimpeccable = { url = "github:svermeulen/vimpeccable"; flake = false; }; windline-nvim = { url = "github:windwp/windline.nvim"; flake = false; }; gen-nvim = { url = "github:David-Kunz/gen.nvim"; flake = false; }; ketchup = { url = "github:repomaa/ketchup"; inputs.nixpkgs.follows = "nixpkgs"; }; workout-sync = { url = "sourcehut:~repomaa/workout-sync"; inputs.nixpkgs.follows = "nixpkgs"; }; hastebin = { url = "sourcehut:~repomaa/hastebin"; inputs.nixpkgs.follows = "nixpkgs"; }; ksoloti-pr.url = "github:repomaa/nixpkgs/pkg/ksoloti"; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { flake-parts, agenix, nixpkgs, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } ( let ssh.publicKeys.yubikey = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLIUkESu5NnBi1M0+ZjYrkp6/rIFuwc3aguspf98jmOydNce6l65cnS3GRzc9oWx4lu11ahi87ZuE+pYV+gaHm4="; specialArgs = { inherit inputs ssh; }; inherit (nixpkgs) lib; in { systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; perSystem = { pkgs, ... }: { devShells.default = pkgs.mkShell { packages = with pkgs; [ (writeShellScriptBin "switch" '' ${nh}/bin/nh os switch . '') (writeShellScriptBin "deploy" '' ${openssh}/bin/ssh -t "$1" nh os switch sourcehut:~repomaa/NixOS -- --option tarball-ttl 0 '') (writeShellScriptBin "evaluate" '' ${nix}/bin/nix build --dry-run ".#nixosConfigurations.$1.config.system.build.toplevel" | ${nix-output-monitor}/bin/nom '') agenix.packages.${pkgs.system}.default ]; }; }; flake.nixosConfigurations = { freun-dev = lib.nixosSystem { inherit specialArgs; modules = [ ./modules ./hosts/freun.dev ]; }; radish = lib.nixosSystem { inherit specialArgs; modules = [ ./modules ./hosts/radish ]; }; apu = nixpkgs.lib.nixosSystem { inherit specialArgs; modules = [ ./modules ./hosts/apu ]; }; }; } ); }