vmware / open-vm-tools

Official repository of VMware open-vm-tools project
http://sourceforge.net/projects/open-vm-tools/
2.21k stars 423 forks source link

Drag and Drop interaction occurs with only `CTRL+C` #590

Open polarathene opened 2 years ago

polarathene commented 2 years ago

Describe the bug

It is unexpected that files, especially large ones referenced in a host or guest clipboard would be transferred implicitly when transitioning between the host or guest (only requires mouse movement across the guest windows bounds to trigger).

The VMPlayer settings UI does not provide an option to manage the Copy/Paste and Drag'n'Drop support. I did come across the following VMX config lines that do:

isolation.tools.copy.disable = "TRUE"
isolation.tools.paste.disable = "TRUE"
isolation.tools.SetGUIOptions.enable = "TRUE"

Reproduction steps

1. Start VM guest.
2. Copy file from VM guest, or host and switch to the other.
3. Implicit file transfer begins.

Expected behavior

CTRL+C should not trigger an implicit file transfer/copy. This is separate from the Drag and Drop feature that is explicit. If users desire this implicit behaviour (which requires 2x storage due to copy that stays inside the cache), it should be possible to opt-out (or preferably be opt-in by default).

Additional context

The official docs VMWare Workstation 16 (last updated May 2019) only describe a GUI method to perform the equivalent VMX config changes, but the VMPlayer (at least on Linux host) does not provide such "Guest Isolation" settings and this appears to be the case as far back as 2014 (version 6.0).

I discovered the VMX config for disabling copy/paste from unofficial sources online. And after considering that DnD feature is probably separate, I found a 2007 VMware community support thread discussing it's equivalent config line. It's unclear if this is better documented somewhere by VMware officially...

I have required VMX editing for other features such as setting EFI firmware or Boot device order. It is unclear why GUI support is lacking or better official documentation for equivalent VMX config file settings. I am interested in becoming a customer still, but features need to work correctly first.

Environment

I could additionally verify with the following if desired:

Host:

Guest:

Related

https://github.com/vmware/open-vm-tools/issues/589 (duplicate file copying loop) looks like it would be resolved if the clipboard did not trigger implicit file copies in the first place.

johnwvmw commented 2 years ago

I believe what you are experiencing is the expected behavior.

If the desktop & app allow a selected file icon to be transferred to the desktop clipboard with Ctrl+C, than it will also be available in the hosted products transfer clipboard. I do not have access to an Arch Linux VM, but on Fedora 35, I can copy/paste a file in the file manager (Nautilus) panes using Ctrl-C & Ctrl-V. And it is available to paste in an appropriate app on the host desktop.

If as a personal choice you wish to suppress file copy / paste, then try this.

If I add the following lines to the VM's .vmx configuration file,

isolation.tools.copy.disable = "FALSE" isolation.tools.paste.disable = "FALSE" isolation.tools.copyPaste.File.disable = "TRUE"

there is no copy / paste of the file to the Windows host desktop.

Please let us know if the above settings provides the behavior you desire. And if there is any additional help needed, just ask.

Since copy/paste defaults are as expected, clearing the "bug" label.

polarathene commented 2 years ago

If the desktop & app allow a selected file icon to be transferred to the desktop clipboard with Ctrl+C, than it will also be available in the hosted products transfer clipboard.

Uhhh.. sure, but when I do that on the host no actual copy/transfer occurs. When VMPlayer is active though, switching to the guest would initiate an implicit transfer which is not expected or desired personally. Likewise, within the guest if switching to another window on the host.

isolation.tools.copyPaste.File.disable

There's exactly 3 results for this on Google (all VMware forum support threads) :sweat_smile:

Is any of this documented somewhere? I understand there's meant to be a settings UI for it, but it's not present in VMPlayer 16.2.3 on linux for some reason.

That did do the trick though, thanks!


on Fedora 35, I can copy/paste a file in the file manager (Nautilus) panes using Ctrl-C & Ctrl-V. And it is available to paste in an appropriate app on the host desktop.

For me on Arch and Fedora hosts with an Arch guest, this resulted in an implicit transfer, it'd be totally fine if the functionality resulted in a transfer when you explicitly paste to the host or guest from the other. Perhaps that's the intended experience.

It's possible that there is something not compatible with Arch or KDE, I'll need to test with a Fedora Gnome guest to confirm, then isolate if it's Arch or KDE related. Everything else seems to be at parity though between Arch and Fedora.

SonyaWAlston commented 1 month ago

try: echo 'isolation.tools.copyPaste.File.disable = "TRUE"' >> $HOME/.vmware/config