# flake.nix { inputs = { nixos-hardware.url = "github:NixOS/nixos-hardware"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-flatpak.url = "github:gmodena/nix-flatpak"; # unstable branch stylix = { url = "github:donovanglover/stylix"; inputs = { nixpkgs.follows = "nixpkgs"; home-manager.follows = "home-manager"; }; }; yazi = { url = "github:sxyazi/yazi"; inputs.nixpkgs.follows = "nixpkgs"; }; shikane = { url = "git+https://gitlab.com/w0lff/shikane"; inputs.nixpkgs.follows = "nixpkgs"; }; kmonad = { url = "github:kmonad/kmonad?dir=nix"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprpicker = { url = "github:hyprwm/hyprpicker"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprlock = { url = "github:hyprwm/hyprlock"; inputs.nixpkgs.follows = "nixpkgs"; }; hypridle = { url = "github:hyprwm/hypridle"; inputs.nixpkgs.follows = "nixpkgs"; }; musnix = { url = "github:musnix/musnix"; inputs.nixpkgs.follows = "nixpkgs"; }; wezterm = { url = "github:wez/wezterm?dir=nix"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; affinity-nix = { url = "github:mrshmllow/affinity-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; isd = { url = "github:isd-project/isd"; inputs.nixpkgs.follows = "nixpkgs"; }; paperwm = { url = "github:paperwm/PaperWM"; inputs.nixpkgs.follows = "nixpkgs"; }; niri = { url = "github:YaLTeR/niri"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = {nixpkgs, home-manager, sops-nix, musnix, self, ... } @ inputs: let inherit (self) outputs; # Supported systems for your flake packages, shell, etc. systems = [ "x86_64-linux" ]; # This is a function that generates an attribute by calling a function you # pass to it, with each system as an argument forAllSystems = nixpkgs.lib.genAttrs systems; in { packages = forAllSystems (system: import ./packages nixpkgs.legacyPackages.${system}); formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); overlays = import ./overlays {inherit inputs;}; nixosConfigurations = { eddie = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs outputs; }; modules = [ sops-nix.nixosModules.sops inputs.nix-flatpak.nixosModules.nix-flatpak inputs.kmonad.nixosModules.default musnix.nixosModules.musnix ./system/eddie/configuration.nix ]; }; }; homeConfigurations = { "emenel" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance extraSpecialArgs = { inherit inputs outputs; }; modules = [ inputs.nix-flatpak.homeManagerModules.nix-flatpak inputs.stylix.homeManagerModules.stylix sops-nix.homeManagerModules.sops ./home/home.nix ]; }; }; }; }