Can't get obs-studio working on Wayland

First of all, I am using obs from extra channel (not git from AUR).

When I run obs in terminal I get

[olividir@ProX15 ~]$ obs
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vkkhrdisplay, vnc, xcb.

Aborted (core dumped)

I found this solution on the forum and installed xdg-desktop-portal-gnome, but I still get the exact same results as above:

Lastly I tried to do export QT_QPA_PLATFORM=wayland which does nothing in my case.

Now OBS should have Wayland support since version 27 (current is 29) so I am not sure why this is going so badly for me.

If someone knows what I am doing wrong, I would love to know it.

inxi
System:
  Host: ProX15 Kernel: 6.4.8-arch1-1 arch: x86_64 bits: 64 Desktop: GNOME
    v: 44.3 Distro: EndeavourOS
Machine:
  Type: Laptop System: SLIMBOOK product: PROX-AMD5 v: Standard
    serial: <superuser required>
  Mobo: SLIMBOOK model: SLIMBOOK v: Standard serial: <superuser required>
    UEFI: American Megatrends LLC. v: N.1.06GRU07 date: 03/22/2023
Battery:
  ID-1: BAT0 charge: 49.1 Wh (58.0%) condition: 84.7/91.6 Wh (92.4%)
CPU:
  Info: 8-core model: AMD Ryzen 7 5700U with Radeon Graphics bits: 64
    type: MT MCP cache: L2: 4 MiB
  Speed (MHz): avg: 1449 min/max: 1400/4370 cores: 1: 1400 2: 1800 3: 1400
    4: 1400 5: 1400 6: 1400 7: 1400 8: 1400 9: 1397 10: 1400 11: 1400 12: 1400
    13: 1400 14: 1400 15: 1400 16: 1800
Graphics:
  Device-1: AMD Lucienne driver: amdgpu v: kernel
  Device-2: Chicony Integrated IR Camera driver: uvcvideo type: USB
  Display: wayland server: X.Org v: 23.1.2 with: Xwayland v: 23.1.2
    compositor: gnome-shell driver: X: loaded: amdgpu
    unloaded: modesetting,radeon dri: radeonsi gpu: amdgpu
    resolution: 1920x1080~60Hz
  API: OpenGL v: 4.6 Mesa 23.1.5 renderer: AMD Radeon Graphics (renoir LLVM
    15.0.7 DRM 3.52 6.4.8-arch1-1)
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio driver: snd_hda_intel
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor driver: N/A
  Device-3: AMD Family 17h/19h HD Audio driver: snd_hda_intel
  API: ALSA v: k6.4.8-arch1-1 status: kernel-api
  Server-1: PipeWire v: 0.3.77 status: active
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    driver: r8169
  IF: enp1s0 state: down mac: b0:25:aa:4e:4c:5b
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi
  IF: wlan0 state: up mac: 14:85:7f:0a:6e:73
Bluetooth:
  Device-1: Intel AX200 Bluetooth driver: btusb type: USB
  Report: rfkill ID: hci0 state: up address: see --recommends
Drives:
  Local Storage: total: 465.76 GiB used: 67.28 GiB (14.4%)
  ID-1: /dev/nvme0n1 vendor: Crucial model: CT500P2SSD8 size: 465.76 GiB
Partition:
  ID-1: / size: 464.78 GiB used: 67.19 GiB (14.5%) fs: btrfs
    dev: /dev/nvme0n1p2
  ID-2: /home size: 464.78 GiB used: 67.19 GiB (14.5%) fs: btrfs
    dev: /dev/nvme0n1p2
  ID-3: /var/log size: 464.78 GiB used: 67.19 GiB (14.5%) fs: btrfs
    dev: /dev/nvme0n1p2
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 52.9 C mobo: N/A gpu: amdgpu temp: 49.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 409 Uptime: 9h 48m Memory: total: 16 GiB note: est.
  available: 15.01 GiB used: 6.66 GiB (44.4%) Shell: Bash inxi: 3.3.28

Try:

QT_QPA_PLATFORM=xcb obs

Well, that got OBS starting.

Do I need to make this permanent?

Edit*
I keep getting “OBS is not responding, do you want to wait or force it to stop” notification. Maybe a different thread?

Yes, edit the desktop file and change the exec line.

Having slight problem remembering where that file is…will look in the arch wiki

Just so I am sure, we are talking about etc/profile file, correct? If so, I am not able to find the exec line.

I tried to do

export  QT_QPA_PLATFORM=xcb obs

to add it to bash_profile but it didn’t take

Ok, I have been reading the arch wiki, all the desktop files I find are all wrong locations.

In etc/profile, /etc/bash.bashrc, /usr/share/bash-completion/bash_completion, ./bashrc and ./bash_profile. None of them have the line QT_QPA_PLATFORM= and I am currently confused where I should make this change :frowning:

However, if I check all exported changes (export -p), I am able to find the line QT_QPA_PLATFORM=xcb. I am super confused.

On Plasma, I put it in ~/.bashrc at the end:

QT_QPA_PLATFORM="wayland,xcb"

I already tried putting QT_QPA_PLATFORM=xcb obs in bashrc at the end, but it does not work… (I did sign out and back in).

This is a bit frustrating.

QT_QPA_PLATFORM=xcb obs

This command will launch obs with xwayland.

QT_QPA_PLATFORM=xcb is a environment variable in this context and obs is the app.

QT_QPA_PLATFORM="wayland,xcb" can be translated with "run my app with wayland and only if needed with xwayland.

If you want to try a change in ~/.bashrc, you simply open a new konsole or a new tab.

If you still need to edit the Exec line in the .desktop file you could:

cp /usr/share/applications/com.obsproject.Studio.desktop ~/.local/share/applications/

and edit the file in the latter location.

HTH

I did exactly as you did @GolDNenex, adding QT_QPA_PLATFORM="wayland,xcb" in the last line of ./bashrc does not work for me. Have no idea why that is.

@pebcak I made a mistake, I changed the Exec=obs to Exec=xcb obs after cp /usr/share/applications/com.obsproject.Studio.desktop ~/.local/share/applications/

Should the Exect line be Exect=xcb,obs or somehow different…

Need to get going to work… this is something that can wait :slight_smile:

Try: Exec=env QT_QPA_PLATFORM=xcb obs and check if it will work.

1 Like

Sorry for not explaining fully, had to get to bed :zzz: What @pebcak said.

That did the trick, now obs starts from desktop :smiley:

Thank you all for your help :smiley:

When obs updates, it will overwrite the desktop file:

sudo chattr +i /usr/share/applications/com.obsproject.Studio.desktop

-i to make it mutable again

I think they made the change to the .desktop under user’s directory… :thinking:

Then I will get my coat :rofl:

So I should run this command now? Haven’t seen this command before, I will look through the wiki :slight_smile:

No, not if you made the change to the file you copied to your home directory at /.local/share/applications.

That’s what I did. When obs updates next and it doesn’t work, I think I could repeat the process of changing the exec line again :slight_smile: