Fist sketch of cut+paste support for vnc. On the guest side we are going to reuse the spice vdagent, so things should work out-of-the-box with guests in the wild. So this patch set brings a qemu implemenation of the vdagent protocol.
Beside that there is the clipboard infrastructure of course. For now only text support is there. The design allows adding more data types, so we can add image support and maybe more later on. So far vdagent, vnc server and gtk ui are hooked up. Usage: qemu \ -chardev vdagent,id=vdagent,clipboard=on \ -device virtio-serial-pci \ -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 Enjoy! Gerd Hoffmann (7): ui: add clipboard infrastructure ui/vdagent: core infrastructure ui/vdagent: add mouse support ui/vdagent: add clipboard support ui/vnc: clipboard support ui/gtk: move struct GtkDisplayState to ui/gtk.h ui/gtk: add clipboard support include/ui/clipboard.h | 68 +++++ include/ui/gtk.h | 66 +++++ ui/vnc.h | 24 ++ chardev/char.c | 6 + ui/clipboard.c | 92 ++++++ ui/gtk-clipboard.c | 124 ++++++++ ui/gtk.c | 56 +--- ui/vdagent.c | 624 +++++++++++++++++++++++++++++++++++++++++ ui/vnc-clipboard.c | 326 +++++++++++++++++++++ ui/vnc.c | 20 +- qapi/char.json | 17 ++ ui/meson.build | 5 +- ui/trace-events | 9 + 13 files changed, 1375 insertions(+), 62 deletions(-) create mode 100644 include/ui/clipboard.h create mode 100644 ui/clipboard.c create mode 100644 ui/gtk-clipboard.c create mode 100644 ui/vdagent.c create mode 100644 ui/vnc-clipboard.c -- 2.29.2