59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
mylib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (config.modules) desktopportal;
|
|
in {
|
|
options.modules.desktopportal = import ./options.nix {inherit lib mylib;};
|
|
|
|
config = lib.mkIf desktopportal.enable {
|
|
xdg = {
|
|
portal = {
|
|
enable = true;
|
|
xdgOpenUsePortal = true;
|
|
wlr.enable = false;
|
|
|
|
# TODO: Replace lib.optional(s) throughout the config with mkMerge
|
|
config = lib.mkMerge [
|
|
{
|
|
# https://discourse.nixos.org/t/clicked-links-in-desktop-apps-not-opening-browers/29114/26
|
|
common.default = ["*"];
|
|
}
|
|
|
|
(lib.mkIf desktopportal.termfilechooser.enable {
|
|
common."org.freedesktop.impl.portal.FileChooser" = ["termfilechooser"];
|
|
})
|
|
|
|
(lib.mkIf desktopportal.hyprland.enable {
|
|
hyprland.default = ["hyprland"];
|
|
})
|
|
|
|
(lib.mkIf
|
|
(desktopportal.hyprland.enable && desktopportal.termfilechooser.enable) {
|
|
hyprland."org.freedesktop.impl.portal.FileChooser" = ["termfilechooser"];
|
|
})
|
|
];
|
|
|
|
extraPortals = with pkgs;
|
|
lib.mkMerge [
|
|
[
|
|
xdg-desktop-portal-gtk # Fallback
|
|
]
|
|
|
|
# We don't need to install that explicitly
|
|
# (lib.mkIf desktopportal.hyprland.enable [
|
|
# xdg-desktop-portal-hyprland
|
|
# ])
|
|
|
|
(lib.mkIf desktopportal.termfilechooser.enable [
|
|
xdg-desktop-portal-termfilechooser # Filechooser using yazi
|
|
])
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|