From 579c5b135e89565e51ffd8b38aa715f17413e071 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 16 Mar 2026 07:21:45 -0700 Subject: [PATCH 1/3] fix: add xdg-desktop-portal-wlr for Sway screen sharing Enable wlr portal conditionally when wayland is active. Add sway-specific portal config routing ScreenCast and Screenshot interfaces through the wlr backend. --- roles/desktop/programs.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/roles/desktop/programs.nix b/roles/desktop/programs.nix index 0ffb3ba..5ef6666 100644 --- a/roles/desktop/programs.nix +++ b/roles/desktop/programs.nix @@ -17,9 +17,10 @@ in services.gnome.gnome-keyring.enable = true; programs.kdeconnect.enable = true; - # XDG Desktop Portal for default application handling in non-KDE environments + # XDG Desktop Portal for default application handling xdg.portal = { enable = true; + wlr.enable = cfg.wayland; # xdg-desktop-portal-wlr for Sway screen sharing extraPortals = with pkgs; [ kdePackages.xdg-desktop-portal-kde # For KDE application integration xdg-desktop-portal-gtk # Fallback for GTK applications @@ -31,6 +32,11 @@ in i3 = { default = ["kde" "gtk"]; }; + sway = { + default = ["wlr" "gtk"]; + "org.freedesktop.impl.portal.ScreenCast" = "wlr"; + "org.freedesktop.impl.portal.Screenshot" = "wlr"; + }; }; }; }; -- 2.49.1 From 23cde06c35e3d9851031fb51d5de9f9ba92e4f06 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 16 Mar 2026 07:42:24 -0700 Subject: [PATCH 2/3] fix: mkForce sway portal default to resolve conflict with sway module --- roles/desktop/programs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/desktop/programs.nix b/roles/desktop/programs.nix index 5ef6666..576ae3e 100644 --- a/roles/desktop/programs.nix +++ b/roles/desktop/programs.nix @@ -33,7 +33,7 @@ in default = ["kde" "gtk"]; }; sway = { - default = ["wlr" "gtk"]; + default = lib.mkForce ["wlr" "gtk"]; "org.freedesktop.impl.portal.ScreenCast" = "wlr"; "org.freedesktop.impl.portal.Screenshot" = "wlr"; }; -- 2.49.1 From 091c570249c7b7d3fa956b0402551117904df140 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 16 Mar 2026 07:45:05 -0700 Subject: [PATCH 3/3] fix: remove custom sway portal config, let NixOS sway module handle it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only wlr.enable is needed — the sway module already sets xdg.portal.config.sway.default and adding our own conflicts. --- roles/desktop/programs.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/roles/desktop/programs.nix b/roles/desktop/programs.nix index 576ae3e..39025ba 100644 --- a/roles/desktop/programs.nix +++ b/roles/desktop/programs.nix @@ -32,11 +32,6 @@ in i3 = { default = ["kde" "gtk"]; }; - sway = { - default = lib.mkForce ["wlr" "gtk"]; - "org.freedesktop.impl.portal.ScreenCast" = "wlr"; - "org.freedesktop.impl.portal.Screenshot" = "wlr"; - }; }; }; }; -- 2.49.1