feat: modular hyprland's configurations

This commit is contained in:
Ryan Yin
2023-12-24 22:09:18 +08:00
parent 55e12cddaf
commit 3aaaeb49ca
50 changed files with 71 additions and 76 deletions
+26 -10
View File
@@ -10,22 +10,38 @@ with lib; let
in {
imports = [
anyrun.homeManagerModules.default
./nvidia.nix
./options
];
options.modules.desktop.hyprland = {
enable = mkEnableOption "hyprland compositor";
settings = lib.mkOption {
type = with lib.types; let
valueType =
nullOr (oneOf [
bool
int
float
str
path
(attrsOf valueType)
(listOf valueType)
])
// {
description = "Hyprland configuration value";
};
in
valueType;
default = {};
};
};
config = mkIf cfg.enable (
mkMerge
(map
(path: import path args)
[
./hyprland.nix
./packages.nix
./anyrun.nix
./wayland-apps.nix
])
mkMerge ([
{
wayland.windowManager.hyprland.settings = cfg.settings;
}
]
++ (import ./values args))
);
}