Installer vortex-mod-manager-wine
files: - setup: https://github.com/Nexus-Mods/Vortex/releases/download/v1.11.7/vortex-setup-1.11.7.exe game: args: -d exe: drive_c/Program Files/Black Tree Gaming Ltd/Vortex/Vortex.exe install_complete_text: 'Vortex was installed successfully! RECOMMENDED: Use the "Execute script" context menu option to remove unnecessary files added by wine during setup. OPTIONAL: Close Vortex, then Move/Copy your %APPDATA%/Vortex folder from a previous install into the appropriate location. This will launch Vortex with your previous preferences including your nexus account, game extensions, themes, and storage locations. Only attempt this if Vortex launches and closes correctly during installation, you know the correct location, and you want to get adventurous with your file manager. QUESTIONS & ANSWERS: Q: Can I use the Lutris or Steam shortcuts provided by Lutris? A: Yes! Steam will track when Lutris closes. Launching using these methods also appears to track Vortex processes for playtime/up-time more accurately too. Q: How do I add new Steam games to Vortex? A: This installer includes three bash scripts. They can be triggered from within Lutris via the "Execute script" context menu option. vortex-prefix-updater.sh launches the next two scripts and writes their output to the install.log file. vortex-steam-symlinker.sh will update your games list. Newly added steam games will be linked to Vortex. vortex-entry-writer.sh will update your link handler and set it as the default for nxm: links. All scripts can be run outside of Lutris safely by launching them from your file manager or on the command line. Q: Can I move Vortex via its game directory configuration in Lutris? A: Yes, though you should use the updater script immediately after the move to fix the download handler. Q: Where are my files when browsing within Vortex? A: The "Z:" drive points to "/", the root of your filesystem. Q: Can I make changes to the Vortex Lutris configuration? A: DO NOT CHANGE "Prefix Command" or "Manual Script" in the advanced options of the Lutris configuration for Vortex. Gamemode has been tested and does work with Vortex, though is likely unnecessary. All other options are untested and may have no affect on Vortex due to the Prefix Command completely overriding normal command execution. Q: Can I use Symlink Deployment or Move Deployment? A: Only Hardlink Deployment has been tested. Some untested game extensions may automatically select other deployment strategies. See this issue comment for more information: https://github.com/Nexus-Mods/Vortex/issues/9629#issuecomment-1013658187 Q: Vortex is running but Lutris thinks it has stopped? A: Lutris detects the restart of a monitored process as Vortex stopping when a Vortex download link is handled while Vortex is already running. Q: How does the url get to Vortex? A: This installer creates a hidden launcher to handle nxm links for Lutris. Q: Why is the url so slow to open in Vortex? A: The hidden launcher has to open the Lutris sqlite game database twice and write the url to a file before even launching Lutris. Unless Lutris is enhanced to allow passing arguments directly to the executable from the command line instead of only from its configuration file, this will remain the fastest method which integrates with Lutris and Steam. The link handler may speed up when opening subsequent links (as in after the first link). Q: Why not make the scripts strictly sh POSIX compliant? A: I wanted to, and nearly did. However, Bash is provided by the Lutris runtime and required by Steam. Arrays also greatly simplify the symlinker script. Q: Hello I represent the desktop entry escape character parser. A: sed -E -n "122635s/(.*)/\u\1/;122635p;122635x;122635s/^([^\n]+)\n([^\n]+)/\2\n\1/p;72676x;72676H;108137x;108137H;66763x;66763H;2608s/(.*)/\1!/;2608h;" /usr/share/dict/american-english ' installer: - task: app: win10 dotnet48 corefonts description: Installing .NET 4.8 and Corefonts via winetricks name: winetricks prefix: $GAMEDIR - task: description: Adding Steam to the Wine Prefix Registry 1/2 key: SteamPath name: set_regedit path: HKEY_CURRENT_USER\Software\Valve\Steam prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam - task: description: Adding Steam to the Wine Prefix Registry 2/2 key: SteamExe name: set_regedit path: HKEY_CURRENT_USER\Software\Valve\Steam prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\Steam.exe - task: description: Adding DARK SOULS to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\NAMCO BANDAI GAMES\DARK SOULS prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls Prepare to Die Edition - task: description: Adding DARK SOULS to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\211420 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls Prepare to Die Edition - task: description: Adding DARK SOULS REMASTERED to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\570940 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\DARK SOULS REMASTERED - task: description: Adding DARK SOULS II to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\236430 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls II - task: description: Adding DARK SOULS II Scholar of the First Sin to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\335300 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls II Scholar of the First Sin - task: description: Adding DARK SOULS III to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\374320 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\DARK SOULS III - task: description: Adding ELDEN RING to the Wine Prefix Registry 1/2 key: InstallLocation name: set_regedit path: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ELDEN RING_is1 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\ELDEN RING - task: description: Adding ELDEN RING to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\1245620 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\ELDEN RING - task: description: Adding Fallout 3 to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout 3 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 - task: description: Adding Fallout 3 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22300 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 - task: description: Adding Fallout 3 Game of the Year Edition to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout 3 goty prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 goty - task: description: Adding Fallout 3 Game of the Year Edition to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22370 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 goty - task: description: Adding Fallout 4 to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout4 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 - task: description: Adding Fallout 4 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\377160 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 - task: description: Adding Fallout 4 VR to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout 4 VR prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 VR - task: description: Adding Fallout 4 VR to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\611660 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 VR - task: description: Adding Fallout 76 to the Wine Prefix Registry 1/2 key: Path name: set_regedit path: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Fallout 76 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout76 - task: description: Adding Fallout 76 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\1151340 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout76 - task: description: Adding Fallout New Vegas to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\FalloutNV prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout New Vegas - task: description: Adding Fallout New Vegas to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22380 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout New Vegas - task: description: Adding Kerbal Space Program to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\220200 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Kerbal Space Program - task: description: 'Adding MechWarrior 5: Mercenaries to the Wine Prefix Registry 1/1' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\784080 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\MechWarrior 5 Mercenaries - task: description: 'Adding Middle Earth: Shadow of War to the Wine Prefix Registry 1/1' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\356190 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\ShadowOfWar - task: description: 'Adding Monster Hunter: World to the Wine Prefix Registry 1/2' key: InstallLocation name: set_regedit path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 582010 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Monster Hunter World - task: description: 'Adding Monster Hunter: World to the Wine Prefix Registry 2/2' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\582010 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Monster Hunter World - task: description: Adding Morrowind to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Morrowind prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Morrowind - task: description: Adding Morrowind to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22320 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Morrowind - task: description: Adding Oblivion to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\oblivion prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Oblivion - task: description: Adding Oblivion to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22330 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Oblivion - task: description: 'Adding Sekiro: Shadows Die Twice to the Wine Prefix Registry 1/1' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\814380 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Sekiro - task: description: Adding Skyrim to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Skyrim prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim - task: description: Adding Skyrim to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\72850 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim - task: description: Adding Skyrim Special Edition to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Skyrim Special Edition prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim Special Edition - task: description: Adding Skyrim Special Edition to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\489830 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim Special Edition - task: description: Adding Skyrim VR to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Skyrim VR prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\SkyrimVR - task: description: Adding Skyrim VR to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\611670 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\SkyrimVR - task: description: Adding Stardew Valley to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\413150 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Stardew Valley - task: description: Adding The Witcher to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\CD Project Red\Witcher prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher Enhanced Edition - task: description: Adding The Witcher to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\20900 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher Enhanced Edition - task: description: Adding The Witcher 2 to the Wine Prefix Registry 1/1 key: InstallFolder name: set_regedit path: HKEY_LOCAL_MACHINE\Software\CD Project Red\The Witcher 2 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\the witcher 2 - task: description: Adding The Witcher 3 to the Wine Prefix Registry 1/2 key: InstallFolder name: set_regedit path: HKEY_LOCAL_MACHINE\Software\CD Project Red\The Witcher 3 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher 3 - task: description: Adding The Witcher 3 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\209230 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher 3 - task: description: Adding Valheim to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\892970 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Valheim - write_file: content: '#!/usr/bin/bash if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$PWD"; fi; if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$(realpath "$(dirname "$0";)";)"; fi; if [ -d "$VORTEX_PREFIX" ]; then printf "%s\n" "INFO: Using Vortex prefix at \"$VORTEX_PREFIX\""; else printf "%s\n" "EROR: Invalid Vortex prefix at \"$VORTEX_PREFIX\""; exit 1; fi; DESKTOP=~/Desktop; DESKTOP_FNAME="vortex-downloads-handler.desktop"; DESKTOP_APPLS=~/.local/share/applications/; DESKTOP_FPATH="$DESKTOP_APPLS$DESKTOP_FNAME"; LUTRIS_DB_PATH=~/.local/share/lutris/pga.db; LUTRIS_CONFIGS=~/.config/lutris/games/; if [ -f "$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd/Vortex.desktop" ]; then rm -f "$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd/Vortex.desktop"; rmdir --ignore-fail-on-non-empty -p "$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd"; fi; if [ -f "$DESKTOP_FPATH" ]; then rm -f "$DESKTOP_FPATH"; fi; printf "%s\n" "INFO: Updating nxm link handling for Vortex!"; printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n" \ "[Desktop Entry]" \ "Categories=Game;Network;" \ "Comment[en_US]=NXM Protocol Download Handler" \ "Comment=NXM Protocol Download Handler" \ "Exec=sh -c \"CONFIGPATH=\$(sqlite3 \\\\\"$LUTRIS_DB_PATH\\\\\" \\\\\"select configpath from games where installer_slug = \\\\\\\\\\\\\"vortex-mod-manager-wine\\\\\\\\\\\\\" order by id asc limit 1;\\\\\");sed -i \\\\\"s/^ args:.*$/ args: -d \$(printf \\\\\"%%s\\\\\\\\\\\\\\\\n\\\\\" \\\\\"%u\\\\\" | sed \\\\\"s/^''//;s/''$//;s/\\\\//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//g;s/\\\\\\\\\\\\\\\\&/\\\\\\\\\\\\\\\\\\\\&/g\\\\\")/\\\\\" \\\\\"$LUTRIS_CONFIGS\$CONFIGPATH.yml\\\\\";env LUTRIS_SKIP_INIT=1 lutris lutris:rungameid/\$(sqlite3 \\\\\"$LUTRIS_DB_PATH\\\\\" \\\\\"select id from games where installer_slug = \\\\\\\\\\\\\"vortex-mod-manager-wine\\\\\\\\\\\\\" order by id asc limit 1;\\\\\")\"" \ "GenericName[en_US]=Writes the provided nxm url as an argument to Vortex by editing the Lutris game config for Vortex twice before launching." \ "GenericName=Writes the provided nxm url as an argument to Vortex by editing the Lutris game config for Vortex twice before launching." \ "Icon=lutris_vortex-mod-manager" \ "MimeType=x-scheme-handler/nxm-protocol;x-scheme-handler/nxm;" \ "Name[en_US]=Vortex" \ "Name=Vortex" \ "NoDisplay=true" \ "Path=$VORTEX_PREFIX" \ "StartupNotify=true" \ "Terminal=false" \ "Type=Application" \ > "$DESKTOP_FPATH"; xdg-mime default "$DESKTOP_FPATH" x-scheme-handler/nxm x-scheme-handler/nxm-protocol; fix_mimetypes(){ if [ -f "$1" ]; then printf "%s\n" "INFO: Fixing mimetype association of nxm: links in \"$1\""; sed -E -i "s/x-scheme-handler\/nxm=[^[=$=]]\+/x-scheme-handler\/nxm=$DESKTOP_FNAME;/" "$1"; check="$(grep -a -o -e "x-scheme-handler/nxm=$DESKTOP_FNAME;" "$1")"; if [ -z "$check" ]; then printf "%s\n" "x-scheme-handler/nxm=$DESKTOP_FNAME;" >> "$1"; fi; sed -E -i "s/x-scheme-handler\/nxm-protocol=[^[=$=]]\+/x-scheme-handler\/nxm-protocol=$DESKTOP_FNAME;/" "$1"; check="$(grep -a -o -e "x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;" "$1")" if [ -z "$check" ]; then printf "%s\n" "x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;" >> "$1"; fi; else printf "%s\n%s\n%s\n\n" "$2" "x-scheme-handler/nxm=$DESKTOP_FNAME;" "x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;" > "$1"; fi; }; fix_mimetypes "$DESKTOP_APPLS"mimeinfo.cache "[MIME Cache]"; fix_mimetypes "$DESKTOP_APPLS"defaults.list "[Default Applications]"; printf "%s\n" "DONE: Made a desktop entry for Vortex at \"$DESKTOP_FPATH\""; ' description: Writing vortex-entry-writer.sh to the Vortex Prefix 1/3 file: $GAMEDIR/vortex-entry-writer.sh - chmodx: $GAMEDIR/vortex-entry-writer.sh - write_file: content: '#!/usr/bin/bash if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$PWD"; fi; if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$(realpath "$(dirname "$0";)";)"; fi; if [ -d "$VORTEX_PREFIX" ]; then printf "%s\n" \ "INFO: Using Vortex prefix at \"$VORTEX_PREFIX\""; else printf "%s\n" \ "EROR: Invalid Vortex prefix at \"$VORTEX_PREFIX\""; exit 1; fi; rmlink(){ if [ -h "$1" ]; then unlink "$1"; fi; } mklink(){ rmlink "$2"; ln -s -T "$1" "$2"; } manifest_attribute(){ grep -a -o -e "\"$2\"[[:space:]]*\".*\"$" "$1" \ | sed "s/\"$2\"[[:space:]]*\"//;s/\"$//"; }; manifest_userconfig_attribute(){ manifest_attribute \ <(grep \ -a -o -P -z \ "\"UserConfig\"\s*{(\s*[^}]*\s*)*}" \ "$1"\ ) "$2"; }; manifest_mountedconfig_attribute(){ manifest_attribute \ <(grep \ -a -o -P -z \ "\"MountedConfig\"\s*{(\s*[^}]*\s*)*}" \ "$1"\ ) "$2"; }; link_sub_targets(){ TARGET=""; DIR_LS=("$2"/*); for TARGET in "${DIR_LS[@]}"; do foldername="$(basename "$TARGET")"; checklink="$1/$foldername"; rmlink "$checklink"; if [ "$foldername" != "Vortex" ] && \ [ "$foldername" != "openvr" ] && \ [ "$foldername" != "Microsoft" ] && \ [ -d "$TARGET" ]; then ln -s "$TARGET" "$1/"; fi; done; }; mkdir -p \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming" \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local" \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/LocalLow" \ "$VORTEX_PREFIX/drive_c/users/$USER/Documents/My Games" \ "$VORTEX_PREFIX/drive_c/users/$USER/Local Settings" \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common" \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/config"; mklink \ "$VORTEX_PREFIX/drive_c/users/$USER/Documents" \ "$VORTEX_PREFIX/drive_c/users/$USER/My Documents"; mklink \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming" \ "$VORTEX_PREFIX/drive_c/users/$USER/Application Data"; mklink \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local" \ "$VORTEX_PREFIX/drive_c/users/$USER/Local Settings/Application Data"; sed "s/\"\/.*\"$/\"C:\\\\\\\\Program Files \(x86\)\\\\\\\\Steam\"/g" < \ ~/.steam/steam/steamapps/libraryfolders.vdf |& tee \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/libraryfolders.vdf" \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/config/libraryfolders.vdf" \ 1>/dev/null; STEAM_LIBRARY_PATHS=(); while read -r library; do rmdir --ignore-fail-on-non-empty "$library"/steamapps/common/* 2>/dev/null; if [ -d "$library" ] && [ -d "$library/steamapps/common" ]; then if [ -d "$library/steamapps/compatdata/" ]; then STEAM_COMPATDATA=("$(find "$library/steamapps/compatdata/" -type d -name "pfx")"); for compatdata in "${STEAM_COMPATDATA[@]}"; do rmdir --ignore-fail-on-non-empty "$compatdata" 2>/dev/null; done; fi; STEAM_LIBRARY_PATHS+=("$library"); fi; done < <(grep -a -o -e "/[^\"]*" ~/.steam/steam/steamapps/libraryfolders.vdf); for library in "${STEAM_LIBRARY_PATHS[@]}"; do printf "%s\n" "INFO: Found Steam Library at \"$library\"! Linking all games in the library:"; MANIFESTS=(); readarray -t MANIFESTS < <(find "$library/steamapps" -mindepth 1 -maxdepth 1 -type f -name "appmanifest_*\.acf"); for CURRENT_APPMANIFEST in "${MANIFESTS[@]}"; do CURRENT_APPID="$(manifest_attribute "$CURRENT_APPMANIFEST" "appid")"; CURRENT_GAME="$(manifest_attribute "$CURRENT_APPMANIFEST" "name")"; CURRENT_INSTALLDIR="$(manifest_attribute "$CURRENT_APPMANIFEST" "installdir")"; printf "%s\n" \ "INFO: \ CURRENT_APPID=\"$CURRENT_APPID\" \ CURRENT_GAME=\"$CURRENT_GAME\" \ CURRENT_INSTALLDIR=\"$CURRENT_INSTALLDIR\"\ "; checkdir="$(\ printf "%s" "$CURRENT_APPMANIFEST" | \ sed "s/\/steamapps\/.\+/\/steamapps\/common\//"\ )$CURRENT_INSTALLDIR"; if [ -d "$checkdir" ]; then CURRENT_INSTALL_PATH="$checkdir"; checkdir="$(\ printf "%s" "$CURRENT_APPMANIFEST" | \ sed "s/\/steamapps\/.\+/\/steamapps\/compatdata\/$CURRENT_APPID\/pfx/"\ )"; printf "%s\n" \ "GOOD: Found $CURRENT_GAME installation at \"$CURRENT_INSTALL_PATH\""; if [ "$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_dest"\ )" == "linux" ] && \ [ "$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_source"\ )" == "windows" ]; then printf "%s\n" \ "INFO: platform_override_dest: \ \"$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_dest"\ )\" platform_override_source: \ \"$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_source"\ )\"\ "; if [ -d "$checkdir" ]; then CURRENT_PREFIX_PATH="$checkdir"; printf "%s\n" \ "GOOD: Found $CURRENT_GAME \ Proton Prefix at \ \"$CURRENT_PREFIX_PATH\"\ "; else checkdir="${STEAM_LIBRARY_PATHS[0]}/steamapps/compatdata/$CURRENT_APPID/pfx/"; printf "%s\n%s\n" \ "INFO: Proton Prefix for \ $CURRENT_GAME not found at \"$checkdir\"." \ "INFO: Trying \"$checkdir\" instead!"; if [ -d "$checkdir" ]; then CURRENT_PREFIX_PATH="$checkdir"; printf "%s\n%s\n" \ "GOOD: Found $CURRENT_GAME Proton Prefix \ in default Steam Library at \ \"$CURRENT_PREFIX_PATH\"" \ "WARN: This feature should only be \ automatically used on a Steam Deck!"; else CURRENT_PREFIX_PATH=""; printf "%s\n%s\n%s\n" \ "WARN: $CURRENT_GAME is configured for Proton but no Prefix was found!" \ "WARN: Its Proton Prefix is missing or has not been run yet!" \ "WARN: Launch the game with Proton via Steam before modding!"; fi; fi; elif [ -d "$checkdir" ]; then CURRENT_PREFIX_PATH="$checkdir"; printf "%s\n%s\n" \ "WARN: $CURRENT_GAME isn''t configured for Proton but a Prefix was found!" \ "GOOD: Found $CURRENT_GAME Proton Prefix at \"$CURRENT_PREFIX_PATH\""; else CURRENT_PREFIX_PATH=""; printf "%s\n" "INFO: No Proton Prefix for $CURRENT_GAME found!"; fi; else CURRENT_INSTALL_PATH=""; CURRENT_PREFIX_PATH=""; checkdir="$CURRENT_INSTALL_PATH/steamapps/compatdata/$CURRENT_APPID/pfx"; if [ -d "$checkdir" ]; then printf "%s\n%s\n" \ "WARN: A Proton Prefix for $CURRENT_GAME exists at \"$checkdir\" but no installation was detected!" \ "WARN: If $CURRENT_GAME was uninstalled, Steam may have left behind files, like save data it syncs with the Steam Cloud."; else printf "%s\n" "INFO: No installation or Proton Prefix of $CURRENT_GAME found!"; fi; fi; if [ -d "$CURRENT_INSTALL_PATH" ]; then checkdir="$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common/$CURRENT_INSTALLDIR"; rmlink "$checkdir"; checkdir="$CURRENT_INSTALL_PATH"; if [ -d "$checkdir" ]; then ln -s "$checkdir" "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common/"; fi; checkdir="$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/appmanifest_$CURRENT_APPID.acf"; rmlink "$checkdir"; checkdir="$CURRENT_APPMANIFEST"; if [ -f "$checkdir" ]; then ln -s "$checkdir" "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/"; fi; fi; if [ -d "$CURRENT_PREFIX_PATH" ]; then link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/My Documents/My Games" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/My Documents/My Games"; link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/Roaming"; link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/Local"; link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/LocalLow" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/LocalLow"; fi; done; done; printf "%s\n" "DONE: Finished linking all detected Steam Library folders!"; ' description: Writing vortex-steam-symlinker.sh to the Vortex Prefix 2/3 file: $GAMEDIR/vortex-steam-symlinker.sh - chmodx: $GAMEDIR/vortex-steam-symlinker.sh - write_file: content: '#!/usr/bin/sh if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$PWD"; fi; if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$(realpath "$(dirname "$0";)";)"; fi; if [ -d "$VORTEX_PREFIX" ]; then printf "%s\n" \ "INFO: Using Vortex prefix at \"$VORTEX_PREFIX\"" \ | tee install.log; else printf "%s\n" \ "EROR: Invalid Vortex prefix at \"$VORTEX_PREFIX\"" \ | tee install.log; exit 1; fi; "$VORTEX_PREFIX"/vortex-steam-symlinker.sh 2>&1 | tee -a install.log; "$VORTEX_PREFIX"/vortex-entry-writer.sh 2>&1 | tee -a install.log; ' description: Writing vortex-prefix-updater.sh to the Vortex Prefix 3/3 file: $GAMEDIR/vortex-prefix-updater.sh - chmodx: $GAMEDIR/vortex-prefix-updater.sh - execute: command: ./vortex-prefix-updater.sh description: 'Updating the Vortex Download Handler Updating Symbolic Links Targeting Known Game Locations' working_dir: $GAMEDIR - task: executable: setup name: wineexec prefix: $GAMEDIR require-binaries: bash, dirname, find, grep, ln, mkdir, printf, realpath, sed, sh, sqlite3, steam, unlink, xdg-mime system: manual_command: $GAMEDIR/vortex-prefix-updater.sh prefix_command: sh -c "\"$WINE\" \"$1\" $(CONFIGPATH=$(sqlite3 \"$HOME/.local/share/lutris/pga.db\" \"select configpath from games where installer_slug = \\\"vortex-mod-manager-wine\\\" order by id asc limit 1;\");sed -n \"/args:.*$/s/^ args://;T;p;Q\" \"$HOME/.config/lutris/games/$CONFIGPATH.yml\";NOYAML=\" -d\";sed -i \"s/^ args:.*$/ args:$NOYAML/\" \"$HOME/.config/lutris/games/$CONFIGPATH.yml\";) >/dev/null 2>&1;" variables: HOME: $HOME USER: $USER VERSION: 1.11.7
description: A Wine prefix installer for Vortex mod manager! Includes full Steam Library detection across any mount points. Steam Deck compatible! game_slug: vortex-mod-manager gogslug: '' humblestoreid: '' installer_slug: vortex-mod-manager-wine name: Vortex Mod Manager notes: "Games installed in any detected steam library will be linked.\r\nGames not\ \ supported by any Vortex Extension will still be linked.\r\nDoesn't include support\ \ for Lutris' WINE Steam, only native.\r\nIncludes a manual script which adds any\ \ games to the Vortex prefix WITHOUT REINSTALLING.\r\n\r\nThis installer requires\ \ the following:\r\nSteam https://store.steampowered.com/about/\r\nbash https://www.gnu.org/software/bash/\r\ \nsed https://www.gnu.org/software/sed/\r\ngrep https://www.gnu.org/software/grep/\r\ \nsqlite3 https://www.sqlite.org/\r\nxdg-utils https://freedesktop.org/wiki/Software/xdg-utils/\r\ \ncoreutils https://www.gnu.org/software/coreutils/\r\nfindutils https://www.gnu.org/software/findutils/" runner: wine script: files: - setup: https://github.com/Nexus-Mods/Vortex/releases/download/v1.11.7/vortex-setup-1.11.7.exe game: args: -d exe: drive_c/Program Files/Black Tree Gaming Ltd/Vortex/Vortex.exe install_complete_text: 'Vortex was installed successfully! RECOMMENDED: Use the "Execute script" context menu option to remove unnecessary files added by wine during setup. OPTIONAL: Close Vortex, then Move/Copy your %APPDATA%/Vortex folder from a previous install into the appropriate location. This will launch Vortex with your previous preferences including your nexus account, game extensions, themes, and storage locations. Only attempt this if Vortex launches and closes correctly during installation, you know the correct location, and you want to get adventurous with your file manager. QUESTIONS & ANSWERS: Q: Can I use the Lutris or Steam shortcuts provided by Lutris? A: Yes! Steam will track when Lutris closes. Launching using these methods also appears to track Vortex processes for playtime/up-time more accurately too. Q: How do I add new Steam games to Vortex? A: This installer includes three bash scripts. They can be triggered from within Lutris via the "Execute script" context menu option. vortex-prefix-updater.sh launches the next two scripts and writes their output to the install.log file. vortex-steam-symlinker.sh will update your games list. Newly added steam games will be linked to Vortex. vortex-entry-writer.sh will update your link handler and set it as the default for nxm: links. All scripts can be run outside of Lutris safely by launching them from your file manager or on the command line. Q: Can I move Vortex via its game directory configuration in Lutris? A: Yes, though you should use the updater script immediately after the move to fix the download handler. Q: Where are my files when browsing within Vortex? A: The "Z:" drive points to "/", the root of your filesystem. Q: Can I make changes to the Vortex Lutris configuration? A: DO NOT CHANGE "Prefix Command" or "Manual Script" in the advanced options of the Lutris configuration for Vortex. Gamemode has been tested and does work with Vortex, though is likely unnecessary. All other options are untested and may have no affect on Vortex due to the Prefix Command completely overriding normal command execution. Q: Can I use Symlink Deployment or Move Deployment? A: Only Hardlink Deployment has been tested. Some untested game extensions may automatically select other deployment strategies. See this issue comment for more information: https://github.com/Nexus-Mods/Vortex/issues/9629#issuecomment-1013658187 Q: Vortex is running but Lutris thinks it has stopped? A: Lutris detects the restart of a monitored process as Vortex stopping when a Vortex download link is handled while Vortex is already running. Q: How does the url get to Vortex? A: This installer creates a hidden launcher to handle nxm links for Lutris. Q: Why is the url so slow to open in Vortex? A: The hidden launcher has to open the Lutris sqlite game database twice and write the url to a file before even launching Lutris. Unless Lutris is enhanced to allow passing arguments directly to the executable from the command line instead of only from its configuration file, this will remain the fastest method which integrates with Lutris and Steam. The link handler may speed up when opening subsequent links (as in after the first link). Q: Why not make the scripts strictly sh POSIX compliant? A: I wanted to, and nearly did. However, Bash is provided by the Lutris runtime and required by Steam. Arrays also greatly simplify the symlinker script. Q: Hello I represent the desktop entry escape character parser. A: sed -E -n "122635s/(.*)/\u\1/;122635p;122635x;122635s/^([^\n]+)\n([^\n]+)/\2\n\1/p;72676x;72676H;108137x;108137H;66763x;66763H;2608s/(.*)/\1!/;2608h;" /usr/share/dict/american-english ' installer: - task: app: win10 dotnet48 corefonts description: Installing .NET 4.8 and Corefonts via winetricks name: winetricks prefix: $GAMEDIR - task: description: Adding Steam to the Wine Prefix Registry 1/2 key: SteamPath name: set_regedit path: HKEY_CURRENT_USER\Software\Valve\Steam prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam - task: description: Adding Steam to the Wine Prefix Registry 2/2 key: SteamExe name: set_regedit path: HKEY_CURRENT_USER\Software\Valve\Steam prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\Steam.exe - task: description: Adding DARK SOULS to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\NAMCO BANDAI GAMES\DARK SOULS prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls Prepare to Die Edition - task: description: Adding DARK SOULS to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\211420 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls Prepare to Die Edition - task: description: Adding DARK SOULS REMASTERED to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\570940 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\DARK SOULS REMASTERED - task: description: Adding DARK SOULS II to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\236430 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls II - task: description: Adding DARK SOULS II Scholar of the First Sin to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\335300 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Dark Souls II Scholar of the First Sin - task: description: Adding DARK SOULS III to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\374320 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\DARK SOULS III - task: description: Adding ELDEN RING to the Wine Prefix Registry 1/2 key: InstallLocation name: set_regedit path: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ELDEN RING_is1 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\ELDEN RING - task: description: Adding ELDEN RING to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\1245620 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\ELDEN RING - task: description: Adding Fallout 3 to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout 3 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 - task: description: Adding Fallout 3 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22300 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 - task: description: Adding Fallout 3 Game of the Year Edition to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout 3 goty prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 goty - task: description: Adding Fallout 3 Game of the Year Edition to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22370 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 3 goty - task: description: Adding Fallout 4 to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout4 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 - task: description: Adding Fallout 4 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\377160 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 - task: description: Adding Fallout 4 VR to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Fallout 4 VR prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 VR - task: description: Adding Fallout 4 VR to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\611660 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout 4 VR - task: description: Adding Fallout 76 to the Wine Prefix Registry 1/2 key: Path name: set_regedit path: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Fallout 76 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout76 - task: description: Adding Fallout 76 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\1151340 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout76 - task: description: Adding Fallout New Vegas to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\FalloutNV prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout New Vegas - task: description: Adding Fallout New Vegas to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22380 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Fallout New Vegas - task: description: Adding Kerbal Space Program to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\220200 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Kerbal Space Program - task: description: 'Adding MechWarrior 5: Mercenaries to the Wine Prefix Registry 1/1' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\784080 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\MechWarrior 5 Mercenaries - task: description: 'Adding Middle Earth: Shadow of War to the Wine Prefix Registry 1/1' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\356190 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\ShadowOfWar - task: description: 'Adding Monster Hunter: World to the Wine Prefix Registry 1/2' key: InstallLocation name: set_regedit path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 582010 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Monster Hunter World - task: description: 'Adding Monster Hunter: World to the Wine Prefix Registry 2/2' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\582010 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Monster Hunter World - task: description: Adding Morrowind to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Morrowind prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Morrowind - task: description: Adding Morrowind to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22320 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Morrowind - task: description: Adding Oblivion to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\oblivion prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Oblivion - task: description: Adding Oblivion to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\22330 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Oblivion - task: description: 'Adding Sekiro: Shadows Die Twice to the Wine Prefix Registry 1/1' key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\814380 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Sekiro - task: description: Adding Skyrim to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Skyrim prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim - task: description: Adding Skyrim to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\72850 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim - task: description: Adding Skyrim Special Edition to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Skyrim Special Edition prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim Special Edition - task: description: Adding Skyrim Special Edition to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\489830 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim Special Edition - task: description: Adding Skyrim VR to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Bethesda Softworks\Skyrim VR prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\SkyrimVR - task: description: Adding Skyrim VR to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\611670 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\SkyrimVR - task: description: Adding Stardew Valley to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\413150 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Stardew Valley - task: description: Adding The Witcher to the Wine Prefix Registry 1/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\CD Project Red\Witcher prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher Enhanced Edition - task: description: Adding The Witcher to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\20900 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher Enhanced Edition - task: description: Adding The Witcher 2 to the Wine Prefix Registry 1/1 key: InstallFolder name: set_regedit path: HKEY_LOCAL_MACHINE\Software\CD Project Red\The Witcher 2 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\the witcher 2 - task: description: Adding The Witcher 3 to the Wine Prefix Registry 1/2 key: InstallFolder name: set_regedit path: HKEY_LOCAL_MACHINE\Software\CD Project Red\The Witcher 3 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher 3 - task: description: Adding The Witcher 3 to the Wine Prefix Registry 2/2 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\209230 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Witcher 3 - task: description: Adding Valheim to the Wine Prefix Registry 1/1 key: Installed Path name: set_regedit path: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Valve\Steam\Apps\892970 prefix: $GAMEDIR type: REG_SZ value: C:\\Program Files (x86)\\Steam\\steamapps\\common\\Valheim - write_file: content: '#!/usr/bin/bash if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$PWD"; fi; if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$(realpath "$(dirname "$0";)";)"; fi; if [ -d "$VORTEX_PREFIX" ]; then printf "%s\n" "INFO: Using Vortex prefix at \"$VORTEX_PREFIX\""; else printf "%s\n" "EROR: Invalid Vortex prefix at \"$VORTEX_PREFIX\""; exit 1; fi; DESKTOP=~/Desktop; DESKTOP_FNAME="vortex-downloads-handler.desktop"; DESKTOP_APPLS=~/.local/share/applications/; DESKTOP_FPATH="$DESKTOP_APPLS$DESKTOP_FNAME"; LUTRIS_DB_PATH=~/.local/share/lutris/pga.db; LUTRIS_CONFIGS=~/.config/lutris/games/; if [ -f "$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd/Vortex.desktop" ]; then rm -f "$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd/Vortex.desktop"; rmdir --ignore-fail-on-non-empty -p "$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd"; fi; if [ -f "$DESKTOP_FPATH" ]; then rm -f "$DESKTOP_FPATH"; fi; printf "%s\n" "INFO: Updating nxm link handling for Vortex!"; printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n" \ "[Desktop Entry]" \ "Categories=Game;Network;" \ "Comment[en_US]=NXM Protocol Download Handler" \ "Comment=NXM Protocol Download Handler" \ "Exec=sh -c \"CONFIGPATH=\$(sqlite3 \\\\\"$LUTRIS_DB_PATH\\\\\" \\\\\"select configpath from games where installer_slug = \\\\\\\\\\\\\"vortex-mod-manager-wine\\\\\\\\\\\\\" order by id asc limit 1;\\\\\");sed -i \\\\\"s/^ args:.*$/ args: -d \$(printf \\\\\"%%s\\\\\\\\\\\\\\\\n\\\\\" \\\\\"%u\\\\\" | sed \\\\\"s/^''//;s/''$//;s/\\\\//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//g;s/\\\\\\\\\\\\\\\\&/\\\\\\\\\\\\\\\\\\\\&/g\\\\\")/\\\\\" \\\\\"$LUTRIS_CONFIGS\$CONFIGPATH.yml\\\\\";env LUTRIS_SKIP_INIT=1 lutris lutris:rungameid/\$(sqlite3 \\\\\"$LUTRIS_DB_PATH\\\\\" \\\\\"select id from games where installer_slug = \\\\\\\\\\\\\"vortex-mod-manager-wine\\\\\\\\\\\\\" order by id asc limit 1;\\\\\")\"" \ "GenericName[en_US]=Writes the provided nxm url as an argument to Vortex by editing the Lutris game config for Vortex twice before launching." \ "GenericName=Writes the provided nxm url as an argument to Vortex by editing the Lutris game config for Vortex twice before launching." \ "Icon=lutris_vortex-mod-manager" \ "MimeType=x-scheme-handler/nxm-protocol;x-scheme-handler/nxm;" \ "Name[en_US]=Vortex" \ "Name=Vortex" \ "NoDisplay=true" \ "Path=$VORTEX_PREFIX" \ "StartupNotify=true" \ "Terminal=false" \ "Type=Application" \ > "$DESKTOP_FPATH"; xdg-mime default "$DESKTOP_FPATH" x-scheme-handler/nxm x-scheme-handler/nxm-protocol; fix_mimetypes(){ if [ -f "$1" ]; then printf "%s\n" "INFO: Fixing mimetype association of nxm: links in \"$1\""; sed -E -i "s/x-scheme-handler\/nxm=[^[=$=]]\+/x-scheme-handler\/nxm=$DESKTOP_FNAME;/" "$1"; check="$(grep -a -o -e "x-scheme-handler/nxm=$DESKTOP_FNAME;" "$1")"; if [ -z "$check" ]; then printf "%s\n" "x-scheme-handler/nxm=$DESKTOP_FNAME;" >> "$1"; fi; sed -E -i "s/x-scheme-handler\/nxm-protocol=[^[=$=]]\+/x-scheme-handler\/nxm-protocol=$DESKTOP_FNAME;/" "$1"; check="$(grep -a -o -e "x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;" "$1")" if [ -z "$check" ]; then printf "%s\n" "x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;" >> "$1"; fi; else printf "%s\n%s\n%s\n\n" "$2" "x-scheme-handler/nxm=$DESKTOP_FNAME;" "x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;" > "$1"; fi; }; fix_mimetypes "$DESKTOP_APPLS"mimeinfo.cache "[MIME Cache]"; fix_mimetypes "$DESKTOP_APPLS"defaults.list "[Default Applications]"; printf "%s\n" "DONE: Made a desktop entry for Vortex at \"$DESKTOP_FPATH\""; ' description: Writing vortex-entry-writer.sh to the Vortex Prefix 1/3 file: $GAMEDIR/vortex-entry-writer.sh - chmodx: $GAMEDIR/vortex-entry-writer.sh - write_file: content: '#!/usr/bin/bash if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$PWD"; fi; if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$(realpath "$(dirname "$0";)";)"; fi; if [ -d "$VORTEX_PREFIX" ]; then printf "%s\n" \ "INFO: Using Vortex prefix at \"$VORTEX_PREFIX\""; else printf "%s\n" \ "EROR: Invalid Vortex prefix at \"$VORTEX_PREFIX\""; exit 1; fi; rmlink(){ if [ -h "$1" ]; then unlink "$1"; fi; } mklink(){ rmlink "$2"; ln -s -T "$1" "$2"; } manifest_attribute(){ grep -a -o -e "\"$2\"[[:space:]]*\".*\"$" "$1" \ | sed "s/\"$2\"[[:space:]]*\"//;s/\"$//"; }; manifest_userconfig_attribute(){ manifest_attribute \ <(grep \ -a -o -P -z \ "\"UserConfig\"\s*{(\s*[^}]*\s*)*}" \ "$1"\ ) "$2"; }; manifest_mountedconfig_attribute(){ manifest_attribute \ <(grep \ -a -o -P -z \ "\"MountedConfig\"\s*{(\s*[^}]*\s*)*}" \ "$1"\ ) "$2"; }; link_sub_targets(){ TARGET=""; DIR_LS=("$2"/*); for TARGET in "${DIR_LS[@]}"; do foldername="$(basename "$TARGET")"; checklink="$1/$foldername"; rmlink "$checklink"; if [ "$foldername" != "Vortex" ] && \ [ "$foldername" != "openvr" ] && \ [ "$foldername" != "Microsoft" ] && \ [ -d "$TARGET" ]; then ln -s "$TARGET" "$1/"; fi; done; }; mkdir -p \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming" \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local" \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/LocalLow" \ "$VORTEX_PREFIX/drive_c/users/$USER/Documents/My Games" \ "$VORTEX_PREFIX/drive_c/users/$USER/Local Settings" \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common" \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/config"; mklink \ "$VORTEX_PREFIX/drive_c/users/$USER/Documents" \ "$VORTEX_PREFIX/drive_c/users/$USER/My Documents"; mklink \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming" \ "$VORTEX_PREFIX/drive_c/users/$USER/Application Data"; mklink \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local" \ "$VORTEX_PREFIX/drive_c/users/$USER/Local Settings/Application Data"; sed "s/\"\/.*\"$/\"C:\\\\\\\\Program Files \(x86\)\\\\\\\\Steam\"/g" < \ ~/.steam/steam/steamapps/libraryfolders.vdf |& tee \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/libraryfolders.vdf" \ "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/config/libraryfolders.vdf" \ 1>/dev/null; STEAM_LIBRARY_PATHS=(); while read -r library; do rmdir --ignore-fail-on-non-empty "$library"/steamapps/common/* 2>/dev/null; if [ -d "$library" ] && [ -d "$library/steamapps/common" ]; then if [ -d "$library/steamapps/compatdata/" ]; then STEAM_COMPATDATA=("$(find "$library/steamapps/compatdata/" -type d -name "pfx")"); for compatdata in "${STEAM_COMPATDATA[@]}"; do rmdir --ignore-fail-on-non-empty "$compatdata" 2>/dev/null; done; fi; STEAM_LIBRARY_PATHS+=("$library"); fi; done < <(grep -a -o -e "/[^\"]*" ~/.steam/steam/steamapps/libraryfolders.vdf); for library in "${STEAM_LIBRARY_PATHS[@]}"; do printf "%s\n" "INFO: Found Steam Library at \"$library\"! Linking all games in the library:"; MANIFESTS=(); readarray -t MANIFESTS < <(find "$library/steamapps" -mindepth 1 -maxdepth 1 -type f -name "appmanifest_*\.acf"); for CURRENT_APPMANIFEST in "${MANIFESTS[@]}"; do CURRENT_APPID="$(manifest_attribute "$CURRENT_APPMANIFEST" "appid")"; CURRENT_GAME="$(manifest_attribute "$CURRENT_APPMANIFEST" "name")"; CURRENT_INSTALLDIR="$(manifest_attribute "$CURRENT_APPMANIFEST" "installdir")"; printf "%s\n" \ "INFO: \ CURRENT_APPID=\"$CURRENT_APPID\" \ CURRENT_GAME=\"$CURRENT_GAME\" \ CURRENT_INSTALLDIR=\"$CURRENT_INSTALLDIR\"\ "; checkdir="$(\ printf "%s" "$CURRENT_APPMANIFEST" | \ sed "s/\/steamapps\/.\+/\/steamapps\/common\//"\ )$CURRENT_INSTALLDIR"; if [ -d "$checkdir" ]; then CURRENT_INSTALL_PATH="$checkdir"; checkdir="$(\ printf "%s" "$CURRENT_APPMANIFEST" | \ sed "s/\/steamapps\/.\+/\/steamapps\/compatdata\/$CURRENT_APPID\/pfx/"\ )"; printf "%s\n" \ "GOOD: Found $CURRENT_GAME installation at \"$CURRENT_INSTALL_PATH\""; if [ "$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_dest"\ )" == "linux" ] && \ [ "$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_source"\ )" == "windows" ]; then printf "%s\n" \ "INFO: platform_override_dest: \ \"$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_dest"\ )\" platform_override_source: \ \"$(manifest_userconfig_attribute \ "$CURRENT_APPMANIFEST" \ "platform_override_source"\ )\"\ "; if [ -d "$checkdir" ]; then CURRENT_PREFIX_PATH="$checkdir"; printf "%s\n" \ "GOOD: Found $CURRENT_GAME \ Proton Prefix at \ \"$CURRENT_PREFIX_PATH\"\ "; else checkdir="${STEAM_LIBRARY_PATHS[0]}/steamapps/compatdata/$CURRENT_APPID/pfx/"; printf "%s\n%s\n" \ "INFO: Proton Prefix for \ $CURRENT_GAME not found at \"$checkdir\"." \ "INFO: Trying \"$checkdir\" instead!"; if [ -d "$checkdir" ]; then CURRENT_PREFIX_PATH="$checkdir"; printf "%s\n%s\n" \ "GOOD: Found $CURRENT_GAME Proton Prefix \ in default Steam Library at \ \"$CURRENT_PREFIX_PATH\"" \ "WARN: This feature should only be \ automatically used on a Steam Deck!"; else CURRENT_PREFIX_PATH=""; printf "%s\n%s\n%s\n" \ "WARN: $CURRENT_GAME is configured for Proton but no Prefix was found!" \ "WARN: Its Proton Prefix is missing or has not been run yet!" \ "WARN: Launch the game with Proton via Steam before modding!"; fi; fi; elif [ -d "$checkdir" ]; then CURRENT_PREFIX_PATH="$checkdir"; printf "%s\n%s\n" \ "WARN: $CURRENT_GAME isn''t configured for Proton but a Prefix was found!" \ "GOOD: Found $CURRENT_GAME Proton Prefix at \"$CURRENT_PREFIX_PATH\""; else CURRENT_PREFIX_PATH=""; printf "%s\n" "INFO: No Proton Prefix for $CURRENT_GAME found!"; fi; else CURRENT_INSTALL_PATH=""; CURRENT_PREFIX_PATH=""; checkdir="$CURRENT_INSTALL_PATH/steamapps/compatdata/$CURRENT_APPID/pfx"; if [ -d "$checkdir" ]; then printf "%s\n%s\n" \ "WARN: A Proton Prefix for $CURRENT_GAME exists at \"$checkdir\" but no installation was detected!" \ "WARN: If $CURRENT_GAME was uninstalled, Steam may have left behind files, like save data it syncs with the Steam Cloud."; else printf "%s\n" "INFO: No installation or Proton Prefix of $CURRENT_GAME found!"; fi; fi; if [ -d "$CURRENT_INSTALL_PATH" ]; then checkdir="$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common/$CURRENT_INSTALLDIR"; rmlink "$checkdir"; checkdir="$CURRENT_INSTALL_PATH"; if [ -d "$checkdir" ]; then ln -s "$checkdir" "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common/"; fi; checkdir="$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/appmanifest_$CURRENT_APPID.acf"; rmlink "$checkdir"; checkdir="$CURRENT_APPMANIFEST"; if [ -f "$checkdir" ]; then ln -s "$checkdir" "$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/"; fi; fi; if [ -d "$CURRENT_PREFIX_PATH" ]; then link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/My Documents/My Games" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/My Documents/My Games"; link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/Roaming"; link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/Local"; link_sub_targets \ "$VORTEX_PREFIX/drive_c/users/$USER/AppData/LocalLow" \ "$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/LocalLow"; fi; done; done; printf "%s\n" "DONE: Finished linking all detected Steam Library folders!"; ' description: Writing vortex-steam-symlinker.sh to the Vortex Prefix 2/3 file: $GAMEDIR/vortex-steam-symlinker.sh - chmodx: $GAMEDIR/vortex-steam-symlinker.sh - write_file: content: '#!/usr/bin/sh if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$PWD"; fi; if [ ! -d "$VORTEX_PREFIX" ]; then VORTEX_PREFIX="$(realpath "$(dirname "$0";)";)"; fi; if [ -d "$VORTEX_PREFIX" ]; then printf "%s\n" \ "INFO: Using Vortex prefix at \"$VORTEX_PREFIX\"" \ | tee install.log; else printf "%s\n" \ "EROR: Invalid Vortex prefix at \"$VORTEX_PREFIX\"" \ | tee install.log; exit 1; fi; "$VORTEX_PREFIX"/vortex-steam-symlinker.sh 2>&1 | tee -a install.log; "$VORTEX_PREFIX"/vortex-entry-writer.sh 2>&1 | tee -a install.log; ' description: Writing vortex-prefix-updater.sh to the Vortex Prefix 3/3 file: $GAMEDIR/vortex-prefix-updater.sh - chmodx: $GAMEDIR/vortex-prefix-updater.sh - execute: command: ./vortex-prefix-updater.sh description: 'Updating the Vortex Download Handler Updating Symbolic Links Targeting Known Game Locations' working_dir: $GAMEDIR - task: executable: setup name: wineexec prefix: $GAMEDIR require-binaries: bash, dirname, find, grep, ln, mkdir, printf, realpath, sed, sh, sqlite3, steam, unlink, xdg-mime system: manual_command: $GAMEDIR/vortex-prefix-updater.sh prefix_command: sh -c "\"$WINE\" \"$1\" $(CONFIGPATH=$(sqlite3 \"$HOME/.local/share/lutris/pga.db\" \"select configpath from games where installer_slug = \\\"vortex-mod-manager-wine\\\" order by id asc limit 1;\");sed -n \"/args:.*$/s/^ args://;T;p;Q\" \"$HOME/.config/lutris/games/$CONFIGPATH.yml\";NOYAML=\" -d\";sed -i \"s/^ args:.*$/ args:$NOYAML/\" \"$HOME/.config/lutris/games/$CONFIGPATH.yml\";) >/dev/null 2>&1;" variables: HOME: $HOME USER: $USER VERSION: 1.11.7 slug: vortex-mod-manager-wine steamid: null version: wine year: 2016
{ "game_slug": "vortex-mod-manager", "version": "wine", "description": "A Wine prefix installer for Vortex mod manager! Includes full Steam Library detection across any mount points. Steam Deck compatible!", "notes": "Games installed in any detected steam library will be linked.\r\nGames not supported by any Vortex Extension will still be linked.\r\nDoesn't include support for Lutris' WINE Steam, only native.\r\nIncludes a manual script which adds any games to the Vortex prefix WITHOUT REINSTALLING.\r\n\r\nThis installer requires the following:\r\nSteam https://store.steampowered.com/about/\r\nbash https://www.gnu.org/software/bash/\r\nsed https://www.gnu.org/software/sed/\r\ngrep https://www.gnu.org/software/grep/\r\nsqlite3 https://www.sqlite.org/\r\nxdg-utils https://freedesktop.org/wiki/Software/xdg-utils/\r\ncoreutils https://www.gnu.org/software/coreutils/\r\nfindutils https://www.gnu.org/software/findutils/", "name": "Vortex Mod Manager", "year": 2016, "steamid": null, "gogslug": "", "humblestoreid": "", "runner": "wine", "slug": "vortex-mod-manager-wine", "installer_slug": "vortex-mod-manager-wine", "script": { "files": [ { "setup": "https://github.com/Nexus-Mods/Vortex/releases/download/v1.11.7/vortex-setup-1.11.7.exe" } ], "game": { "args": "-d", "exe": "drive_c/Program Files/Black Tree Gaming Ltd/Vortex/Vortex.exe" }, "install_complete_text": "Vortex was installed successfully!\nRECOMMENDED:\n\nUse the \"Execute script\" context menu option to remove unnecessary files added by wine during setup.\n\nOPTIONAL:\n\nClose Vortex, then Move/Copy your %APPDATA%/Vortex folder from a previous install into the appropriate location.\nThis will launch Vortex with your previous preferences including your nexus account, game extensions, themes, and storage locations.\nOnly attempt this if Vortex launches and closes correctly during installation, you know the correct location, and you want to get adventurous with your file manager.\n\nQUESTIONS & ANSWERS:\n\nQ: Can I use the Lutris or Steam shortcuts provided by Lutris?\nA: Yes! Steam will track when Lutris closes. Launching using these methods also appears to track Vortex processes for playtime/up-time more accurately too.\n\nQ: How do I add new Steam games to Vortex?\nA: This installer includes three bash scripts.\nThey can be triggered from within Lutris via the \"Execute script\" context menu option.\nvortex-prefix-updater.sh launches the next two scripts and writes their output to the install.log file.\nvortex-steam-symlinker.sh will update your games list. Newly added steam games will be linked to Vortex.\nvortex-entry-writer.sh will update your link handler and set it as the default for nxm: links.\nAll scripts can be run outside of Lutris safely by launching them from your file manager or on the command line.\n\nQ: Can I move Vortex via its game directory configuration in Lutris?\nA: Yes, though you should use the updater script immediately after the move to fix the download handler.\n\nQ: Where are my files when browsing within Vortex?\nA: The \"Z:\" drive points to \"/\", the root of your filesystem.\n\nQ: Can I make changes to the Vortex Lutris configuration?\nA: DO NOT CHANGE \"Prefix Command\" or \"Manual Script\" in the advanced options of the Lutris configuration for Vortex.\nGamemode has been tested and does work with Vortex, though is likely unnecessary.\nAll other options are untested and may have no affect on Vortex due to the Prefix Command completely overriding normal command execution.\n\nQ: Can I use Symlink Deployment or Move Deployment?\nA: Only Hardlink Deployment has been tested.\nSome untested game extensions may automatically select other deployment strategies.\nSee this issue comment for more information: https://github.com/Nexus-Mods/Vortex/issues/9629#issuecomment-1013658187\n\nQ: Vortex is running but Lutris thinks it has stopped?\nA: Lutris detects the restart of a monitored process as Vortex stopping when a Vortex download link is handled while Vortex is already running.\n\nQ: How does the url get to Vortex?\nA: This installer creates a hidden launcher to handle nxm links for Lutris.\n\nQ: Why is the url so slow to open in Vortex?\nA: The hidden launcher has to open the Lutris sqlite game database twice and write the url to a file before even launching Lutris.\nUnless Lutris is enhanced to allow passing arguments directly to the executable from the command line instead of only from its configuration file, this will remain the fastest method which integrates with Lutris and Steam.\nThe link handler may speed up when opening subsequent links (as in after the first link).\n\nQ: Why not make the scripts strictly sh POSIX compliant?\nA: I wanted to, and nearly did. However, Bash is provided by the Lutris runtime and required by Steam. Arrays also greatly simplify the symlinker script.\n\nQ: Hello I represent the desktop entry escape character parser.\nA: sed -E -n \"122635s/(.*)/\\u\\1/;122635p;122635x;122635s/^([^\\n]+)\\n([^\\n]+)/\\2\\n\\1/p;72676x;72676H;108137x;108137H;66763x;66763H;2608s/(.*)/\\1!/;2608h;\" /usr/share/dict/american-english ", "installer": [ { "task": { "app": "win10 dotnet48 corefonts", "description": "Installing .NET 4.8 and Corefonts via winetricks", "name": "winetricks", "prefix": "$GAMEDIR" } }, { "task": { "description": "Adding Steam to the Wine Prefix Registry 1/2", "key": "SteamPath", "name": "set_regedit", "path": "HKEY_CURRENT_USER\\Software\\Valve\\Steam", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam" } }, { "task": { "description": "Adding Steam to the Wine Prefix Registry 2/2", "key": "SteamExe", "name": "set_regedit", "path": "HKEY_CURRENT_USER\\Software\\Valve\\Steam", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\Steam.exe" } }, { "task": { "description": "Adding DARK SOULS to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\NAMCO BANDAI GAMES\\DARK SOULS", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Dark Souls Prepare to Die Edition" } }, { "task": { "description": "Adding DARK SOULS to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\211420", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Dark Souls Prepare to Die Edition" } }, { "task": { "description": "Adding DARK SOULS REMASTERED to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\570940", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\DARK SOULS REMASTERED" } }, { "task": { "description": "Adding DARK SOULS II to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\236430", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Dark Souls II" } }, { "task": { "description": "Adding DARK SOULS II Scholar of the First Sin to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\335300", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Dark Souls II Scholar of the First Sin" } }, { "task": { "description": "Adding DARK SOULS III to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\374320", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\DARK SOULS III" } }, { "task": { "description": "Adding ELDEN RING to the Wine Prefix Registry 1/2", "key": "InstallLocation", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\ELDEN RING_is1", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\ELDEN RING" } }, { "task": { "description": "Adding ELDEN RING to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\1245620", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\ELDEN RING" } }, { "task": { "description": "Adding Fallout 3 to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Fallout 3", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 3" } }, { "task": { "description": "Adding Fallout 3 to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\22300", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 3" } }, { "task": { "description": "Adding Fallout 3 Game of the Year Edition to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Fallout 3 goty", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 3 goty" } }, { "task": { "description": "Adding Fallout 3 Game of the Year Edition to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\22370", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 3 goty" } }, { "task": { "description": "Adding Fallout 4 to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Fallout4", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 4" } }, { "task": { "description": "Adding Fallout 4 to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\377160", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 4" } }, { "task": { "description": "Adding Fallout 4 VR to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Fallout 4 VR", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 4 VR" } }, { "task": { "description": "Adding Fallout 4 VR to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\611660", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout 4 VR" } }, { "task": { "description": "Adding Fallout 76 to the Wine Prefix Registry 1/2", "key": "Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Fallout 76", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout76" } }, { "task": { "description": "Adding Fallout 76 to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\1151340", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout76" } }, { "task": { "description": "Adding Fallout New Vegas to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\FalloutNV", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout New Vegas" } }, { "task": { "description": "Adding Fallout New Vegas to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\22380", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Fallout New Vegas" } }, { "task": { "description": "Adding Kerbal Space Program to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\220200", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Kerbal Space Program" } }, { "task": { "description": "Adding MechWarrior 5: Mercenaries to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\784080", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\MechWarrior 5 Mercenaries" } }, { "task": { "description": "Adding Middle Earth: Shadow of War to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\356190", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\ShadowOfWar" } }, { "task": { "description": "Adding Monster Hunter: World to the Wine Prefix Registry 1/2", "key": "InstallLocation", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Steam App 582010", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Monster Hunter World" } }, { "task": { "description": "Adding Monster Hunter: World to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\582010", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Monster Hunter World" } }, { "task": { "description": "Adding Morrowind to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Morrowind", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Morrowind" } }, { "task": { "description": "Adding Morrowind to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\22320", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Morrowind" } }, { "task": { "description": "Adding Oblivion to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\oblivion", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Oblivion" } }, { "task": { "description": "Adding Oblivion to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\22330", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Oblivion" } }, { "task": { "description": "Adding Sekiro: Shadows Die Twice to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\814380", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Sekiro" } }, { "task": { "description": "Adding Skyrim to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Skyrim", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Skyrim" } }, { "task": { "description": "Adding Skyrim to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\72850", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Skyrim" } }, { "task": { "description": "Adding Skyrim Special Edition to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Skyrim Special Edition", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Skyrim Special Edition" } }, { "task": { "description": "Adding Skyrim Special Edition to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\489830", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Skyrim Special Edition" } }, { "task": { "description": "Adding Skyrim VR to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Bethesda Softworks\\Skyrim VR", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\SkyrimVR" } }, { "task": { "description": "Adding Skyrim VR to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\611670", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\SkyrimVR" } }, { "task": { "description": "Adding Stardew Valley to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\413150", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Stardew Valley" } }, { "task": { "description": "Adding The Witcher to the Wine Prefix Registry 1/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\CD Project Red\\Witcher", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\The Witcher Enhanced Edition" } }, { "task": { "description": "Adding The Witcher to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\20900", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\The Witcher Enhanced Edition" } }, { "task": { "description": "Adding The Witcher 2 to the Wine Prefix Registry 1/1", "key": "InstallFolder", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\CD Project Red\\The Witcher 2", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\the witcher 2" } }, { "task": { "description": "Adding The Witcher 3 to the Wine Prefix Registry 1/2", "key": "InstallFolder", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\CD Project Red\\The Witcher 3", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\The Witcher 3" } }, { "task": { "description": "Adding The Witcher 3 to the Wine Prefix Registry 2/2", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\209230", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\The Witcher 3" } }, { "task": { "description": "Adding Valheim to the Wine Prefix Registry 1/1", "key": "Installed Path", "name": "set_regedit", "path": "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Valve\\Steam\\Apps\\892970", "prefix": "$GAMEDIR", "type": "REG_SZ", "value": "C:\\\\Program Files (x86)\\\\Steam\\\\steamapps\\\\common\\\\Valheim" } }, { "write_file": { "content": "#!/usr/bin/bash\nif [ ! -d \"$VORTEX_PREFIX\" ]; then\nVORTEX_PREFIX=\"$PWD\";\nfi;\nif [ ! -d \"$VORTEX_PREFIX\" ]; then\nVORTEX_PREFIX=\"$(realpath \"$(dirname \"$0\";)\";)\";\nfi;\nif [ -d \"$VORTEX_PREFIX\" ]; then\nprintf \"%s\\n\" \"INFO: Using Vortex prefix at \\\"$VORTEX_PREFIX\\\"\";\nelse\nprintf \"%s\\n\" \"EROR: Invalid Vortex prefix at \\\"$VORTEX_PREFIX\\\"\";\nexit 1;\nfi;\nDESKTOP=~/Desktop;\nDESKTOP_FNAME=\"vortex-downloads-handler.desktop\";\nDESKTOP_APPLS=~/.local/share/applications/;\nDESKTOP_FPATH=\"$DESKTOP_APPLS$DESKTOP_FNAME\";\nLUTRIS_DB_PATH=~/.local/share/lutris/pga.db;\nLUTRIS_CONFIGS=~/.config/lutris/games/;\nif [ -f \"$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd/Vortex.desktop\" ]; then\nrm -f \"$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd/Vortex.desktop\";\nrmdir --ignore-fail-on-non-empty -p \"$DESKTOP_APPLS/wine/Programs/Black Tree Gaming Ltd\";\nfi;\nif [ -f \"$DESKTOP_FPATH\" ]; then\nrm -f \"$DESKTOP_FPATH\";\nfi;\nprintf \"%s\\n\" \"INFO: Updating nxm link handling for Vortex!\";\nprintf \"%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n\\n\" \\\n\"[Desktop Entry]\" \\\n\"Categories=Game;Network;\" \\\n\"Comment[en_US]=NXM Protocol Download Handler\" \\\n\"Comment=NXM Protocol Download Handler\" \\\n\"Exec=sh -c \\\"CONFIGPATH=\\$(sqlite3 \\\\\\\\\\\"$LUTRIS_DB_PATH\\\\\\\\\\\" \\\\\\\\\\\"select configpath from games where installer_slug = \\\\\\\\\\\\\\\\\\\\\\\\\\\"vortex-mod-manager-wine\\\\\\\\\\\\\\\\\\\\\\\\\\\" order by id asc limit 1;\\\\\\\\\\\");sed -i \\\\\\\\\\\"s/^ args:.*$/ args: -d \\$(printf \\\\\\\\\\\"%%s\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\" \\\\\\\\\\\"%u\\\\\\\\\\\" | sed \\\\\\\\\\\"s/^'//;s/'$//;s/\\\\\\\\//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//g;s/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\&/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\&/g\\\\\\\\\\\")/\\\\\\\\\\\" \\\\\\\\\\\"$LUTRIS_CONFIGS\\$CONFIGPATH.yml\\\\\\\\\\\";env LUTRIS_SKIP_INIT=1 lutris lutris:rungameid/\\$(sqlite3 \\\\\\\\\\\"$LUTRIS_DB_PATH\\\\\\\\\\\" \\\\\\\\\\\"select id from games where installer_slug = \\\\\\\\\\\\\\\\\\\\\\\\\\\"vortex-mod-manager-wine\\\\\\\\\\\\\\\\\\\\\\\\\\\" order by id asc limit 1;\\\\\\\\\\\")\\\"\" \\\n\"GenericName[en_US]=Writes the provided nxm url as an argument to Vortex by editing the Lutris game config for Vortex twice before launching.\" \\\n\"GenericName=Writes the provided nxm url as an argument to Vortex by editing the Lutris game config for Vortex twice before launching.\" \\\n\"Icon=lutris_vortex-mod-manager\" \\\n\"MimeType=x-scheme-handler/nxm-protocol;x-scheme-handler/nxm;\" \\\n\"Name[en_US]=Vortex\" \\\n\"Name=Vortex\" \\\n\"NoDisplay=true\" \\\n\"Path=$VORTEX_PREFIX\" \\\n\"StartupNotify=true\" \\\n\"Terminal=false\" \\\n\"Type=Application\" \\\n> \"$DESKTOP_FPATH\";\nxdg-mime default \"$DESKTOP_FPATH\" x-scheme-handler/nxm x-scheme-handler/nxm-protocol;\nfix_mimetypes(){\nif [ -f \"$1\" ]; then\nprintf \"%s\\n\" \"INFO: Fixing mimetype association of nxm: links in \\\"$1\\\"\";\nsed -E -i \"s/x-scheme-handler\\/nxm=[^[=$=]]\\+/x-scheme-handler\\/nxm=$DESKTOP_FNAME;/\" \"$1\";\ncheck=\"$(grep -a -o -e \"x-scheme-handler/nxm=$DESKTOP_FNAME;\" \"$1\")\";\nif [ -z \"$check\" ]; then\nprintf \"%s\\n\" \"x-scheme-handler/nxm=$DESKTOP_FNAME;\" >> \"$1\";\nfi;\nsed -E -i \"s/x-scheme-handler\\/nxm-protocol=[^[=$=]]\\+/x-scheme-handler\\/nxm-protocol=$DESKTOP_FNAME;/\" \"$1\";\ncheck=\"$(grep -a -o -e \"x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;\" \"$1\")\"\nif [ -z \"$check\" ]; then\nprintf \"%s\\n\" \"x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;\" >> \"$1\";\nfi;\nelse\nprintf \"%s\\n%s\\n%s\\n\\n\" \"$2\" \"x-scheme-handler/nxm=$DESKTOP_FNAME;\" \"x-scheme-handler/nxm-protocol=$DESKTOP_FNAME;\" > \"$1\";\nfi;\n};\nfix_mimetypes \"$DESKTOP_APPLS\"mimeinfo.cache \"[MIME Cache]\";\nfix_mimetypes \"$DESKTOP_APPLS\"defaults.list \"[Default Applications]\";\nprintf \"%s\\n\" \"DONE: Made a desktop entry for Vortex at \\\"$DESKTOP_FPATH\\\"\";\n", "description": "Writing vortex-entry-writer.sh to the Vortex Prefix 1/3", "file": "$GAMEDIR/vortex-entry-writer.sh" } }, { "chmodx": "$GAMEDIR/vortex-entry-writer.sh" }, { "write_file": { "content": "#!/usr/bin/bash\nif [ ! -d \"$VORTEX_PREFIX\" ]; then\nVORTEX_PREFIX=\"$PWD\";\nfi;\nif [ ! -d \"$VORTEX_PREFIX\" ]; then\nVORTEX_PREFIX=\"$(realpath \"$(dirname \"$0\";)\";)\";\nfi;\nif [ -d \"$VORTEX_PREFIX\" ]; then\nprintf \"%s\\n\" \\\n\"INFO: Using Vortex prefix at \\\"$VORTEX_PREFIX\\\"\";\nelse\nprintf \"%s\\n\" \\\n\"EROR: Invalid Vortex prefix at \\\"$VORTEX_PREFIX\\\"\";\nexit 1;\nfi;\nrmlink(){\nif [ -h \"$1\" ];\nthen unlink \"$1\";\nfi;\n}\nmklink(){\nrmlink \"$2\";\nln -s -T \"$1\" \"$2\";\n}\nmanifest_attribute(){\ngrep -a -o -e \"\\\"$2\\\"[[:space:]]*\\\".*\\\"$\" \"$1\" \\\n| sed \"s/\\\"$2\\\"[[:space:]]*\\\"//;s/\\\"$//\";\n};\nmanifest_userconfig_attribute(){\nmanifest_attribute \\\n<(grep \\\n-a -o -P -z \\\n\"\\\"UserConfig\\\"\\s*{(\\s*[^}]*\\s*)*}\" \\\n\"$1\"\\\n) \"$2\";\n};\nmanifest_mountedconfig_attribute(){\nmanifest_attribute \\\n<(grep \\\n-a -o -P -z \\\n\"\\\"MountedConfig\\\"\\s*{(\\s*[^}]*\\s*)*}\" \\\n\"$1\"\\\n) \"$2\";\n};\nlink_sub_targets(){\nTARGET=\"\";\nDIR_LS=(\"$2\"/*);\nfor TARGET in \"${DIR_LS[@]}\"; do\nfoldername=\"$(basename \"$TARGET\")\";\nchecklink=\"$1/$foldername\";\nrmlink \"$checklink\";\nif [ \"$foldername\" != \"Vortex\" ] && \\\n[ \"$foldername\" != \"openvr\" ] && \\\n[ \"$foldername\" != \"Microsoft\" ] && \\\n[ -d \"$TARGET\" ]; then\nln -s \"$TARGET\" \"$1/\";\nfi;\ndone;\n};\nmkdir -p \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/LocalLow\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/Documents/My Games\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/Local Settings\" \\\n\"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common\" \\\n\"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/config\";\nmklink \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/Documents\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/My Documents\";\nmklink \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/Application Data\";\nmklink \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local\" \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/Local Settings/Application Data\";\nsed \"s/\\\"\\/.*\\\"$/\\\"C:\\\\\\\\\\\\\\\\Program Files \\(x86\\)\\\\\\\\\\\\\\\\Steam\\\"/g\" < \\\n~/.steam/steam/steamapps/libraryfolders.vdf |& tee \\\n\"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/libraryfolders.vdf\" \\\n\"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/config/libraryfolders.vdf\" \\\n1>/dev/null;\nSTEAM_LIBRARY_PATHS=();\nwhile read -r library; do\nrmdir --ignore-fail-on-non-empty \"$library\"/steamapps/common/* 2>/dev/null;\nif [ -d \"$library\" ] && [ -d \"$library/steamapps/common\" ]; then\nif [ -d \"$library/steamapps/compatdata/\" ]; then\nSTEAM_COMPATDATA=(\"$(find \"$library/steamapps/compatdata/\" -type d -name \"pfx\")\");\nfor compatdata in \"${STEAM_COMPATDATA[@]}\"; do\nrmdir --ignore-fail-on-non-empty \"$compatdata\" 2>/dev/null;\ndone;\nfi;\nSTEAM_LIBRARY_PATHS+=(\"$library\");\nfi;\ndone < <(grep -a -o -e \"/[^\\\"]*\" ~/.steam/steam/steamapps/libraryfolders.vdf);\nfor library in \"${STEAM_LIBRARY_PATHS[@]}\"; do\nprintf \"%s\\n\" \"INFO: Found Steam Library at \\\"$library\\\"! Linking all games in the library:\";\nMANIFESTS=();\nreadarray -t MANIFESTS < <(find \"$library/steamapps\" -mindepth 1 -maxdepth 1 -type f -name \"appmanifest_*\\.acf\");\nfor CURRENT_APPMANIFEST in \"${MANIFESTS[@]}\"; do\nCURRENT_APPID=\"$(manifest_attribute \"$CURRENT_APPMANIFEST\" \"appid\")\";\nCURRENT_GAME=\"$(manifest_attribute \"$CURRENT_APPMANIFEST\" \"name\")\";\nCURRENT_INSTALLDIR=\"$(manifest_attribute \"$CURRENT_APPMANIFEST\" \"installdir\")\";\nprintf \"%s\\n\" \\\n\"INFO: \\\nCURRENT_APPID=\\\"$CURRENT_APPID\\\" \\\nCURRENT_GAME=\\\"$CURRENT_GAME\\\" \\\nCURRENT_INSTALLDIR=\\\"$CURRENT_INSTALLDIR\\\"\\\n\";\ncheckdir=\"$(\\\nprintf \"%s\" \"$CURRENT_APPMANIFEST\" | \\\nsed \"s/\\/steamapps\\/.\\+/\\/steamapps\\/common\\//\"\\\n)$CURRENT_INSTALLDIR\";\nif [ -d \"$checkdir\" ]; then\nCURRENT_INSTALL_PATH=\"$checkdir\";\ncheckdir=\"$(\\\nprintf \"%s\" \"$CURRENT_APPMANIFEST\" | \\\nsed \"s/\\/steamapps\\/.\\+/\\/steamapps\\/compatdata\\/$CURRENT_APPID\\/pfx/\"\\\n)\";\nprintf \"%s\\n\" \\\n\"GOOD: Found $CURRENT_GAME installation at \\\"$CURRENT_INSTALL_PATH\\\"\";\nif [ \"$(manifest_userconfig_attribute \\\n\"$CURRENT_APPMANIFEST\" \\\n\"platform_override_dest\"\\\n)\" == \"linux\" ] && \\\n[ \"$(manifest_userconfig_attribute \\\n\"$CURRENT_APPMANIFEST\" \\\n\"platform_override_source\"\\\n)\" == \"windows\" ];\nthen\nprintf \"%s\\n\" \\\n\"INFO: platform_override_dest: \\\n\\\"$(manifest_userconfig_attribute \\\n\"$CURRENT_APPMANIFEST\" \\\n\"platform_override_dest\"\\\n)\\\" platform_override_source: \\\n\\\"$(manifest_userconfig_attribute \\\n\"$CURRENT_APPMANIFEST\" \\\n\"platform_override_source\"\\\n)\\\"\\\n\";\nif [ -d \"$checkdir\" ]; then\nCURRENT_PREFIX_PATH=\"$checkdir\";\nprintf \"%s\\n\" \\\n\"GOOD: Found $CURRENT_GAME \\\nProton Prefix at \\\n\\\"$CURRENT_PREFIX_PATH\\\"\\\n\";\nelse\ncheckdir=\"${STEAM_LIBRARY_PATHS[0]}/steamapps/compatdata/$CURRENT_APPID/pfx/\";\nprintf \"%s\\n%s\\n\" \\\n\"INFO: Proton Prefix for \\\n$CURRENT_GAME not found at \\\"$checkdir\\\".\" \\\n\"INFO: Trying \\\"$checkdir\\\" instead!\";\nif [ -d \"$checkdir\" ]; then\nCURRENT_PREFIX_PATH=\"$checkdir\";\nprintf \"%s\\n%s\\n\" \\\n\"GOOD: Found $CURRENT_GAME Proton Prefix \\\nin default Steam Library at \\\n\\\"$CURRENT_PREFIX_PATH\\\"\" \\\n\"WARN: This feature should only be \\\nautomatically used on a Steam Deck!\";\nelse\nCURRENT_PREFIX_PATH=\"\";\nprintf \"%s\\n%s\\n%s\\n\" \\\n\"WARN: $CURRENT_GAME is configured for Proton but no Prefix was found!\" \\\n\"WARN: Its Proton Prefix is missing or has not been run yet!\" \\\n\"WARN: Launch the game with Proton via Steam before modding!\";\nfi;\nfi;\nelif [ -d \"$checkdir\" ]; then\nCURRENT_PREFIX_PATH=\"$checkdir\";\nprintf \"%s\\n%s\\n\" \\\n\"WARN: $CURRENT_GAME isn't configured for Proton but a Prefix was found!\" \\\n\"GOOD: Found $CURRENT_GAME Proton Prefix at \\\"$CURRENT_PREFIX_PATH\\\"\";\nelse\nCURRENT_PREFIX_PATH=\"\";\nprintf \"%s\\n\" \"INFO: No Proton Prefix for $CURRENT_GAME found!\";\nfi;\nelse\nCURRENT_INSTALL_PATH=\"\";\nCURRENT_PREFIX_PATH=\"\";\ncheckdir=\"$CURRENT_INSTALL_PATH/steamapps/compatdata/$CURRENT_APPID/pfx\";\nif [ -d \"$checkdir\" ]; then\nprintf \"%s\\n%s\\n\" \\\n\"WARN: A Proton Prefix for $CURRENT_GAME exists at \\\"$checkdir\\\" but no installation was detected!\" \\\n\"WARN: If $CURRENT_GAME was uninstalled, Steam may have left behind files, like save data it syncs with the Steam Cloud.\";\nelse\nprintf \"%s\\n\" \"INFO: No installation or Proton Prefix of $CURRENT_GAME found!\";\nfi;\nfi;\nif [ -d \"$CURRENT_INSTALL_PATH\" ]; then\ncheckdir=\"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common/$CURRENT_INSTALLDIR\";\nrmlink \"$checkdir\";\ncheckdir=\"$CURRENT_INSTALL_PATH\";\nif [ -d \"$checkdir\" ]; then\nln -s \"$checkdir\" \"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/common/\";\nfi;\ncheckdir=\"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/appmanifest_$CURRENT_APPID.acf\";\nrmlink \"$checkdir\";\ncheckdir=\"$CURRENT_APPMANIFEST\";\nif [ -f \"$checkdir\" ]; then\nln -s \"$checkdir\" \"$VORTEX_PREFIX/drive_c/Program Files (x86)/Steam/steamapps/\";\nfi;\nfi;\nif [ -d \"$CURRENT_PREFIX_PATH\" ]; then\nlink_sub_targets \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/My Documents/My Games\" \\\n\"$CURRENT_PREFIX_PATH/drive_c/users/steamuser/My Documents/My Games\";\nlink_sub_targets \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/Roaming\" \\\n\"$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/Roaming\";\nlink_sub_targets \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/Local\" \\\n\"$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/Local\";\nlink_sub_targets \\\n\"$VORTEX_PREFIX/drive_c/users/$USER/AppData/LocalLow\" \\\n\"$CURRENT_PREFIX_PATH/drive_c/users/steamuser/AppData/LocalLow\";\nfi;\ndone;\ndone;\nprintf \"%s\\n\" \"DONE: Finished linking all detected Steam Library folders!\";\n", "description": "Writing vortex-steam-symlinker.sh to the Vortex Prefix 2/3", "file": "$GAMEDIR/vortex-steam-symlinker.sh" } }, { "chmodx": "$GAMEDIR/vortex-steam-symlinker.sh" }, { "write_file": { "content": "#!/usr/bin/sh\nif [ ! -d \"$VORTEX_PREFIX\" ]; then\nVORTEX_PREFIX=\"$PWD\";\nfi;\nif [ ! -d \"$VORTEX_PREFIX\" ]; then\nVORTEX_PREFIX=\"$(realpath \"$(dirname \"$0\";)\";)\";\nfi;\nif [ -d \"$VORTEX_PREFIX\" ]; then\nprintf \"%s\\n\" \\\n\"INFO: Using Vortex prefix at \\\"$VORTEX_PREFIX\\\"\" \\\n| tee install.log;\nelse\nprintf \"%s\\n\" \\\n\"EROR: Invalid Vortex prefix at \\\"$VORTEX_PREFIX\\\"\" \\\n| tee install.log;\nexit 1;\nfi;\n\"$VORTEX_PREFIX\"/vortex-steam-symlinker.sh 2>&1 | tee -a install.log;\n\"$VORTEX_PREFIX\"/vortex-entry-writer.sh 2>&1 | tee -a install.log;\n", "description": "Writing vortex-prefix-updater.sh to the Vortex Prefix 3/3", "file": "$GAMEDIR/vortex-prefix-updater.sh" } }, { "chmodx": "$GAMEDIR/vortex-prefix-updater.sh" }, { "execute": { "command": "./vortex-prefix-updater.sh", "description": "Updating the Vortex Download Handler\nUpdating Symbolic Links Targeting Known Game Locations", "working_dir": "$GAMEDIR" } }, { "task": { "executable": "setup", "name": "wineexec", "prefix": "$GAMEDIR" } } ], "require-binaries": "bash, dirname, find, grep, ln, mkdir, printf, realpath, sed, sh, sqlite3, steam, unlink, xdg-mime", "system": { "manual_command": "$GAMEDIR/vortex-prefix-updater.sh", "prefix_command": "sh -c \"\\\"$WINE\\\" \\\"$1\\\" $(CONFIGPATH=$(sqlite3 \\\"$HOME/.local/share/lutris/pga.db\\\" \\\"select configpath from games where installer_slug = \\\\\\\"vortex-mod-manager-wine\\\\\\\" order by id asc limit 1;\\\");sed -n \\\"/args:.*$/s/^ args://;T;p;Q\\\" \\\"$HOME/.config/lutris/games/$CONFIGPATH.yml\\\";NOYAML=\\\" -d\\\";sed -i \\\"s/^ args:.*$/ args:$NOYAML/\\\" \\\"$HOME/.config/lutris/games/$CONFIGPATH.yml\\\";) >/dev/null 2>&1;\"" }, "variables": { "HOME": "$HOME", "USER": "$USER", "VERSION": "1.11.7" } } }