{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; base16 = { url = "github:SenchoPens/base16.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, base16, self, ... }: with nixpkgs.lib; { packages = genAttrs [ "aarch64-linux" "i686-linux" "x86_64-linux" ] ( system: let pkgs = nixpkgs.legacyPackages.${system}; ghc = pkgs.haskellPackages.ghcWithPackages (ps: with ps; [ json JuicyPixels random ]); in { palette-generator = pkgs.stdenvNoCC.mkDerivation { name = "palette-generator"; src = ./palette-generator; buildInputs = [ ghc ]; buildPhase = '' ghc -O -threaded -Wall -Wno-type-defaults Stylix/Main.hs ''; installPhase = '' install -D Stylix/Main $out/bin/palette-generator ''; }; palette-generator-haddock = pkgs.stdenvNoCC.mkDerivation { name = "palette-generator-haddock"; src = ./palette-generator; buildInputs = [ ghc ]; buildPhase = '' haddock $src/**/*.hs --html --ignore-all-exports --odir $out ''; dontInstall = true; dontFixup = true; }; } ); nixosModules.stylix = { pkgs, ... }@args: { imports = [ ./modules/alacritty.nix ./modules/console.nix ./modules/dunst.nix ./modules/feh.nix ./modules/fish.nix ./modules/grub.nix ./modules/gtk.nix ./modules/helix.nix ./modules/kitty.nix ./modules/lightdm.nix ./modules/plymouth ./modules/qutebrowser.nix ./modules/sway.nix ./modules/swaylock.nix ./modules/vim.nix (import ./stylix/palette.nix { inherit (self.packages.${pkgs.system}) palette-generator; base16 = base16.lib args; }) ./stylix/fonts.nix ./stylix/pixel.nix ./stylix/target.nix ]; }; }; }