DavidoTek/ProtonUp-Qt

xwinfo missing on Arch (AppImage and AUR)

askiiart opened this issue ยท 3 comments

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):

  • Platform: PC/Laptop
  • System: Arch Linux with Budgie
  • Version: ProtonUp-Qt 2.8.2 - both the AppImage and AUR versions.
  • How did you install ProtonUp-Qt?: By running the AppImage, and by installing yay -S protonup-qt

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.

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.

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

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 :-)