feat: add hyprland monitor options

This commit is contained in:
Moritz Böhme 2024-08-12 11:06:18 +02:00
parent a11717c8ce
commit 1cae5d144a
No known key found for this signature in database
GPG key ID: 970C6E89EB0547A9
3 changed files with 48 additions and 8 deletions

View file

@ -5,8 +5,8 @@
, ...
} @ args:
with lib;
let
inherit (lib) mkOption mkEnableOption mkIf types getExe genAttrs optionalAttrs optional;
cfg = config.my.programs.hyprland;
hyprland = inputs.hyprland.packages.${pkgs.system}.default;
@ -31,9 +31,38 @@ in
default = [ "de" "us" ];
};
monitors = mkOption {
type = types.listOf types.str;
description = "monitor settings";
default = [ ",preferred,auto,1" ];
type = types.attrsOf (
let
sub = types.submodule {
options = {
resolution = mkOption {
type = types.strMatching "\(preferred\)|\([[:digit:]]+x[[:digit:]]+\(@[[:digit:]]+\)\?\)";
default = "preferred";
};
position = mkOption {
type = types.strMatching "\(auto\)|\(-\?[[:digit:]]+x-?[[:digit:]]+\)";
default = "auto";
};
disabled = mkEnableOption "disabled";
scale = mkOption {
type = types.oneOf [ types.float (types.strMatching "auto") ];
default = 1.0;
apply = x: if lib.isFloat x then lib.strings.floatToString x else x;
};
extra = mkOption {
type = types.listOf types.str;
default = [ ];
apply = lib.concatStringsSep ",";
};
};
};
in
sub
);
description = "monitor setting";
default = {
"" = { };
};
};
extraConfig = mkOption {
type = types.str;
@ -51,6 +80,7 @@ in
# foot.enable = true;
kitty.enable = true;
rofi.enable = true;
hyprland.monitors."" = lib.mkDefault { };
};
wallpapers.enable = true;
services = {