[Differential] [Request, 371 lines] D1973: Support for syncing the clipboard from X11 to Wayland and vice versa
graesslin (Martin Gräßlin)
noreply at phabricator.kde.org
Wed Jun 22 12:57:15 UTC 2016
graesslin created this revision.
graesslin added reviewers: Plasma on Wayland, KWin.
Restricted Application added subscribers: kwin, plasma-devel.
Restricted Application added projects: Plasma on Wayland, KWin.
REVISION SUMMARY
The clipboard sync is done by a dedicated helper binary launched by
KWin. This helper binary is forced to xcb platform to picky-back on
Qt's implementation of the X11 clipboard. In addition it implements
the Wayland clipboard - which is much simpler. Reading the Wayland
clipboard is based on the implementation in QtWayland.
KWin internally knows the DataDeviceInterface belonging to the helper
application. Whenever an xwayland client is focussed, this DataDevice
is allowed to set the selection and KWin manually updates the current
selection in the SeatInterface. By that the sync from X11 to Wayland
is implemented. When afterwards a Wayland client is selected, it's sent
the current selection which references the X clipboard and a data
transfer can be initiated in the normal Wayland way.
For the other direction KWin sends the current selection to the helper's
DataDevice whenever an xwayland window is focused. The helper application
reads the Wayland clipboard and sets it on the X11 clipboard. Thus the
Wayland clipboard is synced to X11.
The approach used here will also be useful for implementing a clipboard
manager (aka klipper).
Currently the implementation is not yet fully completed. We need to
make sure that the helper application gets restarted in case of a crash.
TEST PLAN
Test cases still missing. I'm not exactly sure how I can test
this. But running the code currently and happily copy/paste.
REPOSITORY
rKWIN KWin
BRANCH
xclipboard-syncer
REVISION DETAIL
https://phabricator.kde.org/D1973
AFFECTED FILES
CMakeLists.txt
config-kwin.h.cmake
helpers/CMakeLists.txt
helpers/xclipboardsync/CMakeLists.txt
helpers/xclipboardsync/main.cpp
helpers/xclipboardsync/waylandclipboard.cpp
helpers/xclipboardsync/waylandclipboard.h
keyboard_input.cpp
wayland_server.cpp
wayland_server.h
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: graesslin, #plasma_on_wayland, #kwin
Cc: plasma-devel, kwin, hardening, jensreuterberg, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160622/5d4bb30f/attachment.html>
More information about the Plasma-devel
mailing list