Change:
When in a KDE wayland session with pipewire enabled nor firefox nor OBS' pipewire screen sharing does not show. Weirdly only Spectacle works for screen capture. Steps to reproduce the behavior: KDE plasma session and fail to screen capture ! suggest "compiling in an environment with pipewire" but adding pipewire to does not fix this system: host os: multi-user?: sandbox: version: channels(root): nixpkgs: Maintainer information:
Does it work in chrome?
Sharing the full screen no, but individual windows can be shared without problems
Have you checked the build log? What is the output of ?
So the reason it's not making any effect is because it already includes pipewire in its buildDependencies.
Neither patching works
And patching wayland-protocols straight up gives infinite recursion
please add this to the waayland board
So here is what I've found following
Here my thoughts: is suspect,especially after also look suspect
Suggest that the screencast plugin is loaded
The seems to originate from
90% sure does not get reached.
I've opened a bug in kde
<delSemms like whatever qml is needed for screencast is not included </delNope that is normal
Overall it seems like the screen selection window does not get displayed for whatever reason despite
This seems to be the same problem that was previously discussed in and related issues? Guess it makes sense to continue here since that issue is pretty cluttered at this point + mostly sway-related.

Discussion:
<del> { config, pkgs ,lib ,... }: </del> <ins> { config, pkgs, lib, ... }: </ins> with lib;

options.xdg.portal = { enable = <del> mkEnableOption "<link xlink:href='https://github.com/flatpak/xdg-desktop-portal'>xdg desktop integration</link>"//{ </del> <ins> mkEnableOption "<link xlink:href='https://github.com/flatpak/xdg-desktop-portal'>xdg desktop integration</link>" // { </ins> default = false; }; extraPortals = mkOption { type = types.listOf types.package; <del> default = []; </del> <ins> default = [ ]; </ins> description = '' List of additional portals to add to path. Portals allow interaction with system, like choosing files or taking screenshots. At minimum,

let cfg = config.xdg.portal; packages = [ pkgs.xdg-desktop-portal ] ++ cfg.extraPortals; <del> joinedPortals = pkgs.symlinkJoin { </del> <ins> joinedPortals = pkgs.buildEnv { </ins> name = "xdg-portals"; <del> paths = cfg.extraPortals; </del> <ins> paths = packages; pathsToLink = [ "/share/xdg-desktop-portal/portals" "/share/applications" ]; </ins> }; <del> in mkIf cfg.enable { </del> <ins> in mkIf cfg.enable { </ins> assertions = [ <del> { assertion = (cfg.gtkUsePortal -> cfg.extraPortals != []); message = "Setting xdg.portal.gtkUsePortal to true requires a portal implementation in xdg.portal.extraPortals such as xdg-desktop-portal-gtk or xdg-desktop-portal-kde."; </del> <ins> { assertion = cfg.extraPortals != [ ]; message = "Setting xdg.portal.enable to true requires a portal implementation in xdg.portal.extraPortals such as xdg-desktop-portal-gtk or xdg-desktop-portal-kde."; </ins> } ]; <del> services.dbus.packages  = packages; </del> <ins> services.dbus.packages = packages; </ins> systemd.packages = packages; <del> environment.sessionVariables = { GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1"; XDG_DESKTOP_PORTAL_DIR = "${joinedPortals}/share/xdg-desktop-portal/portals"; </del> <ins> environment = { # fixes screen sharing on plasmawayland on non-chromium apps by linking # share/applications/*.desktop files # see https://github.com/NixOS/nixpkgs/issues/145174 systemPackages = [ joinedPortals ]; pathsToLink = [ "/share/applications" ]; sessionVariables = { GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1"; XDG_DESKTOP_PORTAL_DIR = "${joinedPortals}/share/xdg-desktop-portal/portals"; }; </ins> }; }; }