Cities: Skylines II

Cities: Skylines II

Not enough ratings
How to skip Paradox Launcher on Linux
By Outfrost
This is how to go straight from Steam to playing the game in one simple step
   
Award
Favorite
Favorited
Unfavorite
The trick
The usual method of skipping the Paradox Launcher we know from Cities: Skylines 1 and other Paradox games - putting "<path to executable> %command%" in the launch options - doesn't work with Proton.

You can use this command instead:
eval $( echo "%command%" | sed -E "s#Launcher/dowser.exe#Cities2.exe#g" )

How?
1. Right click Cities: Skylines 2 in your Steam library, and select Properties
2. In the "General" section, at the bottom, under "Launch Options", paste the aforementioned command
3. Hit Play!
How it works
When Steam runs a game using Proton, the compatibility layer commands become part of the game's command line. For me, it looks something like this:
/home/outfrost/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=949230 -- /home/outfrost/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/outfrost/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun -- '/storage/warehouse/outfrost/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/storage/warehouse/outfrost/Steam/steamapps/common/Cities Skylines II/Launcher/dowser.exe'

We can't just replace the whole command with the path to the game, since that won't invoke Proton properly.

Instead, we take the whole command line text (%command%), and filter it through sed to replace "Launcher/dowser.exe" with "Cities2.exe" in the command line text. Then, we use eval to execute the resulting text as a command.

The command Steam ends up running, on my machine, looks something like this:
/home/outfrost/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=949230 -- /home/outfrost/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/outfrost/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun -- '/storage/warehouse/outfrost/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/storage/warehouse/outfrost/Steam/steamapps/common/Cities Skylines II/Cities2.exe'

If you want to see what your full command looks like, you can change the launch options to:
eval $( echo "%command%" | sed -E "s#Launcher/dowser.exe#Cities2.exe#g" | tee ~/cities2_cmd.txt )
and then open the file cities2_cmd.txt in your home directory.
Acknowledgement
Shoutout to this guide about bypassing the 2K launcher for Civ 6 and the ProtonDB community for the idea to use 'eval' and text replacement.
1 Comments
LondoSpark 11 Nov, 2023 @ 7:52pm 
Just to let you know that `eval $( echo "%command%" | sed -E "s#Launcher/dowser.exe#Cities2.exe#g" ) -developerMode` works well and launches the game in developer mode.