Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with screen-sharing under KDE 6 Wayland #2058

Open
Sweeistaken opened this issue Jan 1, 2025 · 7 comments
Open

Problem with screen-sharing under KDE 6 Wayland #2058

Sweeistaken opened this issue Jan 1, 2025 · 7 comments
Labels
A-VoIP O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Defect Z-Platform-Specific

Comments

@Sweeistaken
Copy link

Steps to reproduce

  1. Where are you starting? What can you see?
    From a Video Call
  2. What do you click?
    image

Outcome

What did you expect?

Screen share works properly

What happened instead?

KDE shows the screen share dialog, and repeats forever until Element quits.

-6000.mp4

Operating system

Debian Trixie

Application version

Element version: 1.11.89 Crypto version: Rust SDK 0.7.2 (2f872cf), Vodozemac 0.8.1

How did you install the app?

Debian repository

Homeserver

Synapse 1.95.1-1~bpo12+1

Will you send logs?

Yes

@dosubot dosubot bot added A-VoIP O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Major Severely degrades major functionality or product features, with no satisfactory workaround labels Jan 1, 2025
@Sweeistaken Sweeistaken changed the title Problem with screen-sharing under KDE Wayland Problem with screen-sharing under KDE 6 Wayland Jan 1, 2025
@Sweeistaken
Copy link
Author

I recently switched to Alpine Linux and started using Element from the flatpak, the issue still persists on KDE.

@Destinyg133
Copy link

I managed to fix it by adding these for electron config "--enable-features=WebRTCPipeWireCapturer"

"--ozone-platform-hint=auto"

You can set these flags more permanently by means of [modifying the .desktop file]of an application and adding the flags to the end of the Exec= line, or more cleanly by using the configuration files.

@Sweeistaken
Copy link
Author

I managed to fix it by adding these for electron config "--enable-features=WebRTCPipeWireCapturer"

"--ozone-platform-hint=auto"

You can set these flags more permanently by means of [modifying the .desktop file]of an application and adding the flags to the end of the Exec= line, or more cleanly by using the configuration files.

Thanks, but how do I do this in the Flatpak version as well? (flatpak returns error: Unknown option --enable-features=WebRTCPipeWireCapturer)

@QuadrePadre
Copy link

It did not help. 1.11.90, Arch

@Spengreb
Copy link

Spengreb commented Jan 23, 2025

Same error here. Tried with the suggested flags but it didnt make any difference. Here is the error that throws between it asking for which window.

'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
[23622:0123/143956.863609:ERROR:screencast_portal.cc(367)] Failed to start the screen cast session.

When you close the dialog for selecting what to screen share it crashes with the following error

(node:24280) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:24280) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
[1]    24280 segmentation fault (core dumped)  /usr/bin/element-desktop --ozone-platform-hint=auto

On Arch on KDE with Nvidia GPU

Additional information:

xdg-desktop-portal is running, pipewire is running. I am not running the flatpak version

$ env | grep '^WAYLAND_DISPLAY='
WAYLAND_DISPLAY=wayland-0
$ < "/proc/$(pidof xdg-desktop-portal)/environ" tr '\0' '\n' | grep '^XDG_CURRENT_DESKTOP='
XDG_CURRENT_DESKTOP=KDE

@rajil
Copy link

rajil commented Jan 28, 2025

I tried the following in arch,
/usr/bin/element-desktop --enable-features=UseOzonePlatform --enable-features=WebRTCPipeWireCapturer --ozone-platform=wayland %u

Unfortunately, the behavior was same as the OP and element crashed.

No update_base_url is defined: auto update is disabled
Fetching translation json for locale: en_EN
Changing application language to en
Fetching translation json for locale: en
Resetting the UI components after locale change
Resetting the UI components after locale change
Changing application language to en
Fetching translation json for locale: en
Resetting the UI components after locale change
(node:134202) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 serverSupportedVersions listeners added to [IpcMainImpl]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `electron --trace-warnings ...` to show where the warning was created)
(node:134202) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 userAccessToken listeners added to [IpcMainImpl]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:134202) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 homeserverUrl listeners added to [IpcMainImpl]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:134202) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 userAccessToken listeners added to [IpcMainImpl]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
[134202:0128/100459.362232:ERROR:screencast_portal.cc(367)] Failed to start the screen cast session.
[134202:0128/100459.362306:ERROR:base_capturer_pipewire.cc(81)] ScreenCastPortal failed: 2
(node:134202) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:134202) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:134202) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:134202) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:134202) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:134202) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
(node:134202) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:134202) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)
(node:134202) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:134202) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 5)
(node:134202) UnhandledPromiseRejectionWarning: Failed to get sources.
(node:134202) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)
Segmentation fault (core dumped)

@Thatoo
Copy link

Thatoo commented Feb 2, 2025

Probably related to #1750
Could we close in favor of it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-VoIP O-Uncommon Most users are unlikely to come across this or unexpected workflow S-Major Severely degrades major functionality or product features, with no satisfactory workaround T-Defect Z-Platform-Specific
Projects
None yet
Development

No branches or pull requests

7 participants