simons-public / protonfixes

A module for applying fixes at runtime to unsupported games with Steam Proton without changing game installation files
https://simons-public.github.io/protonfixes/
Other
233 stars 114 forks source link

Add install_protonfixes script #109

Closed mrjackv closed 4 years ago

mrjackv commented 4 years ago

As stated in the title, this PR adds a script called install_protonfixes which will search all possible proton locations and attempt to install protonfixes in all of then.

pchome commented 4 years ago

I use setuptools to install protonfixes system-wide, this PR will likely break my case.

I also don't want install into Proton's directory, I rather prefer ~/.local/lib/python3.x/site-packages directory (my Proton directories in /usr/share/steam/compatibilitytools.d :smile: ). So, please, don't break this.

mrjackv commented 4 years ago

By setuptools do you mean sudo python setup.py install? Because I install protonfixes in the same way and so far everything works as intended. (I also tested a --user install and it works as well eg. installing ~/.local/bin/install_protonfixes)

Looking at this it seems that there are quite a few directories where steam looks for proton (I did not know this!). Apart from proton-tkg and proton-ge are there any other versions that could potentially show up? I can gladly add a few more instructions to find_libraries to account for this configuration (eg. by looking for install_path lines inside vdf files) or alternatively bundle/set as a dependecy pyvdf.

I did not understand the ~/.local/lib/python3.x/site-packages part, can you clarify? Do you mean the fact that install_protonfixes gets copied to /usr/bin? In that case the script could be converted to a module eg. python -m install_protonfixes, however I think it would detract from the ease-of-use that the addition tries to bring

pchome commented 4 years ago

I also tested a --user install and it works as well eg. installing ~/.local/bin/install_protonfixes

Oh, sorry, I know not much about python or setuptools, but if you say it will just install that script (not run during setup) then I guess I'm fine with it. I just don't need it. I have protonfixes/Proton/wine/etc. installed and configured by package manager, everything somewhere in /usr/lib* or /usr/share.

Previously I used ~/.local/lib/ path to manually install protonfixes, but not anymore.

mrjackv commented 4 years ago

Oh, sorry, I know not much about python or setuptools, but if you say it will just install that script (not run during setup) then I guess I'm fine with it. I just don't need it. I have protonfixes/Proton/wine/etc. installed and configured by package manager, everything somewhere in /usr/lib* or /usr/share.

Yes, there will be a file called /usr/bin/install_protonfixes (or ~/.local/bin) when setup.py is run, then the user has to manually run install_protonfixes in a shell in order to actually run the script
I will soon push another commit in order to integrate the possibility of using compatibilitytools.d