{ description = "Eden's NixOS Flake"; outputs = { self, nixpkgs, ... }@inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" ]; imports = [ ./hosts inputs.treefmt-nix.flakeModule { _module.args = { inherit inputs self nixpkgs; }; } ]; flake = { homeManagerModules = import ./modules/home-manager; overlays = import ./overlays { inherit inputs self; }; templates = import ./templates; }; perSystem = { pkgs, ... }: { packages = import ./pkgs { inherit pkgs; }; treefmt = { projectRootFile = "flake.nix"; programs.nixfmt.enable = true; programs.ruff-format.enable = true; programs.prettier.enable = true; programs.beautysh.enable = true; programs.toml-sort.enable = true; settings.global.excludes = [ "*.age" ]; settings.formatter = { jsonc = { command = "${pkgs.nodePackages.prettier}/bin/prettier"; includes = [ "*.jsonc" ]; }; scripts = { command = "${pkgs.beautysh}/bin/beautysh"; includes = [ "*/scripts/*" ]; }; }; }; }; }; inputs = { nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-parts.url = "github:hercules-ci/flake-parts"; niri-unstable = { url = "github:YalTeR/niri/9204719cd9c9145f6824bcc75485bcf7f7262468"; flake = false; }; niri = { url = "github:sodiboo/niri-flake"; inputs.niri-unstable.follows = "niri-unstable"; }; nur.url = "github:nix-community/NUR"; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; nil = { url = "github:oxalica/nil"; inputs.nixpkgs.follows = "nixpkgs"; }; nixd = { url = "github:nix-community/nixd"; inputs.nixpkgs.follows = "nixpkgs"; }; nh.url = "github:viperML/nh"; treefmt-nix.url = "github:numtide/treefmt-nix"; agenix.url = "github:ryantm/agenix"; maomaowm.url = "github:DreamMaoMao/maomaowm"; nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland"; }; }