Windows 7 Shared Clipboard Doesn't Work with QWT 4.1.68

I can’t remember if I ever used it, but I just tried it now and it doesn’t work.
Qubes RPC service is up and running.
I don’t know how to determine which version of QWT I’m running, but it’s the one from April 9th 2022, so I guess it’s the latest.

Any idea?

It works for me on Windows 7. I also have QWT files dated April 9th 2022.
Except for clipboard other QWT functions work for you?
Do you have anything in your logs?
C:\Program Files\Invisible Things Lab\Qubes Tools\log
What’s in qvm-features for your VM?

Everything else perfect.

Empty folder, I forgot to mention…

os                         Windows
rpc-clipboard              1
qrexec                     1
gui                        1
gui-emulated               
stubdom-qrexec             1

What is maybe worth to note is that after CTRL+c, on CTRL+SHIFT+c I’m getting notification for CTRL+SHIFT+v in dom0, actually (“Global clipboard wiped, blah, blah, Paste normally in qube (CTRL+v)”)? Which confuses me even more…

Maybe there is some soft installed in your Windows qube that prevent QWT from modifying clipboard?
Antivirus or something?

Nice tip, but unfortunately no. I have started win qube in safe mode, so Qubes RPC service stopped as anything non-minimal, and again the same notification (“Paste your…”)? So, maybe it’s not about win qube, but something with dom0?

Hmmm…
And after restarting in normal mode, while CPU was heavily stressed due to other tasks in Qubes, I succeeded to caught one clipboard while in Explorer and while other services in Windows were still loading. After that, it didn’t work again, after Windows fully loaded.
So, it’s probably one of those minimal services. Time to investigate one by one, of those which can be stopped in safe mode…

My bad, I didn’t recheck the Windows 7 QWT and checked it on my Windows 10.
I have QWT 4.1.68 installed on Windows 10 and clipboard works there.
I’ve just checked QWT on Windows 7 and it’s version 4.1.67 from here:
https://github.com/tabit-pro/qubes-windows-tools-cross/releases/download/v4.1.67/qubes-windows-tools-4.1.67.1.iso
And clipboard works as well.
I’ve tried to install QWT 4.1.68 on Windows 7 instead of QWT 4.1.67 and clipboard doesn’t work for me as well but file copy etc works.

Oh, great. Then it’s time to summon @jevank and to change topic title?

HI, this is quite strange because there is no significant change since version 67->68. I will check it out.

2 Likes

Hi, I have Windows 7 with QWT 4.1.68 running, and both file and clipboard copy are working in both directions.

This seems to be an issue with qvm-features. And this is not the issue with only QWT 4.1.68, I have the same issue with QWT 4.1.67.
I have Windows 7 HVM with previously installed QWT 4.1.67 but now uninstalled. Never installed QWT 4.1.68 on it.
After uninstalling QWT I’ve manually removed QWT qvm-features:

qvm-features -D win7 no-monitor-layout
qvm-features -D win7 menu-items
qvm-features -D win7 gui
qvm-features -D win7 gui-emulated
qvm-features -D win7 qrexec
qvm-features -D win7 timezone
qvm-features -D win7 audio-model
qvm-features -D win7 rpc-clipboard
qvm-features -D win7 os

So its qvm-features are:

check-updates              
qubesmanager.maxmem_value  4096
stubdom-qrexec             1

I clone this HVM and install either QWT 4.1.67 or QWT 4.1.68 in it then reboot after installation complete.
When I boot up this cloned HWM and try to copy from it with Ctrl+Shift+C there is no notification in dom0 about clipboard copy and nothing copied in it. I can’t paste in this HVM from global clipboard as well. Other than that everything works fine. Display works fine as well and I have two Qubes Video Driver displays in settings.
qvm-features are automatically set as they should:

check-updates              
qubesmanager.maxmem_value  4096
stubdom-qrexec             1
menu-items                 qubes-start.desktop
os                         Windows
audio-model                ich6
timezone                   localtime
no-monitor-layout          1
gui                        1
gui-emulated               

