It implements a KWin protocol that is oriented towards serving a virtual
display specifically.
It requests KWin a stream that will act as a monitor that we can feed
into remote clients.
This commit adds a new dependency - KWindowSystem, to help
with window system detection. If wayland is detected, then
preferred framebuffer plugin is switched to "pw" (pipewire).
Summary:
Adds a new framebuffer implementation, which uses xdg-desktop-portal to support remote
desktop on Wayland and uses PipeWire to deliver the screen content. So far only mouse
support is implemented, because keyboard support is missing on KWin side.
Reviewers: Kanedias, romangg
Reviewed By: Kanedias
Subscribers: asturmlechner, pino, ngraham, romangg
Differential Revision: https://phabricator.kde.org/D20402
Summary:
Previously krfb had version set to 5.0. This is misleading.
Now, do the same as other standard KDE apps, like ark or dolphin: use
KDE_APPLICATIONS_VERSION_MAJOR, KDE_APPLICATIONS_VERSION_MINOR, etc.
This page: https://www.kde.org/applications/system/krfb has a link to report a bug: https://bugs.kde.org/enter_bug.cgi?format=guided&product=krfb
Versions in bugzilla have 17.xx.xx, so "About..." window should match.
cmake: Set version in project(); use ecm_setup_version() call
Inspired by commit in Ark: cffecfbfffd22bc0bbe451ed8d74f3b6da113c6f
Test Plan: Compile, run. Make sure that Help -> About Desktop Sharing displays the correct version.
Reviewers: aacid, ltoscano
Tags: #kde_applications
Differential Revision: https://phabricator.kde.org/D7658
Previously used x11 plugin does not compile with Qt5, because Qt5 does
not use Xlib, it uses xcb. Rewrite screen capture plugin from Xlib to
xcb.
I made xcb libs compile required dependency, but availability of X
shared memory extension is checked at runtime. It is used to effectively
get image pixels data, instead of transfering 8Mb over the wire. Xdamage
is used to limit image getting operations only within actually changed
rectangles of screen.
BUG: 377998
Tested on single-monitor system and dual-monitor, where primary monitor
does not start at (0,0) coordinate. Image transfer works fine.
Dual-monitor only has problems with receiving mouse cursor position and
clicks, but this should be fixed outside of framebuffer plugin.
Differential Revision: https://phabricator.kde.org/D5211