Hello,

The original arch spec [1] described the copy/paste operations as only
needing a single key combination to copy and a single key combination
to paste between VMs (e.g. only Ctrl+Shift+C, Ctrl+Shift+V, instead of
Ctrl+C, Ctrl+Shift+C, Ctrl+Shift+V, Ctrl+V). Relevant paragraphs (from
section 5.5, page 27) reproduced below.

Is the reason that these actions (copy inside vm & save to global
clipboard / send global to vm & paste in vm) are not combined into
single key combinations today an intentional design decision?
(Possibly some QSB-13-like [2] consideration?) Or just something that
was never gotten around to?

I was reminded of this curiosity by Zrubi's recent blog post [3][4].
My (admittedly non-exhaustive) search of the list archives did not
shed light on this question.

-----

# Clipboard algorithm for the “copy” operation

1. The copy operation is initialized by the magic key combination for
the copy operation (e.g. Shift-Ctrl-C) entered in Dom0 into the
focused AppViewer

2. The AppViewer does not pass the keystrokes to the AppVM. Instead it
builds and sends the get_clipboard command over the GUI communication
channel to the GUI agent running in the AppVM.

3. The Agent in the AppVM receives the get_clipboard command and, in
response creates a response command (clipboard) where it copies
whatever is currently “marked” in the AppVM, limited to the max
allowed buffer size.

4. AppViewer receives the clipboard message and copies the content
into the defined storage space in Dom0. This storage space could be
e.g. a dedicated file in the Dom0ʼs /tmp or /dev/shm directory.
Particularly this should not be placed into the Dom0ʼs Window
Managerʼs clipboard buffer, to make sure that the user doesnʼt
mistakenly paste the buffer into any of the Dom0ʼs applications. The
user should only be allowed to paste the contents of the clipboard
buffer into another AppViewer window.

# Clipboard protocol for the “paste” operation

1. The paste operation is initialized by the magic key combination for
the paste operation (e.g. Shift-Ctrl-V) entered in Dom0 into the
focused AppViewer

2. The AppViewer does not pass the keystrokes to the AppVM, instead
the AppViewer sends the clipboard message to the agent in the AppVM.

3. The agent copies the contents from the clipboard packet to the VMʼs
Window Manager clipboard buffer and simulates and initializes the
paste operation into the focused application (as if the user pressed
Ctrl-V locally in the AppVM).

-----

[1]: 
https://www.qubes-os.org/attachment/wiki/QubesArchitecture/arch-spec-0.3.pdf
[2]: https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qsb-013-2015.txt
[3]: https://groups.google.com/d/topic/qubes-users/4km22rTlufc/discussion
[4]: http://zrubi.hu/en/2017/use-more-buttons/

-- 
You received this message because you are subscribed to the Google Groups 
"qubes-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to qubes-devel+unsubscr...@googlegroups.com.
To post to this group, send email to qubes-devel@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qubes-devel/CABQWM_B-eC%2B%2BDqmw3tZi8NnXSQELMA5RoamyDx_e%2BkFso6avbA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to