1
Fork 0
mirror of https://github.com/redstrate/LauncherTweaks.git synced 2025-05-20 17:37:46 +00:00
launchertweaks/README.md
Joshua Goins 7cc86c38b0 Add feature to force WinHTTP traffic to the system proxy
This is useful for sniffing non-web browser launcher traffic that goes
through WinHTTP. Thanks to NotNite for the initial hooking code.

Also when no launcher URL is configured, it should fall back to the
official URL now.
2025-04-20 11:43:19 -04:00

67 lines
2.3 KiB
Markdown

# LauncherTweaks
Tweaks for the official FFXIV launcher.
## Features
* Allows configuring the launcher URL, enabling you to write custom launcher pages.
* Force the launcher/boot executable to use the system proxy. (The web browser portions of the launcher already use the system proxy.)
## Usage
Grab a build from [GitHub Actions](https://github.com/redstrate/LauncherTweaks/actions) or build the project with the instructions below. Then, place the `version.dll` next to the launcher.
To configure the launcher URL, place a `launchertweaks.toml` next to the launcher executable:
```toml
# Must be able to serve a index.html or else the launcher 404s:
launcher_url = "https://launcher.mysite.localhost/"
```
### macOS/Linux
Wine will prefer it's own `version.dll` by default, but you can change it the configuration (`winecfg`). Applications like [Bottles](https://usebottles.com/) have dedicated settings for this too.
## Building
We require Nightly to build, but `rust-toolchain.toml` should prefer it by default.
## macOS/Linux
It's possible to build this project outside of Windows. Ensure that you have and build with the correct target (`x86_64-pc-windows-gnu`):
```shell
rustup target add x86_64-pc-windows-gnu
```
If you encounter an error message like:
```shell
error occurred in cc-rs: failed to find tool "x86_64-w64-mingw32-gcc": No such file or directory (os error 2)
```
Then you need to install the MinGW toolchain, as one of our dependencies has to compile C code.
## Tips & Tricks
### Launcher Functions
Here are some interesting native functions that are callable from JavaScript. To call these, use `window.external.user`.
* `systemConfig`: Opens the system config program.
* `requestExit`: Despite the name, exits the launcher immediately.
* `requestReboot`: Exits the launcher immediately, doesn't seem to come back though?
### Logging Proxy
You can use the `winhttp_proxy` config option to sniff the non-web browser traffic from the launcher. You need a HTTP proxy capable of logging of course, I personally use [mitmproxy](https://mitmproxy.org).
## Credits
Initially based off of [NotNite](https://github.com/NotNite)'s [benchtweaks](https://github.com/NotNite/benchtweaks/) and also inspiration for the name!
## License
![GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png)
This project is licensed under the GNU General Public License 3.