Bug 2064602 - [RFE]Support copy/paste in the VNC console in virt-viewer
Summary: [RFE]Support copy/paste in the VNC console in virt-viewer
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: virt-viewer
Version: 9.1
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Daniel Berrangé
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: 2057768 2060724
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-03-16 09:05 UTC by Guo, Zhiyi
Modified: 2023-08-17 07:28 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Story
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-115716 0 None None None 2022-03-16 09:10:45 UTC

Description Guo, Zhiyi 2022-03-16 09:05:42 UTC
Description of problem:
qemu-kvm has supported copy/paste in the vnc console since qemu-kvm 6.2.0, see:
Bug 1874926 - [RFE] copy/paste support in qemu VNC console

Beside Libvirt, virt-viewer should also support this feature.


Steps to Reproduce:
1.Start VM with VNC has copy/paste enabled, use virt-viewer connect to VM vnc port
2.Try to copy some characters from client machine and paste them to VM
3.Try to copy some characters from VM and paste them to client machine

Actual results:
copy/paste in step 2 and 3 doesn't work

Expected results:
copy/paste works good

Additional info:
I have checked virt-viewer-11.0-1.el9.x86_64 and copy/paste doesn't work. As a reference, vncviewer provided by tigervnc-1.11.0-21.el9.x86_64 has copy/paste works

Comment 2 Jonathon Jongsma 2022-03-17 15:40:43 UTC
(In reply to Guo, Zhiyi from comment #0)
> Description of problem:
> qemu-kvm has supported copy/paste in the vnc console since qemu-kvm 6.2.0,
> see:
> Bug 1874926 - [RFE] copy/paste support in qemu VNC console
> 
> Beside Libvirt, virt-viewer should also support this feature.
> 
> 
> Steps to Reproduce:
> 1.Start VM with VNC has copy/paste enabled, use virt-viewer connect to VM
> vnc port
> 2.Try to copy some characters from client machine and paste them to VM
> 3.Try to copy some characters from VM and paste them to client machine
> 
> Actual results:
> copy/paste in step 2 and 3 doesn't work
> 
> Expected results:
> copy/paste works good
> 
> Additional info:
> I have checked virt-viewer-11.0-1.el9.x86_64 and copy/paste doesn't work. As
> a reference, vncviewer provided by tigervnc-1.11.0-21.el9.x86_64 has
> copy/paste works

I've only done a cursory investigation so far, but I suspect that there may need to be some work done in gtk-vnc as well. One potentially significant difference between vncviewer/tigervnc and virt-viewer is that vncviewer sends a SetEncodings[1] message to the server when it connects, and this message includes the pseudo-encoding value 0xc0a1e5ce[2], which causes qemu to enable some clipboard-related functionality. 

[1] https://datatracker.ietf.org/doc/html/rfc6143#section-7.5.2
[2] https://gitlab.com/qemu-project/qemu/-/blob/1d60bb4b14601e38ed17384277aa4c30c57925d3/ui/vnc.h#L425

Comment 3 Daniel Berrangé 2022-03-17 16:16:39 UTC
(In reply to Jonathon Jongsma from comment #2)
> I've only done a cursory investigation so far, but I suspect that there may
> need to be some work done in gtk-vnc as well. One potentially significant
> difference between vncviewer/tigervnc and virt-viewer is that vncviewer
> sends a SetEncodings[1] message to the server when it connects, and this
> message includes the pseudo-encoding value 0xc0a1e5ce[2], which causes qemu
> to enable some clipboard-related functionality. 

That is the extended clipboard protocol:

  https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#extended-clipboard-pseudo-encoding

GTK-VNC does not implemenet that extension at this time. It only supports the original crude clipboard protocol 

  https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#clientcuttext
  https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#servercuttext


Note You need to log in before you can comment on or make changes to this bug.