aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/nixos/portals.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/nixos/portals.nix')
-rw-r--r--modules/desktop/nixos/portals.nix48
1 files changed, 26 insertions, 22 deletions
diff --git a/modules/desktop/nixos/portals.nix b/modules/desktop/nixos/portals.nix
index ff65868..f69d6e0 100644
--- a/modules/desktop/nixos/portals.nix
+++ b/modules/desktop/nixos/portals.nix
@@ -4,47 +4,51 @@
config,
...
}: let
- useKdePortal = config.collinux.desktop.wm.sway.enable || config.collinux.desktop.wm.niri.enable;
+ wmCfg = config.collinux.desktop.wm;
+ useGtkPortal = wmCfg.gtkDesktopPortal.enable;
+ useKdePortal = wmCfg.kdeDesktopPortal.enable;
+ usePortal = useGtkPortal || useKdePortal;
+ defaultBackends =
+ if useKdePortal
+ then [
+ "kde"
+ "gtk"
+ ]
+ else [
+ "gtk"
+ "kde"
+ ];
+ fileChooserBackend = if useKdePortal then ["kde"] else ["gtk"];
in
- lib.mkIf useKdePortal {
+ lib.mkIf usePortal {
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
config = {
common = {
- default = [
- "kde"
- "gtk"
- ];
- "org.freedesktop.impl.portal.FileChooser" = ["kde"];
+ default = defaultBackends;
+ "org.freedesktop.impl.portal.FileChooser" = fileChooserBackend;
};
sway = {
- default = [
- "kde"
- "gtk"
- ];
- "org.freedesktop.impl.portal.FileChooser" = ["kde"];
+ default = defaultBackends;
+ "org.freedesktop.impl.portal.FileChooser" = fileChooserBackend;
};
niri = {
- default = [
- "kde"
- "gtk"
- ];
- "org.freedesktop.impl.portal.FileChooser" = ["kde"];
+ default = defaultBackends;
+ "org.freedesktop.impl.portal.FileChooser" = fileChooserBackend;
};
};
- extraPortals = with pkgs; [
- kdePackages.xdg-desktop-portal-kde
- xdg-desktop-portal-gtk
- ];
+ extraPortals =
+ lib.optionals useKdePortal [pkgs.kdePackages.xdg-desktop-portal-kde]
+ ++ lib.optionals useGtkPortal [pkgs.xdg-desktop-portal-gtk];
};
environment.sessionVariables = {
- XDG_CURRENT_DESKTOP = "KDE";
+ XDG_CURRENT_DESKTOP = if useKdePortal then "KDE" else "sway";
GTK_USE_PORTAL = "1";
NIXOS_OZONE_WL = "1";
MOZ_ENABLE_WAYLAND = "1";