goatcorp / FFXIVQuickLauncher

Custom launcher for FFXIV
https://goatcorp.github.io/
GNU General Public License v3.0
2.75k stars 327 forks source link

[Feature request] Allow Steam-style "%command%" placeholder in Additional Arguments #1106

Open FireyFly opened 2 years ago

FireyFly commented 2 years ago

Update disclaimer

What happened, what did not, what did you want to happen?

Sometimes it's desirable to launch the game via a wrapper application instead of directly running wine on the game executable inside the wineprefix. For instance, there's a bunch of issues (see e.g. this reddit thread) with running ffxiv under Wayland that reportedly can be resolved by running the game under gamescope. Historically, being able to launch with a wrapper has also been useful for running games on a discrete GPU on systems with nvidia optimus.

The examples seen in the reddit thread and gamescope README for Steam configuration indicate it allows for prefixing the command the launcher runs, so you can specify a wrapper tool or script, e.g. gamescope -w 1920 -h 1080 -b -- %command%.

It'd be nice to add support to this for the Additional Arguments field in the launcher as well. From what I could tell from a quick glance trying it + checking the source, it doesn't seem to already be the case.

Version

Native/Core version (Linux)

Platform

Linux (native)

michaelbutler commented 2 years ago

i think having a feature like this would negate the need to change the source code like i had to do here https://github.com/goatcorp/FFXIVQuickLauncher/pull/1117 so I'm all for it!

one tricky part though is that XIVLauncher actually executes 2-4 commands with wine64, so would you want those extra prefixes to run on those too? maybe, maybe not. maybe just the last one that launches FFXIV.

yaomtc commented 2 years ago

I've experienced that issue myself with Plasma+Wayland for a long time. I finally got around to reporting it the other day: https://bugs.kde.org/show_bug.cgi?id=458233

Ever since learning that Gamescope isn't affected by that issue, I've been running FFXIV via Gamescope... but I'm not sure how to do that now with xivlauncher. Would I need to create a shell script?

EDIT: This may be related? Not sure. https://github.com/flathub/com.valvesoftware.Steam.Utility.gamescope/issues/7

EDIT2: With Arch and xivlauncher-git, the solution below worked for me.

michaelbutler commented 1 year ago

@yaomtc I've been running XIVLauncher with gamescope, it's pretty simple. You just set the Steam run command to:

XL_SECRET_PROVIDER=FILE gamescope -w 3440 -h 1440 -W 3440 -H 1440 -f -- %command%

where "Target" is defined as XIVLauncher.Core. Modify width/height parameters as needed. I confirmed that when doing this, XIVLauncher as well as the FFXIV exe process itself all run in the gamescope session.

perroboc commented 1 year ago

Just chiming in because I was looking for this particular config in XIVLauncher.

Since Steam Deck runs gamescope by default, both XIVLauncher and FFXIV run using gamescope. This can be achieved in Desktop Linux by launching XIVLauncher using gamescope as seen in the previous comment.

It would be really useful to launch FFXIV using gamescope, or any other wrapper for that matter, by configuring the launch options in XIVLauncher.

As a use case: In desktop, it's useful to hace the launcher windowed and the game full screen. This is not directly possible using gamescope from XIVLauncher, as you can only configure gamescope once, and it's either everything full screen or windowed. Also, the clipboard is not directly usable with gamescope, so OTP copy/pasting doesn't work.

reiichi001 commented 1 year ago

Just want to point out the the args feature inside of XIVLauncher is part of the encrypted arguments used for FFXIV.

That is probably not where you'd want to send that information. It's provided for advanced users and internally, it's used to override the game config path.

This would be better solved with a Unix args style setting unique to XIVLauncher.Core.

perroboc commented 1 year ago

This would be better solved with a Unix args style setting unique to XIVLauncher.Core.

For sure! I would be happy to have it as an optional argument in the command line when launching XIVLauncher

robindegen commented 5 months ago

Even better would be a tick box to specifically use gamescope. I think that would be the main use here; and it seems to be quite common to use this outside of steamdeck

thiphariel commented 2 months ago

@yaomtc I've been running XIVLauncher with gamescope, it's pretty simple. You just set the Steam run command to:

XL_SECRET_PROVIDER=FILE gamescope -w 3440 -h 1440 -W 3440 -H 1440 -f -- %command%

where "Target" is defined as XIVLauncher.Core. Modify width/height parameters as needed. I confirmed that when doing this, XIVLauncher as well as the FFXIV exe process itself all run in the gamescope session.

Hi there.

Sorry to bother but I also try to use xivlauncher as my way of running the game but I also want to try running it into gamescope, without success. Could you give a bit more of explanation of how you managed to do it? Thank you!

EDIT : Ok I think I got it, but yea, I also have that TOTP issue, where I can't really copy paste the code inside it.. If someone has a workaround, I'll take it