blob: f69d6e0b085684da15722126f320494f1e58b23c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
{
pkgs,
lib,
config,
...
}: let
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 usePortal {
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
config = {
common = {
default = defaultBackends;
"org.freedesktop.impl.portal.FileChooser" = fileChooserBackend;
};
sway = {
default = defaultBackends;
"org.freedesktop.impl.portal.FileChooser" = fileChooserBackend;
};
niri = {
default = defaultBackends;
"org.freedesktop.impl.portal.FileChooser" = fileChooserBackend;
};
};
extraPortals =
lib.optionals useKdePortal [pkgs.kdePackages.xdg-desktop-portal-kde]
++ lib.optionals useGtkPortal [pkgs.xdg-desktop-portal-gtk];
};
environment.sessionVariables = {
XDG_CURRENT_DESKTOP = if useKdePortal then "KDE" else "sway";
GTK_USE_PORTAL = "1";
NIXOS_OZONE_WL = "1";
MOZ_ENABLE_WAYLAND = "1";
};
}
|