sonic2kk / steamtinkerlaunch

Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs
GNU General Public License v3.0
2.12k stars 71 forks source link

Unable to pull in downloads to vortex #1143

Closed vvvilife closed 1 month ago

vvvilife commented 1 month ago

System Information

Issue Description

unable to pull in nxm links to vortex.

firefox launched through terminal sends this after attempt: sed: -e expression #1, char 0: no previous regular expression

I've set vortex as option for nxm and nxm-protocol through xdg-mime. Handle mod manager download is enabled in vortex. I can open links from vortex into firefox.

sonic2kk commented 1 month ago

You didn't provide a log, so there's not much I can do here. It works on my end still. You even explicitly removed the section for the log which contains a comment asking you to provide one, and with instructions on where to find it.

Also, please download mods manually where possible instead of supporting these types of links.

vvvilife commented 1 month ago

steamtinkerlaunch.log

apologies. wasn't on the same machine. should've been.

sonic2kk commented 1 month ago

Just wondering, did you accidentally close this issue or did you manage to resolve it?

If the issue is not resolved, are you running Vortex with steamtinkerlaunch vortex start, and if so does this command work? PATH="" LD_LIBRARY_PATH="" WINE="/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" WINEARCH="win64" WINEDEBUG="-all" WINEPREFIX="/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx" "/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine Vortex.exe -d nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089 --force-device-scale-factor=1

If not, does running it without --device-scale-factor work? As follows: PATH="" LD_LIBRARY_PATH="" WINE="/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" WINEARCH="win64" WINEDEBUG="-all" WINEPREFIX="/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx" "/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine Vortex.exe -d nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089

If neither of these work, then this is an issue with Vortex and Wine. It works for me, but I don't use Vortex very often, and I have the option to disable automatic updates enabled, so this could be a thing that is broken in newer Vortex releases.

If the latter works, then I guess not all Vortex versions are as friendly to the argument order, and maybe the URL has to go at the end.

vvvilife commented 1 month ago

must've accidentally closed, but i tried appending that to steamtinkerlaunch vortex start with no success. i imagine i was doing it incorrectly. when/how do i run that command?

sonic2kk commented 1 month ago

Sorry if I was unclear, I didn't mean to append it. I was checking that you were running Vortex with steamtinkerlaunch vortex start, to confirm you were definitely using the correct Vortex prefix and Proton version (as if these did not match, i.e. Vortex was launched in the Game Prefix when afaik it was not intended to be used that way, then the command would be expected to not work).

The steps should be:

