Features/SharedClipboard

From Spice

Contents

Clipboard Sharing

Summary

Copy-paste data between client & guest.

Specifically the types of data include:

  • text
  • images

Features are:

  • support for arbitrary sized data.
  • do not require large buffers in server (throttling in server between guest and client)
  • translation between different client and guest semantics

The text will be passed as utf-8 between the server and the client. It will be the guest's agent responsibility to translate it to utf-8 from whatever internal representation is used (windows uses utf16).

Images will be basically passed as png. TOTHINK: other formats (e.g. jpeg)

Other types TOTHINK

Owner

  • Arnon Gilboa

Current Status

  • Targeted Release: 0.6.3

TODO

  • Windows guest agent:
    • png support
    • request queue
  • prevent mouse blocking by clipboard - dedicated clipboard channel
  • support multi-ports with multi-chunk data in parallel (currently only clipboard)
  • clipboard disable
    • support complete disable for security (libspice? currently clipboard-passthrough)
    • configurable size limitation of clipboard data

Basic flow

client-copy->guest-paste (for guest-copy->client-paste switch col 2 and 3)

Net Data client-os spice-client guest-agent guest-os
small -> cb changed -> GRAB -> I own cb
small <- cb request <- REQUEST <- cb requested
small-large -> cb contents -> CONTENTS x -> cb contents
small -> cb released -> RELEASE -> cb release