{ lib, config, pkgs, ... }: let inherit (lib) mkIf; cfg = config.desktops.sway; in { config = mkIf cfg.enable { desktops.wayland.enable = true; # TODO: set NIXOS_OZONE_WL env var xdg.portal = { extraPortals = with pkgs; [ xdg-desktop-portal-wlr ]; config.sway = { default = lib.mkForce ["gtk"]; "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; "org.freedesktop.impl.portal.OpenURI" = ["gtk"]; "org.freedesktop.impl.portal.Screenshot" = ["wlr"]; "org.freedesktop.impl.portal.ScreenCast" = ["wlr"]; }; }; programs.sway = { enable = true; package = pkgs.swayfx; wrapperFeatures = { base = false; gtk = false; }; extraPackages = []; }; }; }