brezerk / q4wine

Q4Wine is a Qt GUI for W.I.N.E. It will help you manage wine prefixes and installed applications.
http://q4wine.brezblock.org.ua/
GNU General Public License v3.0
207 stars 40 forks source link

[Bug] Display of Valve Proton in Processes view #138

Closed Eonfge closed 5 years ago

Eonfge commented 5 years ago

Currently, Q4Wine has partial for Valve Proton processes in it's system. It would be useful if something was done with this in a more constructive manner. See the image:

screenshot from 2018-09-23 11-25-51

There are roughly two options:

brezerk commented 5 years ago

Thank you for the bug report. I'll take a look on it.

brezerk commented 5 years ago

from what i see Proton is exporting the WINEPREFIX variable:

WINEPREFIX=/home/brezerk/.local/share/Steam/steamapps/compatdata/214730/pfx/

this is good

brezerk commented 5 years ago

in order to control the process, you have to supply all variables like:

 WINEDLLPATH=/home/brezerk/.local/share/Steam/steamapps/common/Proton\ 3.7/dist/lib64/wine WINEPREFIX=/home/brezerk/.local/share/Steam/steamapps/compatdata/214730/pfx/ WINEESYNC=1 /home/brezerk/.local/share/Steam/steamapps/common/Proton\ 3.7/dist/bin/wineserver -k

or you will get ABI mismatch:

wine client error:0: version mismatch 557/560.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?
brezerk commented 5 years ago

So here is the issue:

Currently q4wine relays on the information present in the q4wine db regarding the wineprefix information:

            execObj.cmdargs = "-kill";
            execObj.execcmd = "wineserver";

            if (!this->runWineBinary(execObj, db_prefix.getName(prefix_path), false)){
                return false;
            }

I think it is not the best solution: since you can have such side-running process in general (not really related to Proton). So I guess I need to change logic a bit: we need to extract the environment variables for the process.

brezerk commented 5 years ago

as for the process list. this commit will fix the process display: https://github.com/brezerk/q4wine/commit/7bfd03ff6c14e58fcadb57f99c4b7eada96a6c66 you will be able to control single process via 'Stop current' and 'Renice'. The 'Stop wine' action will require additional fix.

image

brezerk commented 5 years ago

This one https://github.com/brezerk/q4wine/commit/7ef9192e4aa84387b8de9745fd7a8d2f59dfe7f4 will address the 'Stop wine' action.

Should be all set now. Test please and reopen if needed.

Thanks.