Ok managed to get the NXM link to work in other browsers, basically xdg-open was working but just needed to add sh in the exec line for some reason. Odd.
You do need to issue this command also to register it (xdg-mime default nxm.desktop x-scheme-handler/nxm)
HOWEVER back to the real issue, why is this not opening up within the same instance that is already opened via steam proton? at first I thought it was because I didn't have esync or fsync enabled, which is true the app wont even work without those enabled (on the same prefix) but it still ended up opening up a separate instance of MO2 in the end (what we don't want).
@jarrard Why are you invoking wine directly? Shouldn't you be using the proton script with the "run" argument.
Right, you'll want to run the proton script, not Wine. It's not a good idea to run your system Wine against Proton prefixes, they aren't designed for that.
Unfortunately invoking the proton script isn't trivial, you have to set up the environment in the same way that Steam does. At the very least you need to set SteamGameId, SteamAppId, and STEAM_COMPAT_DATA_PATH (this is how we determine the prefix path). You'll probably also want to set up LD_LIBRARY_PATH in the same way that Steam does, so we can get access to the Steam runtime. Some games will require STEAM_COMPAT_CLIENT_INSTALL_PATH for Steam DRM purposes.
And of course none of this is a stable API and I can't guarantee it won't break in the future.
hmm ok, I will try and give this a shot.
Thinking about it more, there is a larger question here of if we should export URL handlers from within the prefixes into the user's environment. Basically automate what you've done with desktop files. If you do get this working, I'd be interested to have a copy of what you've done, which we could maybe base an implementation off of.
I haven't got around to messing with running proton script, wish there was some more examples and documentation for howto do it somewhere.
Going to ask on reddit. Everything that has been suggested fails in a shell script.
EDIT: I did figure it out in the end, be sure to ask me if anyone wants the reddit link.
There is another issue with opening URL's from within programs, in this case mod organizer. It causes the app to freeze more or less. I'll have to debug that sometime but for now I'll just close this since I seem to be the only person on planet Earth that actually attempts to use Mod Organizer 2 under Linux, LMAO.
How did you end up doing it?
How did you end up doing it?
Thread is too old, have no real memory to bring up details. BUT I think Steam Tinker Launcher has some fixes you can use.
Hasn't been a issue on plasma desktop for a while!
proton 4.19-ge-1x1 2019-11STEAM_COMPAT_CLIENT_INSTALL_PATHx1 2019-11STEAM_COMPAT_DATA_PATHx1 2019-11WINEARCH=win64x1 2019-11WINEESYNC=1x1 2019-11WINEFSYNC=1x1 2019-11WINEPREFIX="/home/theriddick/.steam/debian-installation/steamapps/compatdata/3020235986/pfx/"x1 2019-11
Hello, not sure if this is a feature request because I'm sure it can be done.
BUT I'm having some issues opening web links such as NXM into a program ran within steams proton, such as ModOrganizer2. I can already get firefox for example to open up a proton prefix and launch the app, but it has issues and this is duplicate program and not the pre-existing one.
Is there a way to select the INSTANCE of a proton program launched instead of having separate wineservers execute?
For example this is what I have so far, it only works for firefox because chrome has not link handler anymore (so nxm:// etc does not work).
This works before anyone jumps up and down, the problem here is it opens a new instance of Mod organizer 2 instead of opening in the preexisting instance I already started via proton. I can't figure out whats going wrong.
MO2 via steam uses Proton-4.19-GE-1 and the prefix defined above. The above NXM script also uses those same things, but is opened as a separate instance!
At present I'm thinking of ditching steam in this process and using Lutris, the only problem with this is I believe it will want to execute its own instance of steam program which is what I'm trying to avoid.