maomaowm/flake.nix
Ruixi-rebirth 0a687f808d
feat(nix): generate module options docs and sync to website
- Add nix/generate-hm-options.nix to export HM and NixOS module options as JSON via nixosOptionsDoc
- Expose hm-options-json and nixos-options-json packages in flake.nix
- Add CI workflow to auto-build and push JSONs to mangowm.github.io on module changes
- Add missing description to hm-modules enable option
2026-05-12 16:01:03 +08:00

63 lines
1.7 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
scenefx = {
url = "github:wlrfx/scenefx";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
flake-parts,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
inputs.flake-parts.flakeModules.easyOverlay
];
flake = {
hmModules.mango = import ./nix/hm-modules.nix self;
nixosModules.mango = import ./nix/nixos-modules.nix self;
};
perSystem = {
config,
pkgs,
...
}: let
inherit (pkgs) callPackage ;
mango = callPackage ./nix {
inherit (inputs.scenefx.packages.${pkgs.stdenv.hostPlatform.system}) scenefx;
};
shellOverride = old: {
nativeBuildInputs = old.nativeBuildInputs ++ [];
buildInputs = old.buildInputs ++ [];
};
in {
packages.default = mango;
overlayAttrs = {
inherit (config.packages) mango;
};
packages = {
inherit mango;
hm-options-json = pkgs.callPackage (import ./nix/generate-options.nix self) {
module = ./nix/hm-modules.nix;
optionPrefix = "wayland.windowManager.mango.";
};
nixos-options-json = pkgs.callPackage (import ./nix/generate-options.nix self) {
module = ./nix/nixos-modules.nix;
optionPrefix = "programs.mango.";
};
};
devShells.default = mango.overrideAttrs shellOverride;
formatter = pkgs.alejandra;
};
systems = [
"x86_64-linux"
"aarch64-linux"
];
};
}