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
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel