[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