- User Since
- Mar 26 2016, 7:50 PM (121 w, 20 h)
@jgrulich thanks, I'll definitely use that. Have my hands fullatm but will definitely return to this diff and refresh once have some free time
Thu, Jun 28
@jgrulich thanks a lot! I'll address these on weekend
Jun 18 2018
May 30 2018
@alexeymin This is a working version but I plan on adding more in the coming weekends. Just wanted to make sure there's someone motivated to review and merge this.
Thanks for looking at my stuff.
- Make sure you have latest versions of KWin, XDG-KDE and Pipewire installed
- Services should be started by DBus-activation, if that doesn't happen by whatever reason, first start $ pipewire, then $ /usr/lib(exec)/xdg-desktop-portal, it should in turn start $ /usr/lib(exec)/xdg-desktop-portal-kde by itself
- Compile KRfb with this patch and install it, select "pw" in the list of KRfb plugins. If all is ok, XDP-KDE should show you the dialog with screen selection
- Try to connect to KRfb through KRDC or any other VNC client
Ok, will land this once I'm home
@alexeymin I checked with KRDC. Just remember to put the address in [ ]
- Review comments: redo notifiers as QPointers
May 29 2018
@aacid well, it was added 6 years ago :D
May 27 2018
May 22 2018
Rewrite everything from scratch with Pipewire connectivity in mind
May 17 2018
@jgrulich , thanks for the pointers
Ah, that's because I use custom built XDP-KDE executable, installed to prefix instead of /usr
Nailed it, XDP just thinks KDE is inferior:
XDP: loading /usr/share/xdg-desktop-portal/portals/kde.portal XDP: portal implementation for KDE XDP: portal implementation supports org.freedesktop.impl.portal.Access XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser XDP: portal implementation supports org.freedesktop.impl.portal.Email XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser XDP: portal implementation supports org.freedesktop.impl.portal.Inhibit XDP: portal implementation supports org.freedesktop.impl.portal.Notification XDP: portal implementation supports org.freedesktop.impl.portal.Print
May 16 2018
Hmm XDG Desktop Portal 0.11 just simply doesn't have ScreenCast interface on DBus... @jgrulich do I need some bleeding edge version or is it not yet in master branch?
Thanks for the xml, I was able to pass it to qdbus2cpp. Amusingly, if I just try auto reply = dbusXdpService->CreateSession(QVariantMap()); (with empty parameter map), the main desktop portal app just segfaults! I mean, not the kde impl one but the main XDG Desktop Portal!
I'm fixing my parameters thanks to your test app, but... should that really happen?
May 9 2018
@jgrulich I started to hack together a very simple krfb-with-dbus-with-xdp-kde-with-pipewire... thingie.
Now I'm curious, you have handle and session_handle paths everywhere in Screencast interface inside XDP-KDE source. Why? I can understand why session_handle is there - to create and track sessions of course, but what is handle used for?
May 6 2018
Too late did I realize that I'm making pipewire-based framebuffer, not xdp-kde based!
I guess rewiring stuff will take another 3-4 days, sorry :D
Apr 29 2018
Looks ok to me, only minor question about how this works
Apr 25 2018
afaik gnome already has this, do they have some sort of protocol there?
Apr 22 2018
I've digged through old diff and I must say, many of what's described here will be peeled off. For now we support read-only views, so I'll be focusing on it.
Apr 5 2018
Seems good to me, thanks!
Mar 26 2018
Sure, I'll be updating diff this week, will address concerns raised here
I'll take a look once I'm home
Mar 25 2018
This finally is ready to proceed, thanks everybody. D10965 to go. I'll begin working on KRfb integration with pipewire stream this week.
We should think about input support as now remote sessions are limited to view-only.
Done! Thanks for looking this through.
- squashed before pushing
- fixed all versions to 5.45
Mar 23 2018
- Merge branch 'master' into gbm-vnc
Remove already merged changes
- Implement releasing of client-freed output
- Review fixes
Mar 22 2018
Remove override fix
Mar 21 2018
This makes sense. Thanks, will try with KDecoration master once I'm home
I don't have KDecoration checked out. The problem is much more simple. These functions don't override anything but there's override keyword present where it shouldn't be. The fix is still required for them, regardless of KDecoration status.
They don't override anything and compile fails for me if they are present. GCC 7.3.1.
- Fix clang compilation
- Fix QPointer
Mar 15 2018
Mar 13 2018
Mar 9 2018
It will soon be this patch 2nd birthday. Can we speed up things a bit? I've seen this is scheduled for Plasma 5.13, would be good if we have time to test it.
Please re-review this and D1231 as I'm starting to work on KRfb support for this and it will be the 3rd patch depending on this.
Or suggest reviewers with more spare time so they can look this through.
Mar 7 2018
@romangg , I had to recreate it after rebase, cause I don't have force-push.
Mar 4 2018
I'd wrap some pipewire structures into some kind of PipewirePointer like WaylandPointer in KWayland does. But maybe I'm too picky, overall this stuff looks really good!
Mar 3 2018
Mar 2 2018
Hi Jan, I'll take a look in the evening once I'm home.
Mar 1 2018
Feb 28 2018
Feb 27 2018
I think I know what's the problem with delete output. In KWayland in output.cpp: WaylandPointer<wl_output, wl_output_destroy> output. While this is technically correct it shouldn't destroy output right away.
It should call wl_output_release that will notify destruction to the server so it will know this client has no more bound outputs and RemoteAccess interface and stop sending buffers.
Yep, I managed to get remote stream too, though it doesn't look so good as yours yet, Jan :)
I'll be pushing changes with removing GSource and rewriting it with QSocketNotifier to kwin-remote-receiver, you can take a look if interested.
AFAIK Mesa 17.3.x had a regression that caused lockups on intel iGPUs. Many of them were finally nailed down only in 17.3.6, see here
Can you try new version on your Fedora 27 laptop?
Feb 26 2018
pw_remote_destroy - calls free(remote->error) even if it's not initialized, is this a bug?..
Feb 24 2018
Can't make it crash, unfortunately.
@jgrulich , seems I need some cooperation to make it reliably fail, let's compare our specs.
Feb 22 2018
Feb 19 2018
Ok, guess I'm missing something then, I'll take a closer look, thanks!
@jgrulich , were you able to connect the stream to pipewire with the code from xdg-desktop-portal-kde?
It says only "Stream stage changed: connecting" and then "protocol-native: got connection error" to me.
@jgrulich , I think I found a way to make KWin send only needed buffers to support >1 monitor setup.
Feb 6 2018
Guys, in case everyone misses me I'm on vacation right now, will be back by weekend.
Jan 31 2018
clients query kwin, kwin spawns KWRR on demand, gets an FD and returns that to the client
I'd go with this option but not sure how well does it fit the flow. Clients need to query KWin somehow but all they should see is DBus or Pipewire daemon
Right now I start KWRR manually, didn't integrate it with KWin codebase yet.