|
6 | 6 | PREFIX="/usr"
|
7 | 7 | PROGNAME="SteamTinkerLaunch"
|
8 | 8 | NICEPROGNAME="Steam Tinker Launch"
|
9 |
| -PROGVERS="v14.0.20230921-1" |
| 9 | +PROGVERS="v14.0.20230924-1" |
10 | 10 | PROGCMD="${0##*/}"
|
11 | 11 | PROGINTERNALPROTNAME="Proton-stl"
|
12 | 12 | SHOSTL="stl"
|
@@ -158,6 +158,8 @@ SMALLDESK=0
|
158 | 158 | VTX_DOTNET_ROOT="c:\\Program Files\\dotnet\\\\"
|
159 | 159 | STLQUIET=0
|
160 | 160 | SLRAID="1070560" # Hardcoded SLR AppID for native games -- See `setSLRReap`
|
| 161 | +DEFWINEDPI="96" |
| 162 | +WINEDPIVALUES="${DEFWINEDPI}!120!150!240" |
161 | 163 |
|
162 | 164 | ### default vars ###
|
163 | 165 |
|
@@ -2810,6 +2812,8 @@ function setDefaultCfgValues {
|
2810 | 2812 | if [ -z "$USEHMMPROTON" ] ; then USEHMMPROTON="$NON"; fi
|
2811 | 2813 | if [ -z "$USETERM" ] ; then USETERM="$(command -v "xterm")"; fi
|
2812 | 2814 | if [ -z "$TERMARGS" ] ; then TERMARGS="-e"; fi
|
| 2815 | + if [ -z "$USEGLOBALWINEDPI" ] ; then USEGLOBALWINEDPI="0"; fi |
| 2816 | + if [ -z "$GLOBALWINEDPI" ] ; then GLOBALWINEDPI="$DEFWINEDPI"; fi |
2813 | 2817 | }
|
2814 | 2818 |
|
2815 | 2819 | function setDefaultCfgValuesdefault_template {
|
@@ -2963,6 +2967,8 @@ function setDefaultCfgValues {
|
2963 | 2967 | if [ -z "$WINE_FULLSCREEN_FSR_STRENGTH" ] ; then WINE_FULLSCREEN_FSR_STRENGTH="2"; fi
|
2964 | 2968 | if [ -z "$WINE_FULLSCREEN_FSR_MODE" ] ; then WINE_FULLSCREEN_FSR_MODE="none"; fi
|
2965 | 2969 | if [ -z "$WINE_FULLSCREEN_FSR_CUSTOM_MODE" ] ; then WINE_FULLSCREEN_FSR_CUSTOM_MODE="none"; fi
|
| 2970 | + if [ -z "$USEPERGAMEWINEDPI" ] ; then USEPERGAMEWINEDPI="0"; fi |
| 2971 | + if [ -z "$PERGAMEWINEDPI" ] ; then PERGAMEWINEDPI="$DEFWINEDPI"; fi |
2966 | 2972 | if [ -z "$STLWINEDEBUG" ] ; then STLWINEDEBUG="-all"; fi
|
2967 | 2973 | if [ -z "$STLWINEDLLOVERRIDES" ] ; then STLWINEDLLOVERRIDES="$NON"; fi
|
2968 | 2974 | if [ -z "$USERSTART" ] ; then USERSTART="$DUMMYBIN"; fi
|
@@ -3126,7 +3132,11 @@ function saveCfg {
|
3126 | 3132 | echo "## $DESC_WINEDLDIR"
|
3127 | 3133 | echo "WINEDLDIR=\"$WINEDLDIR\""
|
3128 | 3134 | echo "## $DESC_WINEEXTDIR"
|
3129 |
| - echo "WINEEXTDIR=\"$WINEEXTDIR\"" |
| 3135 | + echo "WINEEXTDIR=\"$WINEEXTDIR\"" |
| 3136 | + echo "## $DESC_USEGLOBALWINEDPI" |
| 3137 | + echo "USEGLOBALWINEDPI=\"$USEGLOBALWINEDPI\"" |
| 3138 | + echo "## $DESC_GLOBALWINEDPI" |
| 3139 | + echo "GLOBALWINEDPI=\"$GLOBALWINEDPI\"" |
3130 | 3140 | echo "## $DESC_AUTOLASTPROTON"
|
3131 | 3141 | echo "AUTOLASTPROTON=\"$AUTOLASTPROTON\""
|
3132 | 3142 | echo "## $DESC_STRACEDIR"
|
@@ -3581,6 +3591,10 @@ function saveCfg {
|
3581 | 3591 | echo "WINE_FULLSCREEN_FSR=\"$WINE_FULLSCREEN_FSR\""
|
3582 | 3592 | echo "## $DESC_WINE_FULLSCREEN_FSR_STRENGTH"
|
3583 | 3593 | echo "WINE_FULLSCREEN_FSR_STRENGTH=\"$WINE_FULLSCREEN_FSR_STRENGTH\""
|
| 3594 | + echo "## $DESC_USEPERGAMEWINEDPI" |
| 3595 | + echo "USEPERGAMEWINEDPI=\"$USEPERGAMEWINEDPI\"" |
| 3596 | + echo "## $DESC_PERGAMEWINEDPI" |
| 3597 | + echo "PERGAMEWINEDPI=\"$PERGAMEWINEDPI\"" |
3584 | 3598 | echo "## $DESC_CLEANPROTONTEMP"
|
3585 | 3599 | echo "CLEANPROTONTEMP=\"$CLEANPROTONTEMP\""
|
3586 | 3600 | echo "## $DESC_STLWINEDEBUG"
|
@@ -5468,6 +5482,10 @@ function AllSettingsEntriesDummyFunction {
|
5468 | 5482 | --field=" $GUI_WINEEXTDIR!$DESC_WINEEXTDIR ('WINEEXTDIR')":DIR "${WINEEXTDIR/#-/ -}" `#CAT_Wine` `#SUB_Directories` `#MENU_GLOBAL` \
|
5469 | 5483 | --field=" $GUI_WINE_LOG_DIR!$DESC_WINE_LOG_DIR ('WINE_LOG_DIR')":DIR "${WINE_LOG_DIR/#-/ -}" `#CAT_Wine` `#SUB_Directories` `#MENU_GAME` \
|
5470 | 5484 | --field=" $GUI_ONLYWICO!$DESC_ONLYWICO ('ONLYWICO')":CHK "${ONLYWICO/#-/ -}" `#CAT_Wine` `#SUB_Checkbox` `#MENU_GAME` \
|
| 5485 | +--field=" $GUI_USEGLOBALWINEDPI!$DESC_USEGLOBALWINEDPI ('USEGLOBALWINEDPI')":CHK "${USEGLOBALWINEDPI/#-/ -}" `#CAT_Wine` `#SUB_Checkbox` `#MENU_GLOBAL` \ |
| 5486 | +--field=" $GUI_GLOBALWINEDPI!$DESC_GLOBALWINEDPI ('GLOBALWINEDPI')":CBE "$( cleanDropDown "${GLOBALWINEDPI/#-/ -}" "$WINEDPIVALUES" )" `#CAT_Wine` `#MENU_GLOBAL` \ |
| 5487 | +--field=" $GUI_USEPERGAMEWINEDPI!$DESC_USEPERGAMEWINEDPI ('USEPERGAMEWINEDPI')":CHK "${USEPERGAMEWINEDPI/#-/ -}" `#CAT_Wine` `#SUB_Checkbox` `#MENU_GAME` \ |
| 5488 | +--field=" $GUI_PERGAMEWINEDPI!$DESC_PERGAMEWINEDPI ('PERGAMEWINEDPI')":CBE "$( cleanDropDown "${PERGAMEWINEDPI/#-/ -}" "$WINEDPIVALUES" )" `#CAT_Wine` `#MENU_GAME` \ |
5471 | 5489 | --field="$(spanFont "$GUI_OPTSMO2" "H")":LBL "SKIP" `#CAT_MO2` `#HEAD_Vortex` `#MENU_GAME` `#MENU_GLOBAL` \
|
5472 | 5490 | --field=" $GUI_MO2COMPDATA!$DESC_MO2COMPDATA ('MO2COMPDATA')":DIR "${MO2COMPDATA/#-/ -}" `#CAT_MO2` `#SUB_Directories` `#MENU_GLOBAL` \
|
5473 | 5491 | --field=" $GUI_USEMO2PROTON!$DESC_USEMO2PROTON ('USEMO2PROTON')":CB "$(cleanDropDown "${USEMO2PROTON/#-/ -}" "$PROTYADLIST")" `#CAT_MO2` `#MENU_GLOBAL` \
|
@@ -11361,7 +11379,8 @@ function setCommandLaunchVars {
|
11361 | 11379 | export RADV_PERFTEST=$STLRAD_PFTST
|
11362 | 11380 | fi
|
11363 | 11381 |
|
11364 |
| - setVulkanPostProcessor |
| 11382 | + setVulkanPostProcessor # i.e. vkShade |
| 11383 | + setWineDpiScaling |
11365 | 11384 | }
|
11366 | 11385 |
|
11367 | 11386 | # Used to create the launch command for games and custom commands so they can use various program functions i.e. GameScope
|
@@ -12847,6 +12866,45 @@ function chooseWinetricks {
|
12847 | 12866 | fi
|
12848 | 12867 | }
|
12849 | 12868 |
|
| 12869 | +## Manage setting the Wine DPI scale factor in the registry |
| 12870 | +function setWineDpiScaling { |
| 12871 | + WINEDPIREGPATH="HKEY_CURRENT_USER\\Control Panel\\Desktop" |
| 12872 | + WINEDPIREGKEY="LogPixels" |
| 12873 | + WINEDPIUSEVAL="" |
| 12874 | + |
| 12875 | + ## Didn't reuse updateWineRegistryKey because it can't handle the DWORD stuff we need to do here |
| 12876 | + ## Room for a potential refactor in future |
| 12877 | + |
| 12878 | + # If no Wine DPI option is enabled, skip |
| 12879 | + if [ "$USEPERGAMEWINEDPI" -eq 0 ] && [ "$USEGLOBALWINEDPI" -eq 0 ]; then |
| 12880 | + return |
| 12881 | + fi |
| 12882 | + |
| 12883 | + WINEDPISCALEREGWINECMD="$( getWineBinFromProtPath "$( getProtPathFromCSV "$USEPROTON" )" )" # Get the Wine binary to run regedit with |
| 12884 | + # Per-Game Wine DPI takes priority over Global, so Global goes in elseif |
| 12885 | + if [ "$USEPERGAMEWINEDPI" -eq 1 ]; then # Per-Game |
| 12886 | + if [ -z "$PERGAMEWINEDPI" ]; then |
| 12887 | + writelog "INFO" "${FUNCNAME[0]} - Per-Game Wine DPI was enabled, but its value was blank -- Overwriting it as '$DEFWINEDPI'" |
| 12888 | + PERGAMEWINEDPI="$DEFWINEDPI" |
| 12889 | + fi |
| 12890 | + writelog "INFO" "${FUNCNAME[0]} - Setting Per-Game Wine DPI to '$PERGAMEWINEDPI' into prefix '$GPFX'" |
| 12891 | + WINEDPIUSEVAL="$PERGAMEWINEDPI" |
| 12892 | + elif [ "$USEGLOBALWINEDPI" -eq 1 ]; then # Global |
| 12893 | + if [ -z "$GLOBALWINEDPI" ]; then |
| 12894 | + writelog "INFO" "${FUNCNAME[0]} - Global Wine DPI was enabled, but its value was blank -- Overwriting it as '$DEFWINEDPI'" |
| 12895 | + GLOBALWINEDPI="$DEFWINEDPI" |
| 12896 | + fi |
| 12897 | + writelog "INFO" "${FUNCNAME[0]} - Setting Global Wine DPI to '$GLOBALWINEDPI' into prefix '$GPFX'" |
| 12898 | + WINEDPIUSEVAL="$GLOBALWINEDPI" |
| 12899 | + fi |
| 12900 | + |
| 12901 | + # Make extra sure we only set the DPI scaling when we should |
| 12902 | + if [ -n "$WINEDPIUSEVAL" ]; then |
| 12903 | + writelog "INFO" "${FUNCNAME[0]} - Updating '$WINEDPIREGKEY' with DPI value '$WINEDPIUSEVAL'" |
| 12904 | + WINEPREFIX="$GPFX" "$WINEDPISCALEREGWINECMD" reg "add" "$WINEDPIREGPATH" "/v" "$WINEDPIREGKEY" "/t" "REG_DWORD" "/d" "${WINEDPIUSEVAL}" "/f" |
| 12905 | + fi |
| 12906 | +} |
| 12907 | + |
12850 | 12908 | function SetWineDebugChannels {
|
12851 | 12909 | if [ -n "$1" ]; then
|
12852 | 12910 | AID="$1"
|
|
0 commit comments