1{
2 lib,
3 pkgs,
4 enableXWayland ? true,
5 enableWlrPortal ? true,
6 enableGtkPortal ? true,
7}:
8
9{
10 security = {
11 polkit.enable = true;
12 pam.services.swaylock = { };
13 };
14
15 programs = {
16 dconf.enable = lib.mkDefault true;
17 xwayland.enable = lib.mkIf enableXWayland (lib.mkDefault true);
18 };
19
20 services.graphical-desktop.enable = true;
21
22 xdg.portal.wlr.enable = lib.mkIf enableWlrPortal true;
23 xdg.portal.extraPortals = lib.mkIf enableGtkPortal [
24 pkgs.xdg-desktop-portal-gtk
25 ];
26
27 # Window manager only sessions (unlike DEs) don't handle XDG
28 # autostart files, so force them to run the service
29 services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
30}