--- /dev/null
+ GETTING STEAM OVERLAY TO WORK WITH LUTRIS WINE GAMES (AKA. EASY \r
+ STEAM CONTROLLER FOR OVERWATCH) \r
+\r
+ [linux_gaming] 2018-10-09_11-00\r
+\r
+ o Reference: 2018-10-09_11-00_Getting_Steam_Overlay_t\r
+ o News link: https://www.reddit.com/r/linux_gaming/comments/9lcoly/getting_steam_overlay_to_work_with_lutris_wine/\r
+ o Source link: \r
+\r
+\r
+ So, after wasting countless hours unsuccessfully seeking for a\r
+ way to execute Lutris Wine games with a Steam Overlay (as I\r
+ was able to do with PlayOnLinux runners a long time ago) I\r
+ finally got it working today after finding [1]this post .\r
+ Following is the procedure using Overwatch as an example\r
+ (assuming you have it already installed through Lutris).\r
+ \r
+ First run lutris -d lutris:rungame/overwatch in a terminal,\r
+ then exit the game asap and check the log trail. You'll need\r
+ retrieve a log like this (note this is only a partial stub):\r
+ ...\r
+ \r
+ INFO 2018-10-04 09:29:46,005 [dxvk]:Replacing\r
+ /home/qchto/games/lutris/overwatch/drive_c/windows/syswow64/d3-\r
+ d10_1 with DXVK version\r
+ \r
+ INFO 2018-10-04 09:29:46,006 [dxvk]:Replacing\r
+ /home/qchto/games/lutris/overwatch/drive_c/windows/syswow64/d3-\r
+ d10 with DXVK version\r
+ \r
+ DEBUG 2018-10-04 09:29:46,071 [game]:Launching Overwatch:\r
+ {'env': {'DXVK_CONFIG_FILE':\r
+ '/home/qchto/games/lutris/overwatch/dxvk.conf', 'DXVK_HUD':\r
+ '0', 'DXVK_STATE_CACHE_PATH':\r
+ '/home/qchto/games/lutris/overwatch', '__GL_SHADER_DISK_CACHE':\r
+ '1', '__GL_SHADER_DISK_CACHE_PATH':\r
+ '/home/qchto/games/lutris/overwatch', '__GL_SHADER_DISK_CACHE_-\r
+ SKIP_CLEANUP': '1', 'DRI_PRIME': '0', 'STEAM_RUNTIME':\r
+ '/home/qchto/.local/share/lutris/runtime/steam', 'LD_LIBRARY_P-\r
+ ATH': '/home/qchto/.local/share/lutris/runners/wine/staging-3.-\r
+ 17-x86_64/lib:/home/qchto/.local/share/lutris/runners/wine/sta-\r
+ ging-3.17-x86_64/lib64:/usr/lib:/usr/lib32:/lib/x86_64-linux-g-\r
+ nu:/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-\r
+ linux-gnu:/home/qchto/.local/share/lutris/runtime/lib32:/home/-\r
+ qchto/.local/share/lutris/runtime/steam/i386/lib/i386-linux-gn-\r
+ u:/home/qchto/.local/share/lutris/runtime/steam/i386/lib:/home-\r
+ /qchto/.local/share/lutris/runtime/steam/i386/usr/lib/i386-lin-\r
+ ux-gnu:/home/qchto/.local/share/lutris/runtime/steam/i386/usr/-\r
+ lib:/home/qchto/.local/share/lutris/runtime/lib64:/home/qchto/-\r
+ .local/share/lutris/runtime/steam/amd64/lib/x86_64-linux-gnu:/-\r
+ home/qchto/.local/share/lutris/runtime/steam/amd64/lib:/home/q-\r
+ chto/.local/share/lutris/runtime/steam/amd64/usr/lib/x86_64-li-\r
+ nux-gnu:/home/qchto/.local/share/lutris/runtime/steam/amd64/us-\r
+ r/lib:$LD_LIBRARY_PATH', 'WINEDEBUG': '-all', 'WINEARCH':\r
+ 'win64', 'WINE':\r
+ '/home/qchto/.local/share/lutris/runners/wine/staging-3.17-x86-\r
+ _64/bin/wine', 'WINEPREFIX':\r
+ '/home/qchto/games/lutris/overwatch', 'WINEDLLOVERRIDES':\r
+ 'd3d10,d3d10_1,d3d10core,d3d11,dxgi=n'}, 'command':\r
+ ['/home/qchto/.local/share/lutris/runners/wine/staging-3.17-x8-\r
+ 6_64/bin/wine', '/home/qchto/games/lutris/overwatch/drive_c/Pr-\r
+ ogram Files (x86)/Battle.net/Battle.net Launcher.exe']}\r
+ \r
+ DEBUG 2018-10-04 09:29:46,072 [thread]:Command env:\r
+ SDL_VIDEO_FULLSCREEN_DISPLAY="off" DXVK_CONFIG_FILE="/home/qch-\r
+ to/games/lutris/overwatch/dxvk.conf" DXVK_HUD="0"\r
+ DXVK_STATE_CACHE_PATH="/home/qchto/games/lutris/overwatch" __G-\r
+ L_SHADER_DISK_CACHE="1" __GL_SHADER_DISK_CACHE_PATH="/home/qch-\r
+ to/games/lutris/overwatch" __GL_SHADER_DISK_CACHE_SKIP_CLEANUP-\r
+ ="1" DRI_PRIME="0"\r
+ STEAM_RUNTIME="/home/qchto/.local/share/lutris/runtime/steam"\r
+ LD_LIBRARY_PATH="/home/qchto/.local/share/lutris/runners/wine/-\r
+ staging-3.17-x86_64/lib:/home/qchto/.local/share/lutris/runner-\r
+ s/wine/staging-3.17-x86_64/lib64:/usr/lib:/usr/lib32:/lib/x86_-\r
+ 64-linux-gnu:/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/us-\r
+ r/lib/i386-linux-gnu:/home/qchto/.local/share/lutris/runtime/l-\r
+ ib32:/home/qchto/.local/share/lutris/runtime/steam/i386/lib/i3-\r
+ 86-linux-gnu:/home/qchto/.local/share/lutris/runtime/steam/i38-\r
+ 6/lib:/home/qchto/.local/share/lutris/runtime/steam/i386/usr/l-\r
+ ib/i386-linux-gnu:/home/qchto/.local/share/lutris/runtime/stea-\r
+ m/i386/usr/lib:/home/qchto/.local/share/lutris/runtime/lib64:/-\r
+ home/qchto/.local/share/lutris/runtime/steam/amd64/lib/x86_64-\r
+ linux-gnu:/home/qchto/.local/share/lutris/runtime/steam/amd64/-\r
+ lib:/home/qchto/.local/share/lutris/runtime/steam/amd64/usr/li-\r
+ b/x86_64-linux-gnu:/home/qchto/.local/share/lutris/runtime/ste-\r
+ am/amd64/usr/lib:$LD_LIBRARY_PATH" WINEDEBUG="-all"\r
+ WINEARCH="win64" WINE="/home/qchto/.local/share/lutris/runners-\r
+ /wine/staging-3.17-x86_64/bin/wine" WINEPREFIX="/home/qchto/ga-\r
+ mes/lutris/overwatch" WINEDLLOVERRIDES="d3d10,d3d10_1,d3d10cor-\r
+ e,d3d11,dxgi=n"\r
+ \r
+ DEBUG 2018-10-04 09:29:46,073 [thread]:Running command:\r
+ "/home/qchto/.local/share/lutris/runners/wine/staging-3.17-x86-\r
+ _64/bin/wine" "/home/qchto/games/lutris/overwatch/drive_c/Prog-\r
+ ram Files (x86)/Battle.net/Battle.net Launcher.exe"\r
+ \r
+ DEBUG 2018-10-04 09:29:46,073 [thread]:Storing environment\r
+ variable SDL_VIDEO_FULLSCREEN_DISPLAY to off\r
+ \r
+ DEBUG 2018-10-04 09:29:46,073 [thread]:Storing environment\r
+ variable DXVK_CONFIG_FILE to\r
+ /home/qchto/games/lutris/overwatch/dxvk.conf\r
+ \r
+ ...\r
+ \r
+ Proceed by copying everything in the line after\r
+ [thread]:Command env: , separate every variable in a line and\r
+ preceed it by an export declaration. Then add the line\r
+ [thread]:Running command: at the end of your script (or even\r
+ better, add them to local variables and then execute it to end\r
+ with a file like this (note that the LUTRIS_WINE and GAME_EXE\r
+ variables are the "Running command" log line, and GAME_EXE can\r
+ be replaced to reference another executable, in this case my\r
+ local Overwatch.exe): #!/bin/bash\r
+ \r
+ # used "lutris -d lutris:rungame/overwatch" to retrieve env\r
+ variables\r
+ \r
+ export SDL_VIDEO_FULLSCREEN_DISPLAY="off"\r
+ \r
+ export DXVK_CONFIG_FILE="/home/qchto/games/lutris/overwatch/dx-\r
+ vk.conf"\r
+ \r
+ export DXVK_HUD="0"\r
+ \r
+ export DXVK_STATE_CACHE_PATH="/home/qchto/games/lutris/overwat-\r
+ ch"\r
+ \r
+ export __GL_SHADER_DISK_CACHE="1"\r
+ \r
+ export __GL_SHADER_DISK_CACHE_PATH="/home/qchto/games/lutris/o-\r
+ verwatch"\r
+ \r
+ export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP="1"\r
+ \r
+ export DRI_PRIME="0"\r
+ \r
+ export STEAM_RUNTIME="/home/qchto/.local/share/lutris/runtime/-\r
+ steam"\r
+ \r
+ export LD_LIBRARY_PATH="/home/qchto/.local/share/lutris/runner-\r
+ s/wine/staging-3.17-x86_64/lib:/home/qchto/.local/share/lutris-\r
+ /runners/wine/staging-3.17-x86_64/lib64:/usr/lib:/usr/lib32:/l-\r
+ ib/x86_64-linux-gnu:/lib/i386-linux-gnu:/usr/lib/x86_64-linux-\r
+ gnu:/usr/lib/i386-linux-gnu:/home/qchto/.local/share/lutris/ru-\r
+ ntime/lib32:/home/qchto/.local/share/lutris/runtime/steam/i386-\r
+ /lib/i386-linux-gnu:/home/qchto/.local/share/lutris/runtime/st-\r
+ eam/i386/lib:/home/qchto/.local/share/lutris/runtime/steam/i38-\r
+ 6/usr/lib/i386-linux-gnu:/home/qchto/.local/share/lutris/runti-\r
+ me/steam/i386/usr/lib:/home/qchto/.local/share/lutris/runtime/-\r
+ lib64:/home/qchto/.local/share/lutris/runtime/steam/amd64/lib/-\r
+ x86_64-linux-gnu:/home/qchto/.local/share/lutris/runtime/steam-\r
+ /amd64/lib:/home/qchto/.local/share/lutris/runtime/steam/amd64-\r
+ /usr/lib/x86_64-linux-gnu:/home/qchto/.local/share/lutris/runt-\r
+ ime/steam/amd64/usr/lib:$LD_LIBRARY_PATH"\r
+ \r
+ export WINEDEBUG="-all"\r
+ \r
+ export WINEARCH="win64"\r
+ \r
+ export WINE="/home/qchto/.local/share/lutris/runners/wine/stag-\r
+ ing-3.17-x86_64/bin/wine"\r
+ \r
+ export WINEPREFIX="/home/qchto/games/lutris/overwatch"\r
+ \r
+ export WINEDLLOVERRIDES="d3d10,d3d10_1,d3d10core,d3d11,dxgi=n"\r
+ \r
+ LUTRIS_WINE="/home/qchto/.local/share/lutris/runners/wine/stag-\r
+ ing-3.17-x86_64/bin/wine"\r
+ \r
+ GAME_EXE="/home/qchto/games/cache/data/battlenet/Overwatch/Ove-\r
+ rwatch.exe"\r
+ \r
+ "$LUTRIS_WINE" "$GAME_EXE"\r
+ \r
+ Save this file wherever you like (e.g.\r
+ /home/qchto/games/launchers/overwatch.sh ), give it execution\r
+ permission (e.g. chmod +x\r
+ /home/qchto/games/launchers/overwatch.sh ). Now you should be\r
+ able to execute it in order to test it (e.g.\r
+ ./home/qchto/games/launchers/overwatch.sh ).\r
+ \r
+ Finally, open Steam, add this script as a non-steam game\r
+ shortcut (make sure to select "All files" in the file selector\r
+ for the .sh files to appear), and it's done. You can now\r
+ execute this shortcut and get the Steam Overlay (even in Big\r
+ Picture with Steam Controller custom controller mappings)\r
+ working and ready to go.\r
+ \r
+ As mentioned, this procedure should also work for any other\r
+ Lutris Wine game (although be warned that some specific\r
+ problems may arise depending on wine configuration). I have\r
+ personally tested it not only with Overwatch but also with\r
+ StarCraft II and it work perfectly on both.\r
+ \r
+ Hope you find this helpful!\r
+ \r
+ \r
+ \r
+ [1] https://forums.lutris.net/t/how-to-run-games-from-commandl-\r
+ ine-from-winesteam/95/5\r
+\r
+\r
+ ** klinch3R\r
+ Nice effort\r
+\r
+ ** qchto\r
+ Thanks. It's just that figuring out this took me far longer\r
+ that I expected it would, so if someone is looking into\r
+ achieving this luckily he/she will be able to just find this\r
+ post, so imo any effort put is worth to be reported.\r
+\r
+\r
+ ** UrbanFlash\r
+ Maybe i'm missing something, but i don't see the advantage over\r
+ just adding the launcher Lutris creates as non-Steam game. Works\r
+ well enough with Heroes of the Storm here...\r
+\r
+ ** qchto\r
+ For once, the autogenerated launchers does not save\r
+ environmental variables, so for games like Overwatch that\r
+ require them (for things like DXVK) it doesn't even launch\r
+ the game. And just to clear things up, using a .sh script\r
+ with lutris lutris:rungame/overwatch makes the app not report\r
+ properly for the Steam overlay to be recognized.\r
+ So by this method you're ensuring you're running the same\r
+ wine environment launched by Lutris without depending on it\r
+ to manage the process, therefore allowing for the Steam\r
+ overlay to properly load.\r
+\r
+ ** UrbanFlash\r
+ DKVK works fine for me. I notice no difference between\r
+ launching the game from within Lutris, via the launcher in\r
+ the menu or via the link in Steam.\r
+\r
+ ** qchto\r
+ Do you have DXVK installed at system level? Having its\r
+ variables exported to your session? Because after\r
+ checking a couple .desktop files generated by Lutris\r
+ (which tbh I was not even aware were created, as i3\r
+ makes a desktop seems redundant) I still don't see any\r
+ declaration other than the WINE prefix, and none of\r
+ them even launch the application they refer (tested for\r
+ Overwatch and Battle.net automatically generated\r
+ launchers).\r
+\r
+ ** UrbanFlash\r
+ I don't have DXVK installed outside of Lutris and\r
+ have done nothing apart from the things necessary to\r
+ get the Blizzard app running.\r
+\r
+\r
+\r
+\r
+\r
+ ** shmerl\r
+ Better figure out how to do it without Steam. That's the right\r
+ method.\r
+\r
+ ** qchto\r
+ While I agree, to provide some background on why I went this\r
+ route:\r
+ \r
+ I spent a lot of time trying to configure sc-controller to\r
+ emulate a xbox-controller with gyro controlled right stick\r
+ but it simply wouldn't allow for a duplicated RStick binding\r
+ for the Steam Controller in both the right touchpad and the\r
+ gyro (unlike Steam Overlay that does).\r
+ \r
+ Even when I gave up on this and finally tried to test\r
+ sc-controller in-game for Overwatch, it kept showing an\r
+ erratic behavior with the game loaded (still not sure why,\r
+ but when I tried to use the SC left tocuhpad it randomly\r
+ started sending other outputs that made the game unplayable\r
+ with it).\r
+ \r
+ The Steam Overlay provide much more that just the ability to\r
+ use the Steam Controller with decent xinput bindings, but\r
+ also other features like ease to control the game with only a\r
+ controller (for example allowing to exit the game if\r
+ soft-locked without having to use kb&m), change the\r
+ Controller configuration on the fly more easily (without\r
+ depending on kb&m) and even have a more streamlined\r
+ experience by using features like the Steam Chord button and\r
+ Steam enabled screenshots, for example.\r
+ So it's not that I didn't tried to not use Steam..\r
+\r
+ ** shmerl\r
+ Yeah, I agree sc-controller can still benefit from some\r
+ improvements. It's still not using upstream kernel driver\r
+ for instance.\r
+\r
+ ** qchto\r
+ Gotta admit though, it's great to have alternatives\r
+ available.\r
+\r
+ ** shmerl\r
+ For sure, especially for those who aren't using\r
+ Steam to begin with.\r
+\r
+\r
+\r
+\r
+\r
+ ** Brunfunstudios\r
+ Nice work. Would be kinda nice to have a right click option just\r
+ saying add_to_Steam and this being handled in the background. :)\r
+ Just an idea\r
+\r
+ ** Razdiel\r
+ Since you gave it a try why not post benchmarks or general\r
+ feedback about it? was it worth it running it with proton?\r
+ GJ btw the linux comunity salutes you brave soldier!\r
+\r
+\r