{ 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 = forAllSystems (system: let pkgs = import nixpkgs { inherit system; config.allowUnfree = true; # Allow unfree packages in devShell }; m3taLib = m3ta-nixpkgs.lib.x86_64-linux; rules = m3taLib.opencode-rules.mkOpencodeRules { inherit agents; languages = ["nix"]; }; in { default = pkgs.mkShell { buildInputs = with pkgs; [ alejandra nixd openssh agenix.packages.${system}.default ]; 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 "======================================" ''; }; }); }; }