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
- required for upcoming Git migration with repository per app / lib
- if nobody complains, I will backport it in a few days to the 4.10 branch also
- I will update trunk/l10n-kde4/scripts/documentation_paths in my next commit
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1340343
- full module build is still possible
- required for upcoming Git migration with repository per app / lib
- if nobody complains, I will backport it in a few days to the 4.10 branch also
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1340341
This is currently required to be able to split off the event processing code
in small functions so that it is possible to integrate libvncserver's event
loop code with Qt's event loop properly. This is also what vino does; the whole
event loop integration idea was taken from there.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1195283
This means that theoretically we can have more than one actual rfb server running at once.
In practice, some work is still needed like making KrfbServer and ConnectionController into abstract base classes
that the normal rfb server and the tubes rfb server can inherit from.
The configuration also needs fixing to apply to individual servers, not all of them.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1189032
It is meant to be used only by plugins built together with krfb, and does not make any binary compatability at all.
It should not be linked against by anything outside of the krfb source tree, so we definitely shouldn't be installing headers.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1053592
- Currently there is no configuration UI, so you have to edit the krfbrc by hand to select the framebuffer plugin to use. This will be fixed later.
- Framebuffers are shared, so that when krfb supports having mutliple servers running, the framebuffer can be shared between them (when appropriate) for better performance.
- Currently defaults to the X11 framebuffer, since this is what was hardcoded before.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=1027330
Uses less cpu than Qt approach, but visually sucks. I suspect there are too many updates sent to the client, I need to group the rects and create a bigger one when sending the event to the client.
svn path=/trunk/KDE/kdenetwork/krfb/; revision=653073
- FrameBuffer to encapsulate screen buffer and updates
- handle events
- avoid a timer for the rfb event loop, just use a real loop and qApp->processEvents()
svn path=/trunk/KDE/kdenetwork/krfb/; revision=650928
- added hooks to manage vnc events
- moved events out of rfbcontroller.cpp/.h into their own source file
svn path=/trunk/KDE/kdenetwork/krfb/; revision=650434
- removed old libvncserver, we will depend on external lib
- removed krfb, srvloc, krfb_http subdirs, now everything is
in krfb main dir instead
svn path=/trunk/KDE/kdenetwork/krfb/; revision=649168
* make it compile (without kinetd subfolder)
* left out DCOP->DBUS port
=> the cmake conversation for this app was quite bad. the libvncserver and srvloc were not created.
* some changes in FindSLP.cmake. i am not sure if they are correct. Laurent can you please check?
CCMAIL: montel@kde.org
svn path=/trunk/KDE/kdenetwork/krfb/; revision=625859
-remove include_directories( CMAKE_CURRENT_SOURCE_DIR CMAKE_CURRENT_BINARY_DIR)
in the subdirs, since this is done now automatically by cmake (the CMAKE_INCLUDE_CURRENT_DIR option
-include_directories(KDE4_INCLUDES) in the toplevel CMakeLists.txt, so it
doesn't have to be done in every subdir
Alex
svn path=/trunk/KDE/kdenetwork/krfb/; revision=539887