diff options
author | Mihai Fufezan <fufexan@protonmail.com> | 2023-07-23 00:57:23 +0300 |
---|---|---|
committer | Mihai Fufezan <fufexan@protonmail.com> | 2023-07-23 01:15:59 +0300 |
commit | e9f270f1f03ad98b42677ad5573822deffa21663 (patch) | |
tree | 9563b31386b0bc8e16a4c42d45fe1f189598ecb4 | |
parent | 1d56444d15859eb2e1c929c375a019616af2b59f (diff) |
nixos/hyprland: apply config options to package
-rw-r--r-- | nixos/modules/programs/hyprland.nix | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/nixos/modules/programs/hyprland.nix b/nixos/modules/programs/hyprland.nix index 92b8e992e6485..d79680f63f169 100644 --- a/nixos/modules/programs/hyprland.nix +++ b/nixos/modules/programs/hyprland.nix @@ -6,10 +6,10 @@ with lib; let cfg = config.programs.hyprland; - defaultHyprlandPackage = pkgs.hyprland.override { - enableXWayland = cfg.xwayland.enable; - hidpiXWayland = cfg.xwayland.hidpi; - nvidiaPatches = cfg.nvidiaPatches; + finalPortalPackage = cfg.portalPackage.override { + hyprland-share-picker = pkgs.hyprland-share-picker.override { + hyprland = cfg.finalPackage; + }; }; in { @@ -25,24 +25,25 @@ in ''; }; - package = mkOption { - type = types.path; - default = defaultHyprlandPackage; - defaultText = literalExpression '' - pkgs.hyprland.override { - enableXWayland = config.programs.hyprland.xwayland.enable; - hidpiXWayland = config.programs.hyprland.xwayland.hidpi; - nvidiaPatches = config.programs.hyprland.nvidiaPatches; - } - ''; - example = literalExpression "<Hyprland flake>.packages.<system>.default"; + package = mkPackageOptionMD pkgs "hyprland" { }; + + finalPackage = mkOption { + type = types.package; + readOnly = true; + default = cfg.package.override { + enableXWayland = cfg.xwayland.enable; + hidpiXWayland = cfg.xwayland.hidpi; + nvidiaPatches = cfg.nvidiaPatches; + }; + defaultText = literalExpression + "`wayland.windowManager.hyprland.package` with applied configuration"; description = mdDoc '' - The Hyprland package to use. - Setting this option will make {option}`programs.hyprland.xwayland` and - {option}`programs.hyprland.nvidiaPatches` not work. + The Hyprland package after applying configuration. ''; }; + portalPackage = mkPackageOptionMD pkgs "xdg-desktop-portal-hyprland" { }; + xwayland = { enable = mkEnableOption (mdDoc "XWayland") // { default = true; }; hidpi = mkEnableOption null // { @@ -57,7 +58,7 @@ in }; config = mkIf cfg.enable { - environment.systemPackages = [ cfg.package ]; + environment.systemPackages = [ cfg.finalPackage ]; fonts.enableDefaultFonts = mkDefault true; hardware.opengl.enable = mkDefault true; @@ -69,13 +70,11 @@ in security.polkit.enable = true; - services.xserver.displayManager.sessionPackages = [ cfg.package ]; + services.xserver.displayManager.sessionPackages = [ cfg.finalPackage ]; xdg.portal = { enable = mkDefault true; - extraPortals = [ - pkgs.xdg-desktop-portal-hyprland - ]; + extraPortals = [ finalPortalPackage ]; }; }; } |