1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2025-01-30 12:55:02 +01:00

hyprland: add xdg.portal configuration (#5707)

Add integration with `xdg.portal`, and the `portalPackage` option for
`xdg-desktop-portal-hyprland`.
This commit is contained in:
Mihai Fufezan 2025-01-29 20:19:53 +02:00 committed by GitHub
parent 0ee8bfdd04
commit 5dc1c2e404
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -58,6 +58,8 @@ in {
package = lib.mkPackageOption pkgs "hyprland" { };
portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" { };
finalPackage = lib.mkOption {
type = lib.types.package;
readOnly = true;
@ -69,6 +71,18 @@ in {
'';
};
finalPortalPackage = lib.mkOption {
type = lib.types.package;
readOnly = true;
default = cfg.portalPackage.override { hyprland = cfg.finalPackage; };
defaultText = lib.literalMD ''
`wayland.windowManager.hyprland.portalPackage` with
`wayland.windowManager.hyprland.finalPackage` override'';
description = ''
The xdg-desktop-portal-hyprland package after overriding its hyprland input.
'';
};
plugins = lib.mkOption {
type = with lib.types; listOf (either package path);
default = [ ];
@ -264,6 +278,12 @@ in {
'';
};
xdg.portal = {
enable = true;
extraPortals = [ cfg.finalPortalPackage ];
configPackages = lib.mkDefault [ cfg.finalPackage ];
};
systemd.user.targets.hyprland-session = lib.mkIf cfg.systemd.enable {
Unit = {
Description = "Hyprland compositor session";