{ description = "A simple NixOS flake for a single system architecture."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; hyprland = { url = "github:hyprwm/Hyprland"; inputs.nixpkgs.follows = "nixpkgs"; }; quickshell = { url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; inputs.nixpkgs.follows = "nixpkgs"; }; matugen = { url = "github:/InioX/Matugen"; inputs.nixpkgs.follows = "nixpkgs"; # ref = "refs/tags/matugen-v0.10.0"; }; }; outputs = { self, nixpkgs, hyprland, quickshell, matugen, ... }: let supportedSystems = ["x86_64-linux" "aarch64-darwin"]; eachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: let pkgs = import nixpkgs { inherit system; }; in f pkgs); in { nixosModules = rec { default = illogical-impulse; illogical-impulse = ./nix/modules; }; legacyPackages = eachSupportedSystem (pkgs: { iiShellConfig = pkgs.stdenv.mkDerivation { pname = "ii-shell-config"; version = "1.0"; src = ./.; installPhase = '' runHook preInstall install -d -m 755 $out/.config cp -r .config/quickshell $out/.config/ runHook postInstall ''; dontPatchShebangs = true; }; }); devShells = eachSupportedSystem (pkgs: { default = pkgs.mkShellNoCC { packages = [ self.legacyPackages.${pkgs.system}.iiShellConfig ]; }; }); }; }