{ description = "matej's nix setup"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs-master.url = "github:nixos/nixpkgs/master"; # dotfiles = { # url = "git+https://git.janezic.dev/janezicmatej/.dotfiles.git"; # flake = false; # }; # nvim = { # url = "git+https://git.janezic.dev/janezicmatej/nvim.git?ref=rewrite"; # flake = false; # }; flake-utils.url = "github:numtide/flake-utils"; home-manager = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; }; lanzaboote = { url = "github:nix-community/lanzaboote/v1.0.0"; inputs.nixpkgs.follows = "nixpkgs"; }; assets = { url = "git+https://git.janezic.dev/janezicmatej/assets.git"; flake = false; }; }; outputs = inputs@{ nixpkgs, flake-utils, ... }: let my-lib = import ./lib { lib = nixpkgs.lib; }; overlays = [ (_: prev: { claude-code = (import inputs.nixpkgs-unstable { system = prev.stdenv.hostPlatform.system; config.allowUnfree = true; }).claude-code; }) ]; mkHost = my-lib.mkHost { inherit nixpkgs overlays inputs ; }; in { lib = my-lib; nixosConfigurations = { matej-nixos = mkHost "matej-nixos" { system = "x86_64-linux"; users = [ "matej" ]; }; matej-tower = mkHost "matej-tower" { system = "x86_64-linux"; users = [ "matej" ]; }; # nixos-rebuild build-image --image-variant install-iso --flake .#live-iso live-iso = mkHost "live-iso" { system = "x86_64-linux"; users = [ ]; }; }; nixosModules = import ./modules/nixos { inherit my-lib; lib = nixpkgs.lib; } { }; } // flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; in { packages = import ./packages { inherit my-lib; lib = nixpkgs.lib; } (inputs // { inherit system; }); formatter = pkgs.nixfmt-tree; devShells.default = pkgs.mkShell { packages = [ pkgs.pre-commit pkgs.statix ]; }; } ); }