{ description = '' For questions just DM me on X: https://twitter.com/@m3tam3re There is also some NIXOS content on my YT channel: https://www.youtube.com/@m3tam3re One of the best ways to learn NIXOS is to read other peoples configurations. I have personally learned a lot from Gabriel Fontes configs: https://github.com/Misterio77/nix-starter-configs https://github.com/Misterio77/nix-config Please also check out the starter configs mentioned above. ''; inputs = { home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs-45570c2.url = "github:nixos/nixpkgs/45570c299dc2b63c8c574c4cd77f0b92f7e2766e"; nixpkgs-locked.url = "github:nixos/nixpkgs/2744d988fa116fc6d46cdfa3d1c936d0abd7d121"; nixpkgs-9e58ed7.url = "github:nixos/nixpkgs/9e58ed7ba759d81c98f033b7f5eba21ca68f53b0"; nixpkgs-master.url = "github:nixos/nixpkgs/master"; m3ta-nixpkgs.url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs"; # m3ta-nixpkgs.url = "path:/home/m3tam3re/p/NIX/nixpkgs"; # nur = { url = "github:nix-community/NUR"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix.url = "github:ryantm/agenix"; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-generators = { url = "github:nix-community/nixos-generators"; }; hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor"; nix-colors.url = "github:misterio77/nix-colors"; agents = { url = "path:/home/m3tam3re/p/AI/AGENTS"; # url = "git+https://code.m3ta.dev/m3tam3re/AGENTS"; flake = false; }; }; outputs = { self, agenix, home-manager, nixpkgs, m3ta-nixpkgs, nur, agents , ... }@inputs: let inherit (self) outputs; systems = [ "aarch64-linux" "i686-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs systems; in { packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); overlays = import ./overlays { inherit inputs outputs; }; homeManagerModules = import ./modules/home-manager; nixosConfigurations = { m3-ares = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; hostname = "m3-ares"; }; modules = [ ./hosts/m3-ares agenix.nixosModules.default m3ta-nixpkgs.nixosModules.default ]; }; m3-atlas = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; }; system = "x86_64-linux"; modules = [ ./hosts/m3-atlas inputs.disko.nixosModules.disko agenix.nixosModules.default m3ta-nixpkgs.nixosModules.default ]; }; m3-kratos = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; hostname = "m3-kratos"; }; modules = [ ./hosts/m3-kratos agenix.nixosModules.default nur.modules.nixos.default m3ta-nixpkgs.nixosModules.default ]; }; m3-helios = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; }; system = "x86_64-linux"; modules = [ ./hosts/m3-helios inputs.disko.nixosModules.disko agenix.nixosModules.default m3ta-nixpkgs.nixosModules.default ]; }; }; homeConfigurations = { "m3tam3re@m3-daedalus" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; extraSpecialArgs = { inherit inputs outputs; hostname = "m3-daedalus"; }; modules = [ ./home/m3tam3re/m3-daedalus.nix ]; }; }; devShells.x86_64-linux.infraShell = let pkgs = nixpkgs.legacyPackages.x86_64-linux; in pkgs.mkShell { buildInputs = with pkgs; [ opentofu nixos-anywhere ]; shellHook = '' echo "Infrastructure Management Shell" echo "Commands:" echo " - cd infra/proxmox && tofu init" echo " - tofu plan" echo " - tofu apply" ''; }; devShells.x86_64-linux.default = let pkgs = nixpkgs.legacyPackages.x86_64-linux; m3taLib = m3ta-nixpkgs.lib.x86_64-linux; rules = m3taLib.opencode-rules.mkOpencodeRules { inherit agents; languages = [ "nix" ]; }; in pkgs.mkShell { inherit (rules) instructions; shellHook = '' ${rules.shellHook} echo "======================================" echo "Nix Development Shell with Opencode Rules" echo "======================================" echo "" echo "Active rules:" echo " - Nix language conventions" echo " - Coding-style best practices" echo " - Naming conventions" echo " - Documentation standards" echo " - Testing guidelines" echo " - Git workflow patterns" echo " - Project structure guidelines" echo "" echo "Generated files:" echo " - .opencode-rules/ (symlink to AGENTS repo)" echo " - opencode.json (configuration file)" echo "" echo "Useful commands:" echo " - cat opencode.json View rules configuration" echo " - ls .opencode-rules/ Browse available rules" echo " - nix develop Re-enter this shell" echo "" echo "Remember to add to .gitignore:" echo " .opencode-rules" echo " opencode.json" echo "======================================" ''; }; }; }