DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.25k stars 40 forks source link

xwinfo missing on Arch (AppImage and AUR) #300

Closed askiiart closed 11 months ago

askiiart commented 11 months ago

Please fill out following when reporting a new bug:

Describe the bug
When installing SteamTinkerLaunch, ProtonUp-Qt displays xwinfo: missing despite it being installed.

To Reproduce Steps to reproduce the behavior:

  1. Open the program.
  2. Click "Add version"
  3. Select "Compatibility tool: SteamTinkerLaunch"
  4. Click "Install"
  5. Error is displayed.

Expected behavior
SteamTinkerLaunch should just install.

Screenshots
Snapshot_2023-10-20_12-13-41

Desktop (please complete the following information):

Additional context
N/A

Terminal output

ProtonUp-Qt 2.8.2 by DavidoTek. Build Info: built from source.
Python 3.11.5 (main, Sep  2 2023, 14:16:33) [GCC 13.2.1 20230801], PySide 6.6.0
Platform: Arch rolling Linux-6.5.7-arch1-1-x86_64-with-glibc2.38
QGuiApplication::setDesktopFileName: the specified desktop file name ends with .desktop. For compatibility reasons, the .desktop suffix will be removed. Please specify a desktop file name without .desktop suffix
Loading locale en / en_US
Loaded ctmod GE-Proton
Loaded ctmod Wine-GE
Loaded ctmod Boxtron
Loaded ctmod D8VK (nightly)
Loaded ctmod Kron4ek Wine-Builds Vanilla
Loaded ctmod Lutris-Wine
Loaded ctmod Luxtorpeda
Loaded ctmod NorthStar Proton (TitanFall 2)
Loaded ctmod Proton Tkg
Loaded ctmod Proton Tkg (Wine Master)
Loaded ctmod Roberta
Loaded ctmod Steam-Play-None
Loaded ctmod SteamTinkerLaunch
Loaded ctmod SteamTinkerLaunch-git
Loaded ctmod vkd3d-lutris
Loaded ctmod vkd3d-proton
Loaded ctmod Wine Tkg (Valve Wine)
Loaded ctmod Wine Tkg (Vanilla Wine)
Loaded ctmod DXVK
Loaded ctmod DXVK Async
Loaded ctmod DXVK (nightly)
Error: Could not get a list of all Steam apps: 'NoneType' object has no attribute 'get'
Error: Could not get a list of all Steam apps: 'NoneType' object has no attribute 'get'
Error: Could not get a list of all Steam apps: 'NoneType' object has no attribute 'get'
Gamepad error: No gamepad found.
Error: Could not get a list of all Steam apps: 'NoneType' object has no attribute 'get'
Error: Could not get a list of all Steam apps: 'NoneType' object has no attribute 'get'
Error: Could not get a list of all Steam apps: 'NoneType' object has no attribute 'get'
which: no xwininfo in (/home/askiiart/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

Just from some quick googling, it seems that xwinfo and xwininfo are the same thing, and copying /usr/bin/xwinfo to /usr/bin/xwininfo seems to work. So just trying xwininfo and falling back to xwinfo if that's not available might work, though I'm not sure if that's an issue with SteamTinkerLaunch itself as well.

sonic2kk commented 11 months ago

The dependency check for STL is separate from the check ProtonUp-Qt performs, you can see the code for it here: https://github.com/DavidoTek/ProtonUp-Qt/blob/main/pupgui2/resources/ctmods/ctmod_steamtinkerlaunch.py#L164-L204

I think for the xwininfo check, we can perform host_which('xwininfo') or host_which('xwinfo').

However, STL itself does expect xwininfo. If running xwininfo doesn't work, then STL will not work. The SteamTinkerLaunch AUR package also lists xorg-xwininfo as the dependency, not xwinfo. So it may be best to link or add an alias for xwinfo.

It seems like xwinfo is an AUR package and not a standard Arch Linux package either, at least yay is only showing it as an AUR package.

I don't think this is bug per-se but given that STL expects specific names for its internal dependencies, it may not be a good idea for ProtonUp-Qt to go against this.

The internal program names STL expects are as follows:

GIT="git"
PGREP="pgrep"
PIDOF="pidof"
PKILL="pkill"
TAR="tar"
UNZIP="unzip"
WGET="wget"
XDO="xdotool"
XPROP="xprop"
XRANDR="xrandr"
XWININFO="xwininfo"
XXD="xxd"

ProtonUp-Qt matches these names too, we made sure of this when writing the SteamTinkerLaunch ctmod. So if there is a strong case to made for allowing xwinfo it would have to be done on the SteamTinkerLaunch side first.

askiiart commented 11 months ago

@sonic2kk Thanks! In that case, can you update the dependencies screen to show xwininfo instead of xwinfo?

sonic2kk commented 11 months ago

No problem, I got a PR up for it at #301 :-)

If in doubt as well, always double-check the SteamTinkerLaunch dependencies section on the installation guide. ProtonUp-Qt only enforces the hard dependencies so STL can function, but there are several optional dependencies as well. I don't see any further discrepancies between ProtonUp-Qt's list and SteamTinkerLaunch's. The ctmod description also makes note of this:

SteamTinkerLaunch has a number of Optional Dependencies which have to be installed separately for extra functionality. Please see the Optional Dependencies section of the SteamTinkerLaunch Installation guide on its GitHub page.

And this is a little off-trackk, but just to echo something I say on the STL repo as well, make sure you're using SteamTinkerLaunch-git. There is currently no change in hard dependencies between old and git :-)