{ config, lib, pkgs, ... }: let cfg = config.mods.desktop; in { options.mods.desktop = { enable = lib.mkEnableOption "desktop"; }; config = lib.mkIf cfg.enable { xdg = { portal = { enable = true; wlr.enable = true; xdgOpenUsePortal = true; extraPortals = with pkgs; [ xdg-desktop-portal-gnome xdg-desktop-portal-gtk xdg-desktop-portal-wlr ]; config = { common = { "org.freedesktop.impl.portal.FileChooser" = [ "gnome" ]; }; niri = { default = [ "gnome" "gtk" ]; "org.freedesktop.impl.portal.Access" = "gtk"; "org.freedesktop.impl.portal.Notification" = "gtk"; "org.freedesktop.impl.portal.Secret" = "gnome-keyring"; "org.freedesktop.impl.portal.FileChooser" = "gnome"; }; }; }; }; services = { flatpak.enable = true; gnome.gnome-keyring.enable = true; # mpd.enable = true; printing.enable = true; }; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; wireplumber.enable = true; jack.enable = true; }; services.xserver = { enable = true; xkb = { layout = "gb"; variant = ""; }; }; }; }