You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-26Lines changed: 26 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# ULWGL
1
+
# umu
2
2
Unified Linux Wine Game Launcher
3
3
4
4
@@ -24,23 +24,23 @@ The first part `/home/tcrider/.local/share/Steam/steamapps/common/SteamLinuxRunt
24
24
25
25
The second part `_v2-entry-point` is just a bash script which loads proton into the container and runs the game.
26
26
27
-
So, ULWGL is basically a copy paste of SteamLinuxRuntime_sniper, which is a compiled version of steam-runtime-tools. We've renamed _v2-entry-point to ULWGL and added `ulwgl-run` to replace steam-launch-wrapper.
27
+
So, umu is basically a copy paste of SteamLinuxRuntime_sniper, which is a compiled version of steam-runtime-tools. We've renamed _v2-entry-point to umu and added `umu-run` to replace steam-launch-wrapper.
28
28
29
-
When you use `ulwgl-run` to run a game, it uses the specified WINEPREFIX, proton version, executable, and arguements passed to it to run the game in proton, inside steam's runtime container JUST like if you were running the game through Steam, except now you're no longer limited to Steam's game library or forced to add the game to Steam's library, in fact, you don't even have to have steam installed.
29
+
When you use `umu-run` to run a game, it uses the specified WINEPREFIX, proton version, executable, and arguements passed to it to run the game in proton, inside steam's runtime container JUST like if you were running the game through Steam, except now you're no longer limited to Steam's game library or forced to add the game to Steam's library, in fact, you don't even have to have steam installed.
# WHAT DOES THIS MEAN FOR OTHER LAUNCHERS (lutris/bottles/heroic/legendary,etc):
46
46
@@ -51,30 +51,30 @@ Optional (used mainly for protonfixes): `STORE`
51
51
52
52
right now protonfixes packages a folder of 'gamefixes' however it could likely be recoded to pull from online quite easily
53
53
54
-
The idea is to get all of these tools using this same `ulwgl-run` and just feeding their envvars into it. That way any changes that need to happen can happen in proton-ge and/or protonfixes, or a 'unified proton' build based off GE, or whatever they want.
54
+
The idea is to get all of these tools using this same `umu-run` and just feeding their envvars into it. That way any changes that need to happen can happen in proton-ge and/or protonfixes, or a 'unified proton' build based off GE, or whatever they want.
55
55
56
56
# WHAT IS THE BASIC PLAN OF PUTTING THIS INTO ACTION?
57
57
58
-
1. We build a database containing various game titles, their IDs from different stores, and their correlating ULWGL ID.
59
-
2. Various launchers then search the database to pull the ULWGL ID, and feed it as the game ID to ulwgl-run alongside the store type, proton version, wine prefix, game executable, and launch arguements.
60
-
3. When the game gets launched from ulwgl-run, protonfixes picks up the store type and ULWGL ID and finds the appropriate fix script for it, then applies it before running the game.
61
-
4. protonfixes has folders separated for each store type. The ULWGL ID for a game remains the exact same across multiple stores, the only difference being it can have store specific scripts OR it can just symlink to another existing script that already has the fixes it needs.
58
+
1. We build a database containing various game titles, their IDs from different stores, and their correlating umu ID.
59
+
2. Various launchers then search the database to pull the umu ID, and feed it as the game ID to umu-run alongside the store type, proton version, wine prefix, game executable, and launch arguements.
60
+
3. When the game gets launched from umu-run, protonfixes picks up the store type and umu ID and finds the appropriate fix script for it, then applies it before running the game.
61
+
4. protonfixes has folders separated for each store type. The umu ID for a game remains the exact same across multiple stores, the only difference being it can have store specific scripts OR it can just symlink to another existing script that already has the fixes it needs.
62
62
63
63
Example:
64
64
65
65
Borderlands 3 from EGS store.
66
66
1. Generally a launcher is going to know which store it is using already, so that is easy enough to determine and feed the STORE variable to the launcher.
67
-
2. To determine the game title, EGS has various codenames such as 'Catnip'. The launcher would see "ok store is egs and codename is Catnip, let's search the ULWGL database for those"
68
-
3. In our ULWGL unified database, we create a 'title' column, 'store' column, 'codename' column, 'ULWGL-ID' column. We add a line for Borderlands 3 and fill in the details for each column.
69
-
4. Now the launcher can search 'Catnip' and 'egs' as the codename and store in the database and correlate it with Borderlands 3 and ULWGL-12345. It can then feed ULWGL-12345 to the ulwgl-run script.
67
+
2. To determine the game title, EGS has various codenames such as 'Catnip'. The launcher would see "ok store is egs and codename is Catnip, let's search the umu database for those"
68
+
3. In our umu unified database, we create a 'title' column, 'store' column, 'codename' column, 'umu-ID' column. We add a line for Borderlands 3 and fill in the details for each column.
69
+
4. Now the launcher can search 'Catnip' and 'egs' as the codename and store in the database and correlate it with Borderlands 3 and umu-12345. It can then feed umu-12345 to the umu-run script.
70
70
71
71
72
72
# Building and packaging:
73
-
Building ULWGL currently requires `bash`, `make`, `meson` and `scdoc`
73
+
Building umu currently requires `bash`, `make`, `meson` and `scdoc`
74
74
75
-
To build ULWGL, after downloading and extracting the source code from this repository, change into the newly extracted directory
75
+
To build umu, after downloading and extracting the source code from this repository, change into the newly extracted directory
76
76
```shell
77
-
cdULWGL-Launcher
77
+
cdumu-Launcher
78
78
```
79
79
80
80
To configure the installation `PREFIX` (this is not related to wine's `WINEPREFIX`) use the `configure.sh` script
@@ -86,40 +86,40 @@ Change the `--prefix` as fit for your distribution, for example `/usr/local`, or
86
86
Then run `make` to build. After a successful build the resulting files should be available in the `./builddir` directory
87
87
88
88
## Installing
89
-
To install ULWGL run the following command after completing the steps described above
89
+
To install umu run the following command after completing the steps described above
90
90
```shell
91
91
make install
92
92
```
93
-
or if you are packaging ULWGL
93
+
or if you are packaging umu
94
94
```shell
95
95
make DESTDIR=<packaging_directory> install
96
96
```
97
97
98
98
## Installing as user
99
-
If you want to install ULWGL just for your user, or for quickly testing, you can configure ULWGL with the following command
99
+
If you want to install umu just for your user, or for quickly testing, you can configure umu with the following command
100
100
```shell
101
101
./configure.sh --user-install
102
102
```
103
103
followed by
104
104
```shell
105
105
make install
106
106
```
107
-
This will install ULWGL under `~/.local/share/ulwgl` and place the executable in `~/.local/bin`
108
-
You will need to add `$HOME/.local/bin` in your `$PATH` to be able to run ULWGL this way by exporting the path in your shell's configuration, for example `~/.bash_profile`
107
+
This will install umu under `~/.local/share/umu` and place the executable in `~/.local/bin`
108
+
You will need to add `$HOME/.local/bin` in your `$PATH` to be able to run umu this way by exporting the path in your shell's configuration, for example `~/.bash_profile`
109
109
```shell
110
110
export PATH="$HOME/.local/bin:$PATH"
111
111
```
112
112
113
113
114
114
# Usage notes:
115
115
116
-
When /usr/bin/ulwgl-run is first run, it will copy the /usr/share/ULWGL folder to ~/.local/share/ULWGL. From that point on the ~/.local/share/ULWGL folder will be used for running ulwgl. It will also perform a version check to make sure that if the contents of /usr/share/ULWGL are updated, that the local version also gets updated.
116
+
When /usr/bin/umu-run is first run, it will copy the /usr/share/umu folder to ~/.local/share/umu. From that point on the ~/.local/share/umu folder will be used for running umu. It will also perform a version check to make sure that if the contents of /usr/share/umu are updated, that the local version also gets updated.
117
117
118
-
When /usr/bin/ulwgl-run is first run, it also copies /usr/share/ULWGL/ULWGL-Runner to ~/.local/share/steam/compatibilitytools.d/ so that it can be used as a compatibility tool in steam for non-steam games the same way Proton is.
118
+
When /usr/bin/umu-run is first run, it also copies /usr/share/umu/umu-Runner to ~/.local/share/steam/compatibilitytools.d/ so that it can be used as a compatibility tool in steam for non-steam games the same way Proton is.
119
119
120
-
When /usr/bin/ulwgl-run is run, if a PROTONPATH is not specified, it will automatically download and use ULWGL-Proton and place it at ~/.local/share/steam/compatibilitytools.d/
120
+
When /usr/bin/umu-run is run, if a PROTONPATH is not specified, it will automatically download and use umu-Proton and place it at ~/.local/share/steam/compatibilitytools.d/
121
121
122
-
When /usr/bin/ulwgl-run is run, if a WINEPREFIX is not specified, it will automatically create one using the ulwgl-id at ~/Games/ULWGL/<ulwgl-id>
122
+
When /usr/bin/umu-run is run, if a WINEPREFIX is not specified, it will automatically create one using the umu-id at ~/Games/umu/<umu-id>
0 commit comments