{ description = "Nixos config flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; # used for some packages # Only uncomment when needed. This uses a lot of space and compute ressources for sometimes not that much. If not used, make it follow unstable nixpkgs-master.follows = "nixpkgs-unstable"; #nixpkgs-master.url = "github:nixos/nixpkgs/master"; # used with precaution as they are untested and not cached # This one is only used when testing some packaging. You must change the path to the correct nixpkgs clone #nixpkgs-local.url = "path:/home/tomasr/devel/fugit2-gpgme"; home-manager = { url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-utils = { url = "https://flakehub.com/f/numtide/flake-utils/*"; # flakehub caches results }; notewrapper = { url = "github:tomasriveral/notewrapper"; inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.flake-utils.follows = "flake-utils"; }; nixpkgs-notifier = { url = "github:tomasriveral/nixpkgs-notifier"; inputs.flake-utils.follows = "flake-utils"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; nix-git-cherry-picker = { url = "github:tomasriveral/nix-git-cherry-picker"; inputs.flake-utils.follows = "flake-utils"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; patent = { url = "github:r14dd/patent"; inputs.flake-utils.follows = "flake-utils"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; caelestia-shell = { # based on quickshell. See https://github.com/caelestia-dots/shell url = "github:caelestia-dots/shell"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; /* microPlugins-vivify = { url = "git+https://codeberg.org/gibbert/micro-vivify"; flake = false; }; */ flake-parts = { url = "https://flakehub.com/f/hercules-ci/flake-parts/*"; # flakehub caches results }; import-tree.url = "github:vic/import-tree"; # imports ./modules recursively }; outputs = inputs @ {flake-parts, ...}: flake-parts.lib.mkFlake {inherit inputs;} ({ flake = let system = "x86_64-linux"; unfreePkgs = [ "hplip" "nvidia-x11" "nvidia-settings" "steam" "steam-unwrapped" "cheatsheet.nvim" "zoom-us" "zoom" ]; mkUnfreePredicate = pkg: builtins.elem (inputs.nixpkgs.lib.getName pkg) unfreePkgs; mkPkgs = nixpkgsInput: import nixpkgsInput { inherit system; config.allowUnfreePredicate = mkUnfreePredicate; }; pkgs = mkPkgs inputs.nixpkgs; pkgs-unstable = mkPkgs inputs.nixpkgs-unstable; pkgs-local = mkPkgs inputs.nixpkgs-unstable; #pkgs-local = mkPkgs inputs.nixpkgs-local; pkgs-master = mkPkgs inputs.nixpkgs-master; in { inherit pkgs pkgs-unstable pkgs-local pkgs-master; }; } // (inputs.import-tree ./modules)); }