diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 70f867fa..c74a1516 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -44,7 +44,7 @@ jobs:
- name: Build documentation
env:
- REPO_URL: https://github.com/${{ github.repository }}/
+ REPO_URL: https://github.com/${{ github.repository }}
SITE_URL: ${{ steps.configure-pages.outputs.base_url }}
run: |
cd doc
diff --git a/doc/docs/index.md b/doc/docs/index.md
index 06c76857..6be2014b 100644
--- a/doc/docs/index.md
+++ b/doc/docs/index.md
@@ -11,24 +11,15 @@
## Download the latest release [Here]({{ config.repo_url }}/releases/).
-
## Thank you <3:
-[djsigmann](https://github.com/djsigmann) for help with AUR packaging, documentation, and other misc development.
-
-[akuji](https://gamebanana.com/members/2017711) for being a huge help with discord support, documentation, and misc development.
-
-[Feathers](https://github.com/FeathersTheChick) for help with documentation.
-
-[Allen Scott](https://gamebanana.com/members/1242417) for the original logo.
-
-[THE GOAT](https://gamebanana.com/members/2133251) This person made the [square_series](https://gamebanana.com/mods/435309) preset.
-
-[Skeleton Hotel](https://gamebanana.com/members/1414545).
-
-[Taxicat](https://gamebanana.com/members/1333549) and [Qorange](https://gamebanana.com/members/2060075) for the [transparent_flamethrower](https://gamebanana.com/mods/348622).
-
-[Ashe_tf](https://gamebanana.com/members/1932153) for fixing the [medicgun_beam](https://gamebanana.com/mods/437447).
-
-[SonOfDiscordiA](https://gamebanana.com/members/2670597) for the [short_circuit](https://gamebanana.com/mods/446897).
-
-[agrastiOs](https://github.com/agrastiOs) for the [UltimateVisualFixPack](https://github.com/agrastiOs/Ultimate-TF2-Visual-Fix-Pack).
+[djsigmann](https://github.com/djsigmann) for help with AUR packaging, providing linux-specific support, documentation, CI/CD, and other misc development.
+[akuji](https://gamebanana.com/members/2017711) for being a huge help with discord support, documentation, and misc development.
+[Feathers](https://github.com/FeathersTheChick) for help with documentation and the logo.
+[Memer](https://github.com/MemerOnYT) for help with testing.
+[Allen Scott](https://gamebanana.com/members/1242417) for the original logo.
+[THE GOAT](https://gamebanana.com/members/2133251) This person made the [square_series](https://gamebanana.com/mods/435309) preset.
+[Skeleton Hotel](https://gamebanana.com/members/1414545).
+[Taxicat](https://gamebanana.com/members/1333549) and [Qorange](https://gamebanana.com/members/2060075) for the [transparent_flamethrower](https://gamebanana.com/mods/348622).
+[Ashe_tf](https://gamebanana.com/members/1932153) for fixing the [medicgun_beam](https://gamebanana.com/mods/437447).
+[SonOfDiscordiA](https://gamebanana.com/members/2670597) for the [short_circuit](https://gamebanana.com/mods/446897).
+[agrastiOs](https://github.com/agrastiOs) for the [UltimateVisualFixPack](https://github.com/agrastiOs/Ultimate-TF2-Visual-Fix-Pack).
diff --git a/doc/docs/tutorial.md b/doc/docs/tutorial.md
index 8e925767..1d390a9d 100644
--- a/doc/docs/tutorial.md
+++ b/doc/docs/tutorial.md
@@ -7,15 +7,24 @@ If you need further assistance installing the preloader, or just want to chat, j
If you want a video supplement, please refer to the [**Video Supplement**](#video-supplement) section!
+!!! note
+ MacOS support for Team Fortress 2 was officially dropped in 2024, and hasn't been properly playable since 2019.
+ It is possible to download older depots, or to run the windows build through `wine`/`crossover`, but this requires running an older version of the game and/or prevents users from connecting to VAC-enabled servers (e.g. casual servers).
+ As such, the casual-pre-loader does not support MacOS, and support is not planned.
+
## Windows Tutorial:
### Step 1: Installation
1. **Install the latest version of the preloader from [GitHub]({{ config.repo_url }}/releases) or [Gamebanana]({{ gamebanana_url }}).**
-2. **Once you have the zip file, extract it, and put the folder anywhere you'd like.**
+2. **Once you have the zip file, extract it, and put the folder anywhere you like.**
+
+!!! note
+ Ensure it is not under a Onedrive shared folder or a folder the user does not have write permissions for (e.g. `C:\program files`).
+ Do not put the casual-pre-loader in your game's `custom` folder. It is not a mod, and does not get loaded by the game.
!!! note
- Ensure it is not in a Onedrive shared folder or in your game's `custom` folder.
+ If you're interested in packaging the casual-pre-loader via winget, choco, scoop, or any other windows package manager, please feel free to open a PR!
### Step 2: Adding your mods
@@ -48,35 +57,71 @@ If you want a video supplement, please refer to the [**Video Supplement**](#vide
## Linux Tutorial:
-You can clone the repo, or install it as an [AUR package](https://aur.archlinux.org/packages/casual-pre-loader-git).
+!!! note
+ If you're interested in packaging the casual-pre-loader for your distro, please feel free to open a PR!
+
+### Arch Linux or similar distros
+There is an [AUR package](https://aur.archlinux.org/packages/casual-pre-loader-git). After installing, you can run the program with `casual-pre-loader` or through your launcher.
+
+Settings are stored under `${XDG_CONFIG_HOME}/casual-pre-loader`, defaulting to `~/.config/casual-pre-loader` if `${XDG_CONFIG_HOME}` is unset or empty.
- - Using [yay](https://github.com/Jguer/yay):
+Mod data is stored under `${XDG_DATA_HOME}/casual-pre-loader`, defaulting to `~/.local/share/casual-pre-loader` if `${XDG_DATA_HOME}` is unset or empty.
+
+### Any Linux distro
+Ensure that the following dependencies are installed:
+`python3.12+ python-ensurepip python-venv`
+These may be packaged differently depending on the distro.
+
+!!! note
+ There is an additional optional dependency on `wine`. If it's installed, it is used to run the windows build of `studiomdl` in order to compile MDL files.
+ (This may be unnecessary in the future if [this PR](https://github.com/craftablescience/sourcepp/pull/85)) gets merged.
+ UPDATE: The aforementioned PR hwas been merged, but we still require python bindings to the relevant c++ code.
+
+You can then download and run the program by cloning the repo:
```sh
-yay -S casual-pre-loader-git
-casual-pre-loader
+git clone --recursive https://github.com/cueki/casual-pre-loader
+cd casual-pre-loader
+./scripts/run.sh
```
+The run script helps set up a virtualenv, if you know what you're doing, you could also just skip the run script and install any required python packages globally.
- - Using [paru](https://github.com/Morganamilo/paru):
+The program stores settings and mod data under the `userdata/` directory that is created on program launch.
+If you'd rather store user files in the regular per-user locations (like the AUR package does), you can create an empty `.noportable` file in the project's root folder
```sh
-paru -S casual-pre-loader-git
-casual-pre-loader
+touch .noportable
```
- - Or with git:
+!!! warning
+ Linux users should use `scripts/run.sh` to launch the application. Do **NOT** run `RUNME.bat` under wine.
+
+### Aditional steps for immutable distros (e.g. SteamOS, Bazzite, etc.)
+Since installing packages is quite a hassle on most immutable distros - and usually has some downsides - using something like [`flatpak`](https://flatpak.org/) to install `wine` is recommended.
```sh
-git clone --recursive https://github.com/cueki/casual-pre-loader
-cd casual-pre-loader
+flatpak install "$(flatpak remote-ls flathub --app --columns=ref | grep org.winehq.Wine | grep stable | sort -Vr | head -n1)"
```
-Then run the script whenever you want to use the app:
+However, the wine flatpak requires you to invoke it as `flatpak run org.winehq.Wine`, and since the preloader expects a binary named `wine` to be on the `PATH`, we need to put a small script on the `PATH` that just calls the correct invocation.
+
+User scripts that should be on the `PATH` are typically placed in `${XDG_BIN_HOME}`, which should be `~/.local/bin` by default.
+To add this directory to the `PATH` if it hasn't already:
```sh
-./scripts/run.sh
+echo 'PATH="${PATH+"${PATH}:"}${XDG_BIN_HOME:="${HOME}/.local/bin"}"' >>~/.bash_profile # or `~/.profile`, or wherever else you set envvars
```
-!!! warning
- Linux users should use `scripts/run.sh` to launch the application. Do **NOT** use `RUNME.bat` - that's for Windows only.
+Then we simply create a small wrapper script:
+```sh
+: "${XDG_BIN_HOME:="${HOME}/.local/bin"}"
+mkdir -p "${XDG_BIN_HOME}"
+printf '#!/bin/sh\n\nexec flatpak run org.winehq.Wine "${@}"' >"${XDG_BIN_HOME}/wine"
+chmod +x "${XDG_BIN_HOME}/wine"
+```
+
+!!! note
+ Packaging the preloader as a `flatpak` would render all of this unnecessary, [there is already an open issue](https://github.com/cueki/casual-pre-loader/issues/142).
+
-If you're on Ubuntu, or an Ubuntu-based derivative (such as Mint or PopOS), you may get an error similiar to the following:
+### Additional steps for Ubuntu or derivatives (e.g. Mint, PopOS, etc.)
+You may get an error similiar to the following:
```
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
```
@@ -86,6 +131,4 @@ sudo apt-get install -y libxcb-cursor-dev
```
## Video Supplement:
-
-
-*This will eventually be updated to the most recent version, and have a linux section - Feathers*
+
diff --git a/doc/mkdocs.yml b/doc/mkdocs.yml
index 403e1d2b..d2b49c67 100644
--- a/doc/mkdocs.yml
+++ b/doc/mkdocs.yml
@@ -1,8 +1,8 @@
site_name: Casual-Pre-loader
site_author: Feathers & djsigmann
-repo_url: !ENV [REPO_URL, "https://github.com/cueki/casual-pre-loader/"]
-site_url: !ENV [SITE_URL, "https://cueki.github.io/casual-pre-loader/"]
+repo_url: !ENV [REPO_URL, "https://github.com/cueki/casual-pre-loader"]
+site_url: !ENV [SITE_URL, "https://cueki.github.io/casual-pre-loader"]
nav:
- Home: index.md