It might also be worth trying steamtinkerlaunch vortex u nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089 with either Vortex running or closed, as this is a shorthand command that takes a NXM url (not the Nexusmods mod page url, but instead the nxm:// URL itself) and will pass this to Vortex. As a side effect of this Vortex should launch, because to pass NXM URLs Vortex is executed with the -d argument which should either launch Vortex and give it that URL to download, or the currently running Vortex instance should be given that command.

vvvilife commented 1 month ago

launched vortex with the command, which i have been up to this point. i had this open while running the below. hopefully i understood correctly.

first command ends in > in terminal waiting for further input, nothing in vortex.

second is exactly the same, > and awaiting further input with nothing in vortex.

all of this was off of a fresh install. I had removed steamtinkerlaunch-git from my system, removed everything from .cache and .config, then reinstalled.

sonic2kk commented 1 month ago

in terminal waiting for further input, nothing in vortex.

Oh, maybe the NXM URL needs quotes?

Maybe the mod URL also expired, could be worth copying the URL from Nexusmods. I'm not sure how to get it, maybe Inspect Element for the NXM URL on the mod manager button?

vvvilife commented 1 month ago
PATH="" LD_LIBRARY_PATH="" WINE="/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" WINEARCH="win64" WINEDEBUG="-all" WINEPREFIX="/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx" "/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine Vortex.exe -d "nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089"
zsh: parse error near `&'

quotes cause shell to throw that error

vvvilife commented 1 month ago

missing close quotes before Vortex.exe -d ....

adding them throws this error on both commands

PATH="" LD_LIBRARY_PATH="" WINE="/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" WINEARCH="win64" WINEDEBUG="-all" WINEPREFIX="/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx" "/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" Vortex.exe -d "nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089"
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
Application could not be started, or no application associated with the specified file
.
ShellExecuteEx failed: File not found.
sonic2kk commented 1 month ago

Oh, huh, the SteamTinkerLaunch command does not have the full path to the Vortex exe! That was a silly mistake on my part, very sorry. I will make a note to update that logging because that is frustrating.

I believe the path to Vortex.exe should be at /home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx/drive_c/Program Files/Black Tree Gaming Ltd/Vortex/. Please check that this path exists and if so, here are the two commands with the updated paths:

vvvilife commented 1 month ago

path exists.

second command worked!

not sure what this means or how to make it work without a long ass command, but hell yeah!

sonic2kk commented 1 month ago

That command that you ran is the exact same one that SteamTinkerLaunch is running from your log because I copied it from there :smile: -- well, with some additional quoting that SteamTinkerLaunch already does internally (but is missing from the logging because STL just prints $* in wineVortexRun), and an absolute Vortex EXE path (SteamTinkerLaunch cds into the Vortex directory, so it doesn't use the absolute path).

This does confirm that this is not a Wine issue or a change with Vortex behaviour thankfully.

Does running steamtinkerlaunch vortex u with an NXM URL work, while Vortex is already running? An example command would be steamtinkerlaunch vortex u nxm://game/blahblahblah. You should be able to get this URL from the "Mod Manager" button on Nexusmods. This command is the same one that the SteamTinkerLaunch Vortex .desktop file calls. If you check /home/sonofevropa/.local/share/applications/vortex-steamtinkerlaunch-dl.desktop you'll see it calls something like /usr/bin/steamtinkerlaunch vortex u %u (where %u is the URL it gets from the caller, i.e. Firefox).

If this works, then it is very bizarre, as this shorthand command is the one SteamTinkerLaunch uses to build the command you ran (it gets the Vortex wineprefix, Proton version, paths, etc). And there is nothing in your log that suggests anything is wrong.

vvvilife commented 1 month ago
steamtinkerlaunch vortex -u nxm://cyberpunk2077/mods/15911/files/83132?key=EvmK64qHnNB6N4pwAm-ayA&expires=1722119744&user_id=190138089
zsh: parse error near `&'

i tried with quotes around the URL as well, no dice

vvvilife commented 1 month ago

I switched to bash and got the following:

sol❯steamtinkerlaunch vortex -u nxm://cyberpunk2077/mods/15911/files/83132?key=EvmK64qHnNB6N4pwAm-ayA&expires=1722119744&user_id=190138089
[1] 99768
[2] 99769
sol❯=========================
SteamTinkerLaunch v14.0.20240712-1
=========================
Usage: steamtinkerlaunch [options]...

it shows the entire --help menu, then hangs. i have to cancel with ctrl+c, then see the following:

^C
[1]-  Done                    steamtinkerlaunch vortex -u nxm://cyberpunk2077/mods/15911/files/83132?key=jub9kF4pCD0QDEnsG5AUtw
[2]+  Done                    expires=1722120445
sonic2kk commented 1 month ago

You have included a dash in the command, it is steamtinkerlaunch vortex u, without the dash.

In general, SteamTinkerLaunch commands do not use dashes. Sometimes you can use dashes in some commands, but they should all work without dashes.

vvvilife commented 1 month ago
❯ steamtinkerlaunch vortex u nxm://cyberpunk2077/mods/15911/files/83132?key=EvmK64qHnNB6N4pwAm-ayA&expires=1722119744&user_id=190138089
zsh: parse error near `&'
❯ steamtinkerlaunch vortex u "nxm://cyberpunk2077/mods/15911/files/83132?key=EvmK64qHnNB6N4pwAm-ayA&expires=1722119744&user_id=190138089"
sed: -e expression #1, char 0: no previous regular expression

~ main❯ 

neither resulted in the mod being downloaded

sonic2kk commented 1 month ago

I just realised in your earlier reply, you explicitly called out that the second command worked, that is the one without --device-scale-factor=1?

If so, does that mean the command with --device-scale-factor=1 does not work? That would explain the discrepancy.

If that is the case, does swapping when that argument gets passed fix the issue? That is, does PATH="" LD_LIBRARY_PATH="" WINE="/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" WINEARCH="win64" WINEDEBUG="-all" WINEPREFIX="/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx" "/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" "/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx/drive_c/Program Files/Black Tree Gaming Ltd/Vortex/Vortex.exe" -d "nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089" --device-scale-factor=1 fail, but does PATH="" LD_LIBRARY_PATH="" WINE="/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" WINEARCH="win64" WINEDEBUG="-all" WINEPREFIX="/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx" "/home/sonofevropa/.local/share/Steam/compatibilitytools.d/GE-Proton9-10/files/bin/wine" "/home/sonofevropa/.config/steamtinkerlaunch/vortex/compatdata/pfx/drive_c/Program Files/Black Tree Gaming Ltd/Vortex/Vortex.exe" --device-scale-factor=1 -d "nxm://cyberpunk2077/mods/15933/files/83358?key=c0qo3ngsfEgpFQU5um8QoA&expires=1722111459&user_id=190138089" work?

vvvilife commented 1 month ago

yes that's correct, the second worked previously.

additionally, the second command in this last reply worked as well, the first did not

sonic2kk commented 1 month ago

Very interesting, it seems it's the --device-scale-factor that is causing the problem. Not sure why it works for me, it could be a Vortex version discrepancy.

I'll see about moving the order of the argument around to put the -d command at the end. Not sure how difficult that will be but I will take a look!

For what it's worth, this change was merged quite a while ago (044e24baafd118d8ddf131e37a04ef5e3e3fcea2) and this is the first time it has come up as an issue, which does lead me to suspect this is a Vortex change.

sonic2kk commented 1 month ago

Pushed a change with f899d3c which moves --device-scale-factor to the beginning. Try updating SteamTinkerLaunch and see if that fixes the URL handling. The command that steamtinkerlaunch vortex u executes should now put -d nxm://blahblahblah at the end of the command.

You can verify that you have the correct version by ensuring that it is v14.0.20240726-1.

vvvilife commented 1 month ago

confirmed working again. thank you!

I have one last question before closing this thread.

here you said to avoid these links and use manual downloads. Curious as to why you'd consider that a best practice?

sonic2kk commented 1 month ago

Glad to hear the problem is resolved! It was an unusual issue so I appreciate the troubleshooting.

https://github.com/sonic2kk/steamtinkerlaunch/issues/1143#issuecomment-2251368776 you said to avoid these links and use manual downloads. Curious as to why you'd consider that a best practice?

These types of links from browsers are incredibly brittle and, as a developer, it is incredibly disheartening to see their popularity. Other developers share the same mentality. There are far too many variables for these to break and that is amplified when it comes to working with Wine. The problem is not specific to Linux either, for the couple of years I dual-booted with Windows I never once had these work, and most of the time they don't work on my day job Mac! They are a nightmare, and I advocate against them any opportunity I get.

If you must use a mod manager at all, I implore you as a developer to download the mods manually - Especially when it comes to big Nexusmods mod packs!

In short, they are unreliable and developers like myself lose sleep over their prominence.