Then I reboot this HVM again and now I have a problem with HVM display but everything else works fine - I can copy/paste from global clipboard. The display from Qubes Video Driver seems to be secondary display and doesn’t respond to mouse clicks and keyboard (at least there is no change on this display).
When I force stubdom:
qvm-start-gui --force-stubdomain win7-tst
I can see the stubdom display that is main display and is display settings there is 3 displays available - 1 from stubdom and 2 from Qubes Video Driver.
If I set Qubes Video Driver display as main display and reboot then everything works fine but in display settings I still have 3 displays but all of them are from Qubes Video Driver.
Now if I clone my original Windows 7 HVM once again but set the qvm-features to how they are with QWT installed:

qvm-features win7-tst os Windows
qvm-features win7-tst rpc-clipboard 1
qvm-features win7-tst audio-model ich6
qvm-features win7-tst timezone localtime
qvm-features win7-tst no-monitor-layout 1
qvm-features win7-tst qrexec 1
qvm-features win7-tst gui 1
qvm-features win7-tst gui-emulated ''

Then I boot it and also need to start gui with --force-stubdomain to see display and then install either QWT 4.1.67 or QWT 4.1.68 in it then reboot after installation complete.
After reboot everything works fine and if I reboot again everything is still working.

Seems like removing just rpc-clipboard before you install QWT will stop clipboard from working after first reboot after installation and then QWT will set rpc-clipboard feature again and the next reboot it will work again.
So it seems that it’s not a persistent problem with clipboard for me as I just tested it after only one reboot after QWT installation the first time.
Maybe @enmus have a different issue that broke his clipboard persistently.

What for did you do it?

I didn’t need QWT for this VM anymore and I need to keep the used RAM at minimum.
I need to run some small Windows-only software in Windows 7 and don’t need it to do anything more so after installing the needed software I’ve disabled and uninstalled all the software and Windows services that consumed memory to keep this Windows 7 memory usage at minimum.
And if I don’t remove qvm-features I can’t see the display anymore because it’s trying to use Qubes Video Driver that’s not there anymore.

I must admit I’m lost if there’s any working workaround for anyone and for the issue from the subject so I could try it, hahaha?

I can only suggest wild guess:
Shutdown VM.
Remove its rpc-clipboard feature:

qvm-features -D yourvm rpc-clipboard

Start VM.
Check clipboard - it shouldn’t work I think. But the rpc-clipboard feature should be automatically set again.
Reboot VM.
Check clipboard again - maybe it’ll work.

For Windows, depending on the rpc-clipboard feature, the processing of clipboard messages starts or not. This feature is set after the qubes agent is detected, so if you remove it manually, the clipboard will only work the next time it is started (after qubes agent advertising).

The QWT uninstaller should remove these features, but this may be broken.

I’ve tested this and it seems that uninstaller doesn’t remove the features.
Also it seems that QWT uninstaller doesn’t remove everything related to it. Maybe some settings in dom0 or in Windows 7 are still remains.
I’ve cloned my win7 HVM with QWT previously installed but now uninstalled that have these features set:

check-updates              
qubesmanager.maxmem_value  4096

I’ve installed QWT 4.1.68.
Rebooted.
Checked qvm-features:

check-updates              
qubesmanager.maxmem_value  4096
stubdom-qrexec             1
menu-items                 qubes-start.desktop
os                         Windows
rpc-clipboard              1
audio-model                ich6
timezone                   localtime
no-monitor-layout          1
qrexec                     1
gui                        1
gui-emulated               

Clipboard didn’t work but everything else works.
Rebooted.
Qubes Video Driver display opened but it seems to be not main display and mouse didn’t work in it so I had to run qvm-start-gui --force-stubdomain and then make Qubes Video Driver display as main display and disable stubdom display.
Rebooted.
Now everything works fine.
Uninstalled QWT.
Rebooted.
Checked qvm-features:

check-updates              
qubesmanager.maxmem_value  4096
menu-items                 qubes-start.desktop
os                         Windows
rpc-clipboard              1
stubdom-qrexec             1
audio-model                ich6
timezone                   localtime
no-monitor-layout          1
qrexec                     1
gui                        1
gui-emulated               

Display didn’t show up so I had to run qvm-start-gui --force-stubdomain to open it again.
Rebooted.
The qvm-features are still there and I have to manually remove them to get the display window to show up.

Seems so.

This step is unusual, QWT installer should disable emulated adapter when gui-agent installing and also enable it on uninstall.