# OBS Studio cannot select on Screen Capture (Pipewire)

**URL:** https://discourse.nixos.org/t/obs-studio-cannot-select-on-screen-capture-pipewire/81080
**Category:** Help
**Created:** [November 9, 2026, 4:54pm UTC](https://discourse.nixos.org/t/obs-studio-cannot-select-on-screen-capture-pipewire/81080 "2026-11-09T16:54:18Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![rbd03](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/r/8491ac/32.png) [@rbd03](https://discourse.nixos.org/u/rbd03)
#### Post date: [November 9, 2026, 4:54pm UTC](https://discourse.nixos.org/t/obs-studio-cannot-select-on-screen-capture-pipewire/81080/1 "2026-11-09T16:54:18Z")

</div>

Hi, I cannot select screen on OBS. Steps to reproduce:

1. Add source, select Screen Capture (PipeWire).
2. Select +Add a new Screen Capture (PipeWire).
3. Click Open Selector.

The button shows click animation, but nothing happens. In the terminal, the message appears:

```auto
info: PipeWire initialized
info: [pipewire] Screencast session created
warning: [pipewire] Failed to select source, denied or cancelled by user

```

I realised that other screenrecord apps, such as kooha and openscreen, were also unable to select a screen, thus I looked at `xdg-desktop-portal-wlr`:

```auto
● xdg-desktop-portal-wlr.service - Portal service (wlroots implementation)
     Loaded: loaded (/etc/systemd/user/xdg-desktop-portal-wlr.service; linked-runtime; preset: ignored)
    Drop-In: /nix/store/6spbba5jk6kvzwlzk7pgsi8x9fcx0g4v-user-units/xdg-desktop-portal-wlr.service.d
             └─overrides.conf
     Active: active (running) since Tue 2026-11-10 00:16:20 +08; 23min ago
 Invocation: b588d92a46894c7fab0ee0eb2415a2ef
   Main PID: 1186 (.xdg-desktop-po)
      Tasks: 2 (limit: 18752)
     Memory: 2.4M (peak: 4.1M)
        CPU: 132ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/xdg-desktop-portal-wlr.service
             └─1186 /nix/store/xi2s5lzp554c4sl0cn2ckp9j6hh3xbia-xdg-desktop-portal-wlr-0.8.5/libexec/xdg-desktop-portal-wlr --config=/nix/store/ifpmm3k7n1qq0lf0rhyc1i84m5km562z-xdg-desktop-p>

Nov 10 00:37:41 pyramid xdg-desktop-portal-wlr[5588]: /bin/sh: line 1: mew: command not found
Nov 10 00:37:41 pyramid xdg-desktop-portal-wlr[5589]: /bin/sh: line 1: fuzzel: command not found
Nov 10 00:37:41 pyramid xdg-desktop-portal-wlr[1186]: 2026/11/10 00:37:41 [ERROR] - wlroots: no output found
Nov 10 00:37:51 pyramid xdg-desktop-portal-wlr[5590]: /bin/sh: line 1: wmenu: command not found
Nov 10 00:37:51 pyramid xdg-desktop-portal-wlr[5594]: /bin/sh: line 1: mew: command not found
Nov 10 00:37:51 pyramid xdg-desktop-portal-wlr[5595]: /bin/sh: line 1: fuzzel: command not found
Nov 10 00:37:51 pyramid xdg-desktop-portal-wlr[1186]: 2026/11/10 00:37:51 [ERROR] - wlroots: no output found
Nov 10 00:38:56 pyramid xdg-desktop-portal-wlr[5605]: /bin/sh: line 1: wmenu: command not found
Nov 10 00:38:56 pyramid xdg-desktop-portal-wlr[1186]: 2026/11/10 00:38:56 [ERROR] - wlroots: no output found
Nov 10 00:38:57 pyramid xdg-desktop-portal-wlr[1186]: 2026/11/10 00:38:57 [ERROR] - wlroots: no output found

```

if I installed `fuzzel` or `wmenu`, their respective error messages would go away, leaving only `mew`, so it must have sensed the installed programs, but nothing changed. `xdg-desktop-portal` gives:

```auto
● xdg-desktop-portal.service - Portal service
     Loaded: loaded (/etc/systemd/user/xdg-desktop-portal.service; linked-runtime; preset: ignored)
     Active: active (running) since Tue 2026-11-10 00:16:20 +08; 29min ago
 Invocation: 199745592d7d40e4a4f8e592bc598a75
   Main PID: 1140 (.xdg-desktop-po)
      Tasks: 6 (limit: 18752)
     Memory: 10.1M (peak: 10.6M)
        CPU: 85ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/xdg-desktop-portal.service
             └─1140 /nix/store/52ihln918zclkrrwxsmpyzq3rps05168-xdg-desktop-portal-1.22.1/libexec/xdg-desktop-portal

Nov 10 00:16:20 pyramid systemd[886]: Starting Portal service...
Nov 10 00:16:20 pyramid systemd[886]: Started Portal service.
Nov 10 00:16:21 pyramid /nix/store/52ihln918zclkrrwxsmpyzq3rps05168-xdg-desktop-portal-1.22.1/libexec/xdg-desktop-portal[1140]: ../gobject/gtype.c:4158: type id '2' is invalid
Nov 10 00:16:21 pyramid /nix/store/52ihln918zclkrrwxsmpyzq3rps05168-xdg-desktop-portal-1.22.1/libexec/xdg-desktop-portal[1140]: can't peek value table for type '<unknown>' which is not currently referenced
Nov 10 00:16:21 pyramid /nix/store/52ihln918zclkrrwxsmpyzq3rps05168-xdg-desktop-portal-1.22.1/libexec/xdg-desktop-portal[1140]: g_value_unset: assertion 'value_table' failed

```

The strangest part of all this is that I can record fine using my browser, firefox. An example is that Online Screen Recorder, [https://screenrecorderonline.net/](https://screenrecorderonline.net/), works completely fine.

My window manager is `programs.mango.enable`. I have tried both `nix-shell -p obs-studio` and `programs.obs-studio.enable`, with the same result. I suspected that it could be `graphical-session.target` not being set following [XDG Desktop Portal - ArchWiki](https://wiki.archlinux.org/title/XDG_Desktop_Portal), but according to [NixOS module does not activate graphical-session.target · Issue #1046 · mangowm/mango · GitHub](https://github.com/mangowm/mango/issues/1046) it seems to have been set.

---

<div class="post-metadata">

### Author: ![linkjobai\_team](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/l/2acd7d/32.png) [@linkjobai\_team](https://discourse.nixos.org/u/linkjobai_team)
#### Post date: [November 10, 2026, 9:23am UTC](https://discourse.nixos.org/t/obs-studio-cannot-select-on-screen-capture-pipewire/81080/2 "2026-11-10T09:23:01Z")

</div>

Your portal log has the answer: xdg-desktop-portal-wlr is trying to launch an output chooser (`mew`, `fuzzel`, `wmenu`…), none of them are installed, so there’s no way to pick a screen and the request comes back as “denied or cancelled”.

You can point it at a chooser you do have. With `slurp` it looks like this:

```nix
xdg.portal.wlr = {
  enable = true;
  settings.screencast = {
    chooser_type = "simple";
    chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
  };
};

```

After a rebuild, restart the portal (`systemctl --user restart xdg-desktop-portal-wlr`), or just log out and back in. When you click “Open Selector” in OBS, you should get a slurp crosshair and can click the monitor you want.

If you only have one monitor, you can skip the chooser and set `output_name = "eDP-1";` (or whatever `wlr-randr` shows) together with `chooser_type = "none";`.
