diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index 3b82c74a..49473c75 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -403,6 +403,23 @@ unpack () {
     fi
 }
 
+fix_combobox () {
+    name1="$1"
+    name2="$2"
+
+    name3="${name2//\!${name1}\!/\!}"
+    name3="!${name3//${name1}\!/\!}"
+    name3="${name3//\!\!/\!}"
+    name4="$(echo ${name3} | awk -F"!" '{print $NF}')"
+    if [[ ${name1} != "disabled" ]] ; then
+        disabled="!disabled"
+    fi
+    if [[ ${name1} == ${name4} ]] ; then
+        name3="$(echo ${name3} | sed "s/\!${name1}$//")"
+    fi
+    echo "${name1}${name3}${disabled}"
+}
+
 pw_clear_pfx () {
     try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.dotnet48"
     try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.wine_ver"
@@ -1748,29 +1765,6 @@ start_portwine () {
         var_vkd3d_config_update single_queue
     fi
 
-    if [[ "${PW_USE_GAMESCOPE}" == 1 ]] \
-    && command -v gamescope &>/dev/null \
-    && ! check_gamescope_session
-    then
-        # Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/6029
-        if [[ -d "/sys/module/i915" ]] ; then
-            export INTEL_DEBUG="norbc"
-        fi
-        if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
-            PW_vendorID="$(echo "${PW_VULKANINFO_PORTABLE[@]}" | grep -B3 "${PW_GPU_USE}" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
-            PW_deviceID="$(echo "${PW_VULKANINFO_PORTABLE[@]}" | grep -B3 "${PW_GPU_USE}" | grep deviceID | sort -u | awk -F'0x' '{print $2}')"
-            PW_ID_VIDEO="--prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
-        else
-            unset PW_ID_VIDEO
-        fi
-        export PW_RUN_GAMESCOPE="gamescope -o 30 ${PW_ID_VIDEO} ${GAMESCOPE_ARGS} --"
-        export PW_WINE_FULLSCREEN_FSR="0"
-        export vk_xwayland_wait_ready="false"
-    else
-        export PW_USE_GAMESCOPE="0"
-        export PW_RUN_GAMESCOPE=""
-    fi
-
     enabled_fake_nvidia_videocard ()
     {
         if [[ "${1}" == old ]] ; then
@@ -2041,7 +2035,7 @@ start_portwine () {
             && ! check_wayland_session
             then
                 if check_gamescope_session \
-                || [[ "${PW_USE_GAMESCOPE}" = "1" ]]
+                || [[ "${PW_GAMESCOPE}" = "1" ]]
                 then
                     export AMD_DEBUG="nodcc"
                 fi
@@ -2060,7 +2054,7 @@ start_portwine () {
             export MESA_LOADER_DRIVER_OVERRIDE="zink"
             if ! check_wayland_session \
             && ! check_gamescope_session \
-            && [[ "${PW_USE_GAMESCOPE}" != "1" ]]
+            && [[ "${PW_GAMESCOPE}" != "1" ]]
             then
                 export LIBGL_KOPPER_DRI2="1"
             fi
@@ -2157,6 +2151,171 @@ start_portwine () {
         done
     fi
 
+    # GAMESCOPE enable:
+    if [[ "${PW_GAMESCOPE}" == 1 ]] \
+    && [[ "${GAMESCOPE_INSTALLED}" == 1 ]] \
+    && ! check_gamescope_session
+    then
+        if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
+            PW_vendorID="$(cat "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp" | grep -B3 "${PW_GPU_USE}" | grep vendorID | sort -u | awk -F'0x' '{print $2}')"
+            PW_deviceID="$(cat "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp" | grep -B3 "${PW_GPU_USE}" | grep deviceID | sort -u | awk -F'0x' '{print $2}')"
+            PW_ID_VIDEO="--prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
+        else
+            unset PW_ID_VIDEO
+        fi
+        # Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/6029
+        if [[ -d "/sys/module/i915" ]] ; then
+            export INTEL_DEBUG="norbc"
+        fi
+
+
+        if [[ "${PW_GAMESCOPE_ARGS_LEGACY}" != "disabled" ]] ; then
+                export PW_RUN_GAMESCOPE="gamescope -o 30 ${PW_ID_VIDEO} ${PW_GAMESCOPE_ARGS_LEGACY} --"
+                export PW_WINE_FULLSCREEN_FSR="0"
+                export vk_xwayland_wait_ready="false"
+        else
+            unset PW_GAMESCOPE_ARGS_NEW
+            #checkbox
+            if [ "${PW_GS_BORDERLESS_WINDOW}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -b"
+            fi
+            if [ "${PW_GS_FULLSCREEN}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -f"
+            fi
+            if [ "${PW_GS_FORCE_FULLSCREEN}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-windows-fullscreen"
+            fi
+            if [ "${PW_GS_FORCE_GRAB_KEYBOARD}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -g"
+            fi
+            if [ "${PW_GS_FORCE_GRAB_CURSOR}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-grab-cursor"
+            fi
+            if [ "${PW_GS_DISPLAY_INDEX}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --display-index"
+            fi
+            if [ "${PW_GS_ENABLE_HDR}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-enabled"
+                export DXVK_HDR="1"
+            fi
+            if [ "${PW_GS_SDR_GAMMUT_WIDENESS}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --sdr-gamut-wideness"
+            fi
+            if [ "${PW_GS_ENABLE_HDR_INVERSE}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable"
+            fi
+            if [ "${PW_GS_IMMEDIATE_FLIPS}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --immediate-flips"
+            fi
+            if [ "${PW_GS_ADAPTIVE_SYNC}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --adaptive-sync"
+            fi
+            if [ "${PW_GS_FORCE_COMPOSITION}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-composition"
+            fi
+            if [ "${PW_GS_DEBUG_HUD}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --debug-hud"
+            fi
+            if [ "${PW_GS_FORCE_HDR_SUPPORT}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-debug-force-support"
+            fi
+            if [ "${PW_GS_FORCE_HDR_ENABLE}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-debug-force-output"
+            fi
+            if [ "${PW_GS_EXPOSE_WAYLAND}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --expose-wayland"
+            fi
+            if [ "${PW_GS_REALTIME_SCHEDULING}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --rt"
+            fi
+            if [ "${PW_GS_HEADLESS}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --headless"
+            fi
+            if [ "${PW_GS_ENABLE_GAMESCOPE_WSI}" == "1" ] ; then
+                ENABLE_GAMESCOPE_WSI="1"
+            fi
+            if [ "${PW_GS_HDR_ITM_ENABLE}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable"
+            fi
+            if [ "${PW_GS_MANGOAPP}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --mangoapp"
+                export PW_MANGOHUD="0"
+            fi
+            if [ "${PW_GS_BACKEND_SDL}" == "1" ] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --backend sdl"
+                export PW_MANGOHUD="0"
+            fi
+
+            #combobox
+            if [[ "${PW_GS_SHOW_RESOLUTION}" != "disabled" ]] ; then
+                PWGSRESSW1="${PW_GS_SHOW_RESOLUTION%x*}"
+                PWGSRESSW="${PWGSRESSW1%%-*}"
+                PWGSRESSH1="${PW_GS_SHOW_RESOLUTION#*x}"
+                PWGSRESSH="${PWGSRESSH1%%-*}"
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -W ${PWGSRESSW} -H ${PWGSRESSH}"
+
+                if [[ "${PW_GS_INTERNAL_RESOLUTION}" != "0.0" ]] ; then
+                    GS_RES_W=${PW_GS_SHOW_RESOLUTION:0:4}
+                    GS_RES_H=${PW_GS_SHOW_RESOLUTION:5:8}
+                    PWGSRESIW=$(echo ${GS_RES_W} ${PW_GS_INTERNAL_RESOLUTION} | awk '{print $1*$2}')
+                    PWGSRESIH=$(echo ${GS_RES_H} ${PW_GS_INTERNAL_RESOLUTION} | awk '{print $1*$2}')
+                    PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -w ${PWGSRESIW} -h ${PWGSRESIH}"
+                fi
+            fi
+            if [[ "${PW_GS_FRAME_LIMIT}" != "disabled" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -r ${PW_GS_FRAME_LIMIT}"
+            fi
+            if [[ "${PW_GS_MAX_SCALE_FACTOR}" != "0.0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -m ${PW_GS_MAX_SCALE_FACTOR}"
+            fi
+            if [[ "${PW_GS_FRAME_LIMIT_UNFOCUSED}" != "disabled" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -o ${PW_GS_FRAME_LIMIT_UNFOCUSED}"
+            fi
+            if [[ "${PW_GS_FORCE_ORIENTATION}" != "disabled" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --force-orientation ${PW_GS_FORCE_ORIENTATION}"
+            fi
+            if [[ "${PW_GS_FILTER_MODE}" != "disabled" ]] ; then
+                export PW_WINE_FULLSCREEN_FSR="0"
+                if [[ "${PW_GS_FILTER_MODE_OLD}" != "true" ]] ; then
+                    PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -F ${PW_GS_FILTER_MODE}"
+                else
+                    if [[ "${PW_GS_FILTER_MODE}" == "fsr" ]] ; then
+                        PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -U"
+                    elif [[ "${PW_GS_FILTER_MODE}" == "nis" ]] ; then
+                        PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -Y"
+                    fi
+                fi
+            fi
+            if [[ "${PW_GS_SCALER_MODE}" != "disabled" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -S ${PW_GS_SCALER_MODE}"
+            fi
+            if [[ "${PW_GS_MOUSE_SENSITIVITY}" != "0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -s ${PW_GS_MOUSE_SENSITIVITY}"
+            fi
+            if [[ "${PW_GS_UPSCALE_SHARPNESS}" != "0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --sharpness ${PW_GS_UPSCALE_SHARPNESS}"
+            fi
+            if [[ "${PW_GS_HDR_SDR_NITS}" != "0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-sdr-content-nits ${PW_GS_HDR_SDR_NITS}"
+            fi
+            if [[ "${PW_GS_INVERSE_SDR}" != "0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable --hdr-itm-sdr-nits ${PW_GS_INVERSE_SDR}"
+            fi
+            if [[ "${PW_GS_INVERSE_TARGET}" != "0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --hdr-itm-enable --hdr-itm-target-nits ${PW_GS_INVERSE_TARGET}"
+            fi
+            if [[ "${PW_GS_FRAMERATE_LIMIT}" != "disabled" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} --framerate-limit ${PW_GS_FRAMERATE_LIMIT}"
+            fi
+            if [[ "${PW_GS_HIDE_CURSOR_DELAY}" != "0" ]] ; then
+                PW_GAMESCOPE_ARGS_NEW="${PW_GAMESCOPE_ARGS_NEW} -C ${PW_GS_HIDE_CURSOR_DELAY}"
+            fi
+
+            edit_db_from_gui PW_GAMESCOPE_ARGS_NEW
+            export PW_RUN_GAMESCOPE="gamescope ${PW_ID_VIDEO}${PW_GAMESCOPE_ARGS_NEW} --"
+        fi
+    fi
+
     # force use dxgi.dll from wine
     if [[ "${PW_USE_WINE_DXGI}" == "1" ]] ; then
         rm_from_var CP_DXVK_FILES "dxgi"
@@ -2171,7 +2330,6 @@ start_portwine () {
 
     if [[ ! -z "$CP_DXVK_FILES" ]] ; then
         print_info "Try create symlink DXVK files..."
-        check_variables DXVK_HDR "0"
         for wine_dxvk_dll in $CP_DXVK_FILES ; do
             if [[ -f "${PATH_TO_DXVK_FILES}/x64/${wine_dxvk_dll}.dll"  ]] ; then
                 try_force_link_file "${PATH_TO_DXVK_FILES}/x32/${wine_dxvk_dll}.dll" "${WINEPREFIX}/drive_c/windows/syswow64/${wine_dxvk_dll}.dll"
@@ -3101,7 +3259,7 @@ export -f gui_proton_downloader
 # GUI EDIT_DB
 gui_edit_db () {
     KEY_EDIT_DB_GUI=$RANDOM
-    PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_USE_GAMESCOPE
+    PW_EDIT_DB_LIST="PW_MANGOHUD PW_MANGOHUD_USER_CONF PW_VKBASALT PW_VKBASALT_USER_CONF PW_DGVOODOO2 PW_GAMESCOPE
     PW_NO_ESYNC PW_NO_FSYNC PW_USE_RAY_TRACING PW_USE_NVAPI_AND_DLSS PW_USE_FAKE_DLSS PW_WINE_FULLSCREEN_FSR PW_HIDE_NVIDIA_GPU
     PW_VIRTUAL_DESKTOP PW_USE_TERMINAL PW_GUI_DISABLED_CS PW_USE_GAMEMODE PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME
     PW_REDUCE_PULSE_LATENCY PW_USE_US_LAYOUT PW_USE_GSTREAMER PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
@@ -3156,7 +3314,7 @@ if [[ "${SKIP_EDIT_DB_TEXT_INFO}" != 1 ]] ; then
     export PW_USE_SYSTEM_VK_LAYERS_INFO=$(gettext 'Use system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers')
     export PW_USE_OBS_VKCAPTURE_INFO=$(gettext 'Enable the ability to write to OBS Studio using obs-vkcapture (ATTENTION: the forced use of system mangohud, vkBasalt, obs-vkcapture and other applications using vulkan layers will be enabled)')
     export PW_DISABLE_COMPOSITING_INFO=$(gettext 'Disable desktop compositing (effects). It often improves performance.')
-    export PW_USE_GAMESCOPE_INFO=$(gettext '<b>Super + F :</b> Toggle fullscreen
+    export PW_GAMESCOPE_INFO=$(gettext '<b>Super + F :</b> Toggle fullscreen
 <b>Super + N :</b> Toggle nearest neighbour filtering
 <b>Super + U :</b> Toggle FSR upscaling
 <b>Super + Y :</b> Toggle NIS upscaling
@@ -3198,6 +3356,13 @@ fi
             ;;
     esac
 
+    if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then
+        GAMESCOPE_LEGACY_CBE="CBE"
+    else
+        GAMESCOPE_LEGACY_CBE="DCBE"
+        PW_GAMESCOPE_ARGS_LEGACY="disabled"
+    fi
+
     unset ADD_CHK_BOX_EDIT_DB
     for int_to_boole in ${PW_EDIT_DB_LIST} ; do
         if [ "${!int_to_boole}" == "1" ]
@@ -3257,11 +3422,21 @@ A brief instruction:
     --field=":LBL" "" \
     --field="$(gettext "ADD ARGUMENTS FOR .EXE FILE")!$(gettext "Adding an argument after the <b>.exe</b> file, just like you would add an argument in a shortcut on a <b>WINDOWS </b> system") :CBE" "\\${LAUNCH_PARAMETERS[@]}!-dx11 -skipintro 1" \
     --field=":LBL" "" \
-    --field="$(gettext "Limit the use of processor cores")!$(gettext "Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)") :CB" "${CPU_LIMIT_VAR}!disabled!${GET_LOGICAL_CORE}" \
-    --field="$(gettext "Choose a graphics card to run the game (in user.conf)")!$(gettext "Select which video card will be used to run the game (used for all running games and programs in PortProton)") :CB" "${GPU_VAR}!disabled!${GET_GPU_NAMES}" \
-    --field="$(gettext "Forcibly select the OpenGL version for the game")!$(gettext "You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)") :CB" "${PW_MESA_GL_VERSION_OVERRIDE}!disabled!4.6COMPAT!4.6!4.5COMPAT!4.5!3.3COMPAT!3.3" \
-    --field="$(gettext "Forcibly select the VKD3D feature level")!$(gettext "You can set a forced feature level VKD3D for games on DirectX12") :${VKD3D_CB}" "${PW_VKD3D_FEATURE_LEVEL}!disabled!12_2!12_1!12_0!11_1!11_0" \
-    --field="$(gettext "Force certain locale for an app:")!$(gettext "Fixes encoding issues in legacy software") :CB" "${PW_LOCALE_SELECT}!disabled!$LOCALE_LIST" \
+    --field="$(gettext "Limit the use of processor cores")!$(gettext "Limiting the number of CPU cores is useful for Unity games (It is recommended to set the value equal to 8)") :CB" "$(fix_combobox "${CPU_LIMIT_VAR}" "${GET_LOGICAL_CORE}")" \
+    --field="$(gettext "Choose a graphics card to run the game (in user.conf)")!$(gettext "Select which video card will be used to run the game (used for all running games and programs in PortProton)") :CB" "$(fix_combobox "${GPU_VAR}" "${GET_GPU_NAMES}")" \
+    --field="$(gettext "Forcibly select the OpenGL version for the game")!$(gettext "You can select the required OpenGL version, some games require a forced Compatibility Profile (COMPAT). (Examples are in the drop-down list)") :CB" "$(fix_combobox "${PW_MESA_GL_VERSION_OVERRIDE}" "4.6COMPAT!4.6!4.5COMPAT!4.5!3.3COMPAT!3.3")" \
+    --field="$(gettext "Forcibly select the VKD3D feature level")!$(gettext "You can set a forced feature level VKD3D for games on DirectX12") :${VKD3D_CB}" "$(fix_combobox "${PW_VKD3D_FEATURE_LEVEL}" "12_2!12_1!12_0!11_1!11_0")" \
+    --field="$(gettext "Force certain locale for an app:")!$(gettext "Fixes encoding issues in legacy software") :CB" "$(fix_combobox "${PW_LOCALE_SELECT}" "$LOCALE_LIST")" \
+    --field="$(gettext "Add arguments for GAMESCOPE:")!$(gettext "<b>-W, -H:</b> set the resolution used by gamescope. Resizing the gamescope window will update these settings. Ignored in embedded mode. If -H is specified but -W isn't, a 16:9 aspect ratio is assumed. Defaults to 1280×720.
+<b>-w, -h:</b> set the resolution used by the game. If -h is specified but -w isn't, a 16:9 aspect ratio is assumed. Defaults to the values specified in -W and -H.
+<b>-r:</b> set a frame-rate limit for the game. Specified in frames per second. Defaults to unlimited.
+<b>-o:</b> set a frame-rate limit for the game when unfocused. Specified in frames per second. Defaults to unlimited.
+<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling.
+<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling.
+<b>-S integer:</b> use integer scaling.
+<b>-S stretch:</b> use stretch scaling, the game will fill the window. (e.g. 4:3 to 16:9).
+<b>-b:</b> create a border-less window.
+<b>-f:</b> create a full-screen window.") :${GAMESCOPE_LEGACY_CBE}" "$(fix_combobox "\\${PW_GAMESCOPE_ARGS_LEGACY}" "-r 60 -F fsr")" \
     1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_fps_limit" 2>/dev/null &
 
     "${pw_yad}" --notebook --key="$KEY_EDIT_DB_GUI" --title "$(gettext "EDIT DB")" --text-align=center \
@@ -3312,6 +3487,7 @@ A brief instruction:
     PW_MESA_GL_VERSION_OVERRIDE="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $9}')"
     PW_VKD3D_FEATURE_LEVEL="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $10}')"
     PW_LOCALE_SELECT="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $11}')"
+    PW_GAMESCOPE_ARGS_LEGACY="$(echo ${PW_ADD_SETTINGS} | awk -F"%" '{print $12}')"
 
     if [[ "${CPU_LIMIT}" != "disabled" ]] ; then
         export PW_WINE_CPU_TOPOLOGY="${CPU_LIMIT}:$(seq -s, 0 $((${CPU_LIMIT} - 1)))"
@@ -3319,7 +3495,7 @@ A brief instruction:
         export PW_WINE_CPU_TOPOLOGY="disabled"
     fi
 
-    edit_db_from_gui ${PW_EDIT_DB_LIST} LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY GAMESCOPE_ARGS \
+    edit_db_from_gui ${PW_EDIT_DB_LIST} LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_GAMESCOPE_ARGS_LEGACY \
     PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PW_LOCALE_SELECT
 
     if [[ -z "$MANGOHUD_CONFIG" ]] ; then
@@ -3621,6 +3797,7 @@ fi
         --button="$(gettext "DISABLE") MANGOHUD"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable MangoHud and go to the previous menu")":182 \
         --button="$(gettext "PREVIEW CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Start vkcube for preview changes")":184 \
         --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":186  2>/dev/null
+
     YAD_MANGOHUD_STATUS="$?"
     case "${YAD_MANGOHUD_STATUS}" in
         1|252)
@@ -3758,8 +3935,8 @@ fi
 
     "${pw_yad}" --plug=$KEY_DGV2_GUI --tabnum="2" --form --columns=2 --separator="%" \
     --gui-type-layout=${DGVOODOO2_GUI_TYPE_LAYOUT_DOWN} \
-    --field="${CHKBOX_SPACE}FILTERING!$(gettext "Forced anisotropic filtering in Direct3D games") :CB" "${PW_DGV2_FILTERING}!disabled!2!4!8!16" \
-    --field="${CHKBOX_SPACE}ANTIALIASING!$(gettext "Forced antialiasing in Direct3D and Glide games") :CB" "${PW_DGV2_ANTIALIASING}!disabled!2!4!8" \
+    --field="${CHKBOX_SPACE}FILTERING!$(gettext "Forced anisotropic filtering in Direct3D games") :CB" "$(fix_combobox "${PW_DGV2_FILTERING}" "2!4!8!16")" \
+    --field="${CHKBOX_SPACE}ANTIALIASING!$(gettext "Forced antialiasing in Direct3D and Glide games") :CB" "$(fix_combobox "${PW_DGV2_ANTIALIASING}" "2!4!8")" \
     1> "${PORT_WINE_TMP_PATH}/tmp_yad_dgv2_set_cb" 2>/dev/null &
 
     "${pw_yad}" --paned --key=$KEY_DGV2_GUI --height="350" --title="dgVoodoo2" --center \
@@ -3814,61 +3991,186 @@ fi
 
 # GUI GAMESCOPE
 gui_gamescope () {
-    unset ADD_CHK_BOX_GAMESCOPE
+    KEY_GS_GUI=$RANDOM
+    PW_GS_LIST="PW_GS_FULLSCREEN PW_GS_FORCE_FULLSCREEN PW_GS_BORDERLESS_WINDOW PW_GS_FORCE_GRAB_CURSOR
+    PW_GS_FORCE_GRAB_KEYBOARD PW_GS_DISPLAY_INDEX PW_GS_ENABLE_HDR PW_GS_HDR_ITM_ENABLE PW_GS_SDR_GAMMUT_WIDENESS
+    PW_GS_ENABLE_HDR_INVERSE PW_GS_ENABLE_GAMESCOPE_WSI PW_GS_FORCE_COMPOSITION PW_GS_DEBUG_HUD PW_GS_FORCE_HDR_SUPPORT
+    PW_GS_FORCE_HDR_ENABLE PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING PW_GS_MANGOAPP
+    "
+
+    ! grep -e '--mangoapp' "${PORT_WINE_TMP_PATH_USE_RAM}/gamescope-help.tmp" &>/dev/null && rm_from_var PW_GS_LIST "PW_GS_MANGOAPP"
+
+    check_wayland_session && grep -e '--backend' "${PORT_WINE_TMP_PATH_USE_RAM}/gamescope-help.tmp" &>/dev/null \
+    && add_to_var PW_GS_LIST "PW_GS_BACKEND_SDL"
 
 if [[ "${SKIP_GAMESCOPE_TEXT_INFO}" != 1 ]] ; then
+    export PW_GS_FULLSCREEN_INFO=$(gettext 'Make the window fullscreen')
+    export PW_GS_FORCE_FULLSCREEN_INFO=$(gettext 'Force windows inside of gamescope to be the size of the nested display (fullscreen)')
+    export PW_GS_BORDERLESS_WINDOW_INFO=$(gettext 'Make the window borderless. Working only with backend sdl or X11 session.')
+    export PW_GS_FORCE_GRAB_KEYBOARD_INFO=$(gettext 'Grab the keyboard')
+    export PW_GS_FORCE_GRAB_CURSOR_INFO=$(gettext 'Always use relative mouse mode instead of flipping dependent on cursor visibility.')
+    export PW_GS_DISPLAY_INDEX_INFO=$(gettext 'Forces gamescope to use a specific display in nested mode.')
+    export PW_GS_ENABLE_HDR_INFO=$(gettext 'Enable HDR output (needs Gamescope WSI layer enabled for support from clients). If this is not set, and there is a HDR client, it will be tonemapped SDR'.)
+    export PW_GS_SDR_GAMMUT_WIDENESS_INFO=$(gettext "Set the 'wideness' of the gamut for SDR comment. 0 - 1.")
+    export PW_GS_ENABLE_HDR_INVERSE_INFO=$(gettext 'Enable SDR to HDE inverse tone mapping - Only works for SDR input')
+    export PW_GS_FORCE_COMPOSITION_INFO=$(gettext 'Disables direct scan-out')
+    export PW_GS_DEBUG_HUD_INFO=$(gettext 'Enables a HUD with some GameScope debug information')
+    export PW_GS_FORCE_HDR_SUPPORT_INFO=$(gettext 'Forces support for HDR and associated opptions even if the current display does not support it')
+    export PW_GS_FORCE_HDR_ENABLE_INFO=$(gettext 'Force support and output for HDR10 PQ even if the current display does not support it. This will look very wrong on non-HDR displays')
+    export PW_GS_EXPOSE_WAYLAND_INFO=$(gettext 'Expose Wayland clients using xdg-shell')
+    export PW_GS_REALTIME_SCHEDULING_INFO=$(gettext 'Enable GameScope realtime scheduling')
+    export PW_GS_ENABLE_GAMESCOPE_WSI_INFO=$(gettext 'This can be useful for some HDR options and for some DXVK v2.3 vsync optimisations')
+    export PW_GS_HDR_ITM_ENABLE_INFO=$(gettext 'Enable SDR->HDR inverse tone mapping. only works for SDR input.')
+    export PW_GS_MANGOAPP_INFO=$(gettext 'Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.')
+    export PW_GS_BACKEND_SDL_INFO=$(gettext 'Use sdl backend, it can help with borderless window and max scale factor settings. (by default wayland is used).')
 
     export SKIP_GAMESCOPE_TEXT_INFO=1
 fi
+    unset ADD_CHK_BOX_GS
+    if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then
+        GAMESCOPE_NEED_INSTALL="$(gettext "Change settings gamescope for") <b>${PORTWINE_DB}</b>\n $(gettext "<b>NOTE:</b> To display help for each item, simply hover your mouse over the text")"
+        GSSR_CBE="CBE" && GSIR_NUM="NUMN" && GSFL_CBE="CBE"
+        GSMSF_NUM="NUMN" && GSSM_CB="CB" && GSFM_CB="CB"
+        GSUS_NUM="NUM" && GSMS_NUM="NUM" && GSB_CB="CB"
+        GSFO_CB="CB" && GSFLU_CBE="CBE" && GSHSN_NUM="NUM"
+        GSIS_NUM="NUM" && GSIT_NUM="NUM" && GSFRL_CBE="CBE"
+        GSHCD_NUM="NUM"
+        for int_to_boole in ${PW_GS_LIST} ; do
+            if [ "${!int_to_boole}" == "1" ]
+            then export ${int_to_boole}="TRUE"
+            else export ${int_to_boole}="FALSE"
+            fi
+            TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
+            int_to_boole_non_pw="$(echo ${int_to_boole//PW_GS/} | sed 's/_/ /g' )"
+            ADD_CHK_BOX_GS+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:${THEME_CHKBOX}%${!int_to_boole}%"
+        done
+    else
+        if check_flatpak ; then
+            GAMESCOPE_NEED_INSTALL="$(gettext "<b>Gamescope is not detected on the system, to install it, run the command in the terminal:\n flatpak install org.freedesktop.Platform.VulkanLayer.gamescope (install the latest version)</b>")"
+        else
+            GAMESCOPE_NEED_INSTALL="$(gettext "<b>Gamescope is not detected on the system, please contact the manufacturer of your distribution\n or search the Internet for information on how to install gamescope on your system.</b>")"
+        fi
+        GSSR_CBE="DCBE" && PW_GS_SHOW_RESOLUTION="disabled"
+        GSIR_NUM="DNUMN" && PW_GS_INTERNAL_RESOLUTION="0.0"
+        GSFL_CBE="DCBE" && PW_GS_FRAME_LIMIT="disabled"
+        GSMSF_NUM="DNUMN" && PW_GS_MAX_SCALE_FACTOR="0.0"
+        GSSM_CB="DCB" && PW_GS_SCALER_MODE="disabled"
+        GSFM_CB="DCB" && PW_GS_FILTER_MODE="disabled"
+        GSUS_NUM="DNUM" && PW_GS_UPSCALE_SHARPNESS="0"
+        GSMS_NUM="DNUM" && PW_GS_MOUSE_SENSITIVITY="0"
+        GSFO_CB="DCB" && PW_GS_FORCE_ORIENTATION="disabled"
+        GSFLU_CBE="DCBE" && PW_GS_FRAME_LIMIT_UNFOCUSED="disabled"
+        GSHSN_NUM="DNUM" && PW_GS_HDR_SDR_NITS="0"
+        GSIS_NUM="DNUM" && PW_GS_INVERSE_SDR="0"
+        GSIT_NUM="DNUM" && PW_GS_INVERSE_TARGET="0"
+        GSFRL_CBE="DCBE" && PW_GS_FRAMERATE_LIMIT="disabled"
+        GSHCD_NUM="DNUM" && PW_GS_HIDE_CURSOR_DELAY="0"
+        for int_to_boole in ${PW_GS_LIST} ; do
+            if [ "${!int_to_boole}" == "1" ]
+            then export ${int_to_boole}="TRUE"
+            else export ${int_to_boole}="FALSE"
+            fi
+            TMP_HELP_FOR_GUI="${int_to_boole}_INFO"
+            int_to_boole_non_pw="$(echo ${int_to_boole//PW_GS/} | sed 's/_/ /g' )"
+            ADD_CHK_BOX_GS+="--field=${CHKBOX_SPACE}${int_to_boole_non_pw}!${!TMP_HELP_FOR_GUI}:FD${THEME_CHKBOX}%${!int_to_boole}%"
+        done
+    fi
 
     old_IFS=$IFS
     IFS="%"
-    "${pw_yad}" --plug=$KEY_GAMESCOP_GUI --form --separator=" " --columns=3 ${ADD_CHK_BOX_GAMESCOPE} \
-    1> "${PORT_WINE_TMP_PATH}/tmp_output_yad_edit_db" 2>/dev/null &
+    "${pw_yad}" --plug=$KEY_GS_GUI --tabnum="1" --form --columns=4 --separator=" " --text-align=center --text "$GAMESCOPE_NEED_INSTALL" \
+    --gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_UP} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_UP} \
+    ${ADD_CHK_BOX_GS} \
+    1> "${PORT_WINE_TMP_PATH}/tmp_yad_gs_set" 2>/dev/null &
     IFS=$old_IFS
 
-    output_yad_gamescope="$("${pw_yad}" --title "GAMESCOPE" --text-align=center --height="350" \
-    --text "$(gettext "Change settings gamescope for") <b>${PORTWINE_DB}</b>\n $(gettext "<b>NOTE:</b> To display help for each item, simply hover your mouse over the text")" \
-    --window-icon="$PW_GUI_ICON_PATH/portproton.svg" --separator=" " --expand --center --form \
-    --field="$(gettext "Add arguments for GAMESCOPE:")!$(gettext "
-<b>-W, -H:</b> set the resolution used by gamescope. Resizing the gamescope window will update these settings. Ignored in embedded mode. If -H is specified but -W isn't, a 16:9 aspect ratio is assumed. Defaults to 1280×720.
-<b>-w, -h:</b> set the resolution used by the game. If -h is specified but -w isn't, a 16:9 aspect ratio is assumed. Defaults to the values specified in -W and -H.
-<b>-r:</b> set a frame-rate limit for the game. Specified in frames per second. Defaults to unlimited.
-<b>-o:</b> set a frame-rate limit for the game when unfocused. Specified in frames per second. Defaults to unlimited.
-<b>-F fsr:</b> use AMD FidelityFX™ Super Resolution 1.0 for upscaling.
-<b>-F nis:</b> use NVIDIA Image Scaling v1.0.3 for upscaling.
-<b>-S integer:</b> use integer scaling.
-<b>-S stretch:</b> use stretch scaling, the game will fill the window. (e.g. 4:3 to 16:9).
-<b>-b:</b> create a border-less window.
-<b>-f:</b> create a full-screen window.") :CBE" "\\${GAMESCOPE_ARGS}!-r 60 -F fsr!" \
+    GAMESCOPE_XRANDR="$(grep -e '[0-9]x' "${PORT_WINE_TMP_PATH_USE_RAM}/xrandr.tmp" | awk '{print $1}' | sort -rVu | grep "^[1-2]" | tr '\n' '!' | sed 's/.$//')"
+
+    #debian bookworm fix
+    GS_FILTER_CB="!linear!nearest!fsr!nis!pixel"
+    grep -e '-U, --fsr-upscaling' "${PORT_WINE_TMP_PATH_USE_RAM}/gamescope-help.tmp" &>/dev/null \
+    && GS_FILTER_CB="!fsr!nis" && export PW_GS_FILTER_MODE_OLD="true"
+
+    "${pw_yad}" --plug=$KEY_GS_GUI --tabnum="2" --form --columns=3 --separator="%" \
+    --gui-type-text=${GAMESCOPE_GUI_TYPE_TEXT_DOWN} --gui-type-layout=${GAMESCOPE_GUI_TYPE_LAYOUT_DOWN} \
+    --field="${CHKBOX_SPACE}$(gettext "Show resolution")!$(gettext "Set the resolution used by gamescope. Resizing the gamescope window will update these settings. Defaults to 1280x720.") :${GSSR_CBE}" "$(fix_combobox "${PW_GS_SHOW_RESOLUTION}" "${GAMESCOPE_XRANDR}")" \
+    --field="${CHKBOX_SPACE}$(gettext "Internal resolution")!$(gettext "Scale internal resolution (possible values ​​from 0.5 to 2)") :${GSIR_NUM}" "${PW_GS_INTERNAL_RESOLUTION}:!0.5..2" \
+    --field="${CHKBOX_SPACE}$(gettext "Frame limit")!$(gettext "Set a framerate limit. Specified in frames per second") :${GSFL_CBE}" "$(fix_combobox "${PW_GS_FRAME_LIMIT}" "30!60!90!120!144")" \
+    --field="${CHKBOX_SPACE}$(gettext "Max scale factor")!$(gettext "Maximum Scale Factor. Working only on X11 or backend sdl (0.0 is unused)") :${GSMSF_NUM}" "${PW_GS_MAX_SCALE_FACTOR}:!0..100" \
+    --field="${CHKBOX_SPACE}$(gettext "Scaler mode")!$(gettext "Specify how to scale the GameScope window content") :${GSSM_CB}" "$(fix_combobox "${PW_GS_SCALER_MODE}" "auto!integer!fit!fill!stretch")" \
+    --field="${CHKBOX_SPACE}$(gettext "Filter mode")!$(gettext "Use a filter such as AMD FidelityFX SuperResolution 1.0 (FSR) or NVIDIA Image Scaling v1.0.3 (NIS)") :${GSFM_CB}" "$(fix_combobox "${PW_GS_FILTER_MODE}" "${GS_FILTER_CB}")" \
+    --field="${CHKBOX_SPACE}$(gettext "Upscale sharpness")!$(gettext "Sharpening value for FidelityFX SuperResolution 1.0 (FSR) and NVIDIA Image Scaling v1.0.3 (NIS). 0 is max sharpening, 20 is min sharpening.") :${GSUS_NUM}" "${PW_GS_UPSCALE_SHARPNESS}:!0..20" \
+    --field="${CHKBOX_SPACE}$(gettext "Mouse sensitivity")!$(gettext "Configurable mouse sensitivity, multiply mouse movement by specified decimal number amount") :${GSMS_NUM}" "${PW_GS_MOUSE_SENSITIVITY}:!0..1000" \
+    --field="${CHKBOX_SPACE}$(gettext "Force orientation")!$(gettext "Rotate the internal GameScope display") :${GSFO_CB}" "$(fix_combobox "${PW_GS_FORCE_ORIENTATION}" "left!right!normal!upsidedown")" \
+    --field="${CHKBOX_SPACE}$(gettext "Frame limit unfocused")!$(gettext "Set a framerate limit for the game when unfocused. Specified in frames per second.") :${GSFLU_CBE}" "$(fix_combobox "${PW_GS_FRAME_LIMIT_UNFOCUSED}" "30!60!90!120!144")" \
+    --field="${CHKBOX_SPACE}$(gettext "HDR SDR nits")!$(gettext "Set the luminance of SDR content in nits - Default is 400") :${GSHSN_NUM}" "${PW_GS_HDR_SDR_NITS}:!0..10000" \
+    --field="${CHKBOX_SPACE}$(gettext "HDR inverse SDR")!$(gettext "Set the luminance of SDR content in nets used as the input for the inverse tone mapping process - Maximum is 1000 nits") :${GSIS_NUM}" "${PW_GS_INVERSE_SDR}:!0..1000" \
+    --field="${CHKBOX_SPACE}$(gettext "HDR inverse target")!$(gettext "Set the target luninance of the inverse tone mapping process - Max is 10000 nits") :${GSIT_NUM}" "${PW_GS_INVERSE_TARGET}:!0..10000" \
+    --field="${CHKBOX_SPACE}$(gettext "Framerate limit")!$(gettext "Set a simple framerate limit. Used as a divisor of the refresh rate, rounds down eg 60 / 59 -> 60fps, 60 / 25 -> 30fps.") :${GSFRL_CBE}" "$(fix_combobox "${PW_GS_FRAMERATE_LIMIT}" "30!60!90!120!144")" \
+    --field="${CHKBOX_SPACE}$(gettext "Hide cursor delay")!$(gettext "Amount of time in milliseconds to wait before hiding the cursor") :${GSHCD_NUM}" "${PW_GS_HIDE_CURSOR_DELAY}:!0..10000" \
+    1> "${PORT_WINE_TMP_PATH}/tmp_yad_gs_set_cb" 2>/dev/null &
+
+    "${pw_yad}" --paned --key="$KEY_GS_GUI" --title="GameScope" --center \
+    --separator=" " --window-icon="$PW_GUI_ICON_PATH/portproton.svg" \
+    --gui-type=settings-paned \
     --button="$(gettext "CANCEL THE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Cancel the current changes and return to the previous menu")":1 \
     --button="$(gettext "DISABLE") GAMESCOPE"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Disable GameScope and go to the previous menu")":162 \
-    --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 2>/dev/null)"
-    YAD_STATUS="$?"
-    export SKIP_CHECK_UPDATES=1
+    --button="$(gettext "SAVE CHANGES")"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"$(gettext "Save the current changes, and go to the previous menu")":166 \
+    2>/dev/null
 
-    GAMESCOPE_ARGS="$(echo "$output_yad_gamescope" | awk -F"%" '{print $1}')"
-    edit_db_from_gui
-
-    case "${YAD_STATUS}" in
+    YAD_GAMESCOPE_STATUS="$?"
+    case "${YAD_GAMESCOPE_STATUS}" in
         1|252)
             export SKIP_CHECK_UPDATES=1
             /usr/bin/env bash -c ${pw_full_command_line[*]} &
             exit 0
             ;;
         162)
-            export PW_USE_GAMESCOPE=0
-            edit_db_from_gui PW_USE_GAMESCOPE
+            export PW_GAMESCOPE=0
+            edit_db_from_gui PW_GAMESCOPE
             export SKIP_CHECK_UPDATES=1
             /usr/bin/env bash -c ${pw_full_command_line[*]} &
             exit 0
             ;;
         166)
-            export PW_USE_GAMESCOPE=1
+            export PW_GAMESCOPE=1
             ;;
     esac
 
-    edit_db_from_gui PW_USE_GAMESCOPE GAMESCOPE_ARGS
+    output_yad_gs=($(<"${PORT_WINE_TMP_PATH}/tmp_yad_gs_set"))
+    bool_from_yad=0
+    for boole_to_int in ${PW_GS_LIST} ; do
+        export ${boole_to_int}=${output_yad_gs[$bool_from_yad]}
+        if [ "${!boole_to_int}" == "TRUE" ]
+        then export ${boole_to_int}="1"
+        else export ${boole_to_int}="0"
+        fi
+        export bool_from_yad=$(( ${bool_from_yad} + 1 ))
+    done
+
+    PW_ADD_SETTINGS_GS=$(head -n 1 "${PORT_WINE_TMP_PATH}/tmp_yad_gs_set_cb")
+
+    PW_GS_SHOW_RESOLUTION="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $1}')"
+    PW_GS_INTERNAL_RESOLUTION="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $2}' | tr ',' '.')"
+    PW_GS_FRAME_LIMIT="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $3}')"
+    PW_GS_MAX_SCALE_FACTOR="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $4}' | tr ',' '.')"
+    PW_GS_SCALER_MODE="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $5}')"
+    PW_GS_FILTER_MODE="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $6}')"
+    PW_GS_UPSCALE_SHARPNESS="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $7}')"
+    PW_GS_MOUSE_SENSITIVITY="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $8}')"
+    PW_GS_FORCE_ORIENTATION="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $9}')"
+    PW_GS_FRAME_LIMIT_UNFOCUSED="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $10}')"
+    PW_GS_HDR_SDR_NITS="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $11}')"
+    PW_GS_INVERSE_SDR="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $12}')"
+    PW_GS_INVERSE_TARGET="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $13}')"
+    PW_GS_FRAMERATE_LIMIT="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $14}')"
+    PW_GS_HIDE_CURSOR_DELAY="$(echo ${PW_ADD_SETTINGS_GS} | awk -F"%" '{print $15}')"
+
+    edit_db_from_gui ${PW_GS_LIST} PW_GAMESCOPE PW_GS_SHOW_RESOLUTION PW_GS_INTERNAL_RESOLUTION \
+    PW_GS_FRAME_LIMIT PW_GS_MAX_SCALE_FACTOR PW_GS_FORCE_ORIENTATION PW_GS_FILTER_MODE \
+    PW_GS_SCALER_MODE PW_GS_MOUSE_SENSITIVITY PW_GS_UPSCALE_SHARPNESS \
+    PW_GS_FRAME_LIMIT_UNFOCUSED PW_GS_HDR_SDR_NITS PW_GS_INVERSE_SDR PW_GS_INVERSE_TARGET \
+    PW_GS_FRAMERATE_LIMIT PW_GS_HIDE_CURSOR_DELAY
 
     export SKIP_CHECK_UPDATES=1
     /usr/bin/env bash -c ${pw_full_command_line[*]} &
@@ -4250,7 +4552,7 @@ portwine_start_debug () {
     echo "PW_SCREEN_PRIMARY=$PW_SCREEN_PRIMARY" >> "${PORT_WINE_PATH}/PortProton.log"
     echo "----------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
     echo "Vulkan info device name:" >> "${PORT_WINE_PATH}/PortProton.log"
-    echo "${PW_VULKANINFO_PORTABLE[@]}" | grep -E '^GPU|deviceName|driverName' >> "${PORT_WINE_PATH}/PortProton.log"
+    grep -E '^GPU|deviceName|driverName' "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp" >> "${PORT_WINE_PATH}/PortProton.log"
     "${PW_PLUGINS_PATH}/portable/bin/vkcube" --c 50
     if [ $? -eq 0 ]; then
         echo "Vulkan cube test passed successfully" >> "${PORT_WINE_PATH}/PortProton.log"
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index 018e3e3c..1a8665eb 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -82,6 +82,14 @@ unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NO
 export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
 rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
 
+if [[ -d "/tmp" ]] ; then
+create_new_dir "/tmp/PortProton"
+export PORT_WINE_TMP_PATH_USE_RAM="/tmp/PortProton"
+else
+create_new_dir "${PORT_WINE_PATH}/data/tmp/PortProton"
+export PORT_WINE_TMP_PATH_USE_RAM="${PORT_WINE_PATH}/data/tmp/PortProton"
+fi
+
 echo "" > "${PORT_WINE_TMP_PATH}/tmp_yad_form"
 echo "" > "${PORT_WINE_TMP_PATH}/tmp_yad_form_vulkan"
 
@@ -187,26 +195,34 @@ esac
 
 pw_check_and_download_plugins
 
-# check skip update
-if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] \
-&& [[ ! -f "/tmp/portproton.lock" ]]
+if [[ ! -f "${PORT_WINE_TMP_PATH_USE_RAM}/portproton.lock" ]]
 then
     pw_port_update
-    if command -v vulkaninfo &>/dev/null ; then
-        PW_VULKANINFO_PORTABLE="$(vulkaninfo --summary 2>/dev/null)"
-    else
-        PW_VULKANINFO_PORTABLE="$($PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo 2>/dev/null)"
+else
+    scripts_install_ver=$(head -n 1 "${PORT_WINE_TMP_PATH}/scripts_ver")
+    export scripts_install_ver
+fi
+
+# check skip update
+if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
+    if command gamescope --help 2> "${PORT_WINE_TMP_PATH_USE_RAM}/gamescope-help.tmp" ; then
+        export GAMESCOPE_INSTALLED="1"
     fi
-    VULKAN_DRIVER_NAME="$(echo "${PW_VULKANINFO_PORTABLE[@]}" | grep driverName | awk '{print$3}' | head -1)"
-    GET_GPU_NAMES=$(echo "${PW_VULKANINFO_PORTABLE[@]}" | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
+    if command -v vulkaninfo &>/dev/null ; then
+        vulkaninfo --summary 2>/dev/null > "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp"
+    else
+        $PW_PLUGINS_PATH/portable/bin/x86_64-linux-gnu-vulkaninfo 2>/dev/null > "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp"
+    fi
+    VULKAN_DRIVER_NAME="$(grep -e 'driverName' "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp" | awk '{print$3}' | head -1)"
+    GET_GPU_NAMES=$(cat "${PORT_WINE_TMP_PATH_USE_RAM}/vulkaninfo.tmp" | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
     LSPCI_VGA="$(lspci -k 2>/dev/null | grep -E 'VGA|3D' | tr -d '\n')"
-    export PW_VULKANINFO_PORTABLE VULKAN_DRIVER_NAME GET_GPU_NAMES LSPCI_VGA
+    export VULKAN_DRIVER_NAME GET_GPU_NAMES LSPCI_VGA
 
     if command -v xrandr &>/dev/null ; then
-        PW_XRANDR="$(xrandr)"
-        PW_SCREEN_RESOLUTION="$(echo "${PW_XRANDR[@]}" | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')"
-        PW_SCREEN_PRIMARY="$(echo "${PW_XRANDR[@]}" | grep "primary" | awk '{print $1}')"
-        export PW_XRANDR PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION
+        xrandr --current 2>/dev/null > "${PORT_WINE_TMP_PATH_USE_RAM}/xrandr.tmp"
+        PW_SCREEN_RESOLUTION="$(cat "${PORT_WINE_TMP_PATH_USE_RAM}/xrandr.tmp" | sed -rn 's/^.*primary.* ([0-9]+x[0-9]+).*$/\1/p')"
+        PW_SCREEN_PRIMARY="$(grep -e 'primary' "${PORT_WINE_TMP_PATH_USE_RAM}/xrandr.tmp" | awk '{print $1}')"
+        export PW_SCREEN_PRIMARY PW_SCREEN_RESOLUTION
         echo ""
         print_var PW_SCREEN_RESOLUTION PW_SCREEN_PRIMARY
     else
@@ -224,34 +240,33 @@ then
 
     GET_LOCALE_LIST="ru_RU.utf en_US.utf zh_CN.utf ja_JP.utf ko_KR.utf"
     unset LOCALE_LIST
-    PW_LOCALE_ALL="$(locale -a)"
+    locale -a 2>/dev/null > "${PORT_WINE_TMP_PATH_USE_RAM}/locale.tmp"
     for LOCALE in $GET_LOCALE_LIST ; do
-        if locale -a | grep -i "$LOCALE" &>/dev/null ; then
+        if grep -e $LOCALE "${PORT_WINE_TMP_PATH_USE_RAM}/locale.tmp" &>/dev/null ; then
             if [[ ! -z "$LOCALE_LIST" ]]
-            then LOCALE_LIST+="!$(echo "${PW_LOCALE_ALL[@]}" | grep -i "$LOCALE")"
-            else LOCALE_LIST="$(echo "${PW_LOCALE_ALL[@]}" | grep -i "$LOCALE")"
+            then LOCALE_LIST+="!$(grep -e $LOCALE "${PORT_WINE_TMP_PATH_USE_RAM}/locale.tmp")"
+            else LOCALE_LIST="$(grep -e $LOCALE "${PORT_WINE_TMP_PATH_USE_RAM}/locale.tmp")"
             fi
         fi
     done
     export LOCALE_LIST
-else
-    scripts_install_ver=$(head -n 1 "${PORT_WINE_TMP_PATH}/scripts_ver")
-    export scripts_install_ver
 fi
 
+
 # create lock file
 if ! check_flatpak ; then
-if [[ -f "/tmp/portproton.lock" ]] ; then
-    print_warning "Found lock file: /tmp/portproton.lock"
+if [[ -f "${PORT_WINE_TMP_PATH_USE_RAM}/portproton.lock" ]] ; then
+    print_warning "Found lock file: "${PORT_WINE_TMP_PATH_USE_RAM}/portproton.lock""
     yad_question "$(gettext 'A running PortProton session was detected.\nDo you want to end the previous session?')" || exit 0
 fi
-touch "/tmp/portproton.lock"
+fi
+
+touch "${PORT_WINE_TMP_PATH_USE_RAM}/portproton.lock"
 rm_lock_file () {
     echo "Removing the lock file..."
-    rm -fv "/tmp/portproton.lock" && echo "OK"
+    rm -fv "${PORT_WINE_TMP_PATH_USE_RAM}/portproton.lock" && echo "OK"
 }
 trap "rm_lock_file" EXIT
-fi
 
 if check_flatpak
 then try_remove_dir "${PORT_WINE_TMP_PATH}/libs${PW_LIBS_VER}"
diff --git a/data_from_portwine/scripts/var b/data_from_portwine/scripts/var
index 5ae8295b..3f4ba657 100755
--- a/data_from_portwine/scripts/var
+++ b/data_from_portwine/scripts/var
@@ -3,12 +3,10 @@
 #SCRIPTS_NEXT_VERSION=2311
 ########################################################################
 export LANGUAGES_LIST="ru es"
-export PW_MANGOHUD="0"
-export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine"
-export PW_VKBASALT_EFFECTS="Curves:cas"
-export PW_VKBASALT_FFX_CAS="0.66"
 export PW_VKBASALT="0"
-export GAMESCOPE_ARGS="-F fsr"
+export PW_MANGOHUD="0"
+export PW_DGVOODOO2="0"
+export PW_GAMESCOPE="0"
 export PW_USE_RUNTIME="1"
 export PW_RT_MOUNT_RO=("")
 export PW_RT_MOUNT_RW=("/media" "/mnt" "/run/media/${USER}" "${PORT_WINE_PATH}")
@@ -30,12 +28,12 @@ export PW_WINE_CPU_TOPOLOGY="disabled"
 export STAGING_SHARED_MEMORY="1"
 export PW_MESA_GL_VERSION_OVERRIDE="disabled"
 export PW_VKD3D_FEATURE_LEVEL="disabled"
+export PW_GAMESCOPE_ARGS_LEGACY="disabled"
 export PW_FORCE_LARGE_ADDRESS_AWARE="1"
 export PW_USE_EAC_AND_BE="1"
 export PW_USE_US_LAYOUT="0"
 export PW_GPU_USE="disabled"
 export PW_LOCALE_SELECT="disabled"
-export PW_USE_GAMESCOPE="0"
 export PW_DINPUT_PROTOCOL="0"
 ###GTK_CONFIG###
 # export GTK_DATA_PREFIX=
@@ -60,6 +58,11 @@ export DXVK_STABLE_VER="1.10.3-28"
 export DXVK_GIT_VER="2.3.1-72"
 export VKD3D_STABLE_VER="1.1-2602"
 export VKD3D_GIT_VER="1.1-4051"
+###VKBASALT###
+export PW_VKBASALT_EFFECTS="Curves:cas"
+export PW_VKBASALT_FFX_CAS="0.66"
+###MANGOHUD###
+export DEFAULT_MANGOHUD_CONFIG="arch,cpu_mhz,cpu_temp,engine_version,gamemode,gpu_core_clock,gpu_mem_clock,gpu_name,gpu_temp,ram,resolution,vkbasalt,vram,vulkan_driver,wine"
 ###DGVOODOO2###
 export DGV2_VER="2.81.3"
 export VKD3D_DGV2_VER="1.1-3622"
@@ -71,6 +74,40 @@ export PW_DGV2_USE_DX12="0"
 export PW_DGV2_FASTMEMORY="0"
 export PW_DGV2_VRAM_INCREASE="0"
 export PW_DGV2_FULLSCREEN="0"
+###GAMESCOPE###
+export PW_GS_INTERNAL_RESOLUTION="1.0"
+export PW_GS_SHOW_RESOLUTION="disabled"
+export PW_GS_FRAME_LIMIT="disabled"
+export PW_GS_FRAME_LIMIT_UNFOCUSED="disabled"
+export PW_GS_FORCE_ORIENTATION="disabled"
+export PW_GS_FILTER_MODE="disabled"
+export PW_GS_SCALER_MODE="disabled"
+export PW_GS_FRAMERATE_LIMIT="disabled"
+export PW_GS_MOUSE_SENSITIVITY="0"
+export PW_GS_UPSCALE_SHARPNESS="0"
+export PW_GS_MAX_SCALE_FACTOR="0.0"
+export PW_GS_HDR_SDR_NITS="0"
+export PW_GS_INVERSE_SDR="0"
+export PW_GS_INVERSE_TARGET="0"
+export PW_GS_HIDE_CURSOR_DELAY="0"
+export PW_GS_FULLSCREEN="0"
+export PW_GS_BORDERLESS_WINDOW="0"
+export PW_GS_FORCE_FULLSCREEN="0"
+export PW_GS_FORCE_GRAB_CURSOR="0"
+export PW_GS_FORCE_GRAB_KEYBOARD="0"
+export PW_GS_ENABLE_HDR="0"
+export PW_GS_HDR_ITM_ENABLE="0"
+export PW_GS_ENABLE_WIDE_GAMMUT="0"
+export PW_GS_ENABLE_HDR_INVERSE="0"
+export PW_GS_FORCE_COMPOSITION="0"
+export PW_GS_DEBUG_HUD="0"
+export PW_GS_FORCE_HDR_SUPPORT="0"
+export PW_GS_FORCE_HDR_ENABLE="0"
+export PW_GS_EXPOSE_WAYLAND="0"
+export PW_GS_REALTIME_SCHEDULING="0"
+export PW_GS_ENABLE_GAMESCOPE_WSI="0"
+export PW_GS_BACKEND_SDL="0"
+export PW_GS_MANGOAPP="0"
 ###PREFIX_VERSION###
 export DOTPFX_VER="48v7"
 export DEFPFX_VER="v1"
diff --git a/data_from_portwine/themes/classic.pptheme b/data_from_portwine/themes/classic.pptheme
index 624a0b65..13385a53 100755
--- a/data_from_portwine/themes/classic.pptheme
+++ b/data_from_portwine/themes/classic.pptheme
@@ -57,6 +57,11 @@ export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5
 export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5
 export DGVOODOO2_GUI_TYPE_TEXT_UP=0
 
+export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5
+export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5
+export GAMESCOPE_GUI_TYPE_TEXT_UP=0
+export GAMESCOPE_GUI_TYPE_TEXT_DOWN=0
+
 export SETTINGS_BASE_GUI_TYPE_LAYOUT=0
 export SETTINGS_BASE_GUI_TYPE_TEXT=0
 
diff --git a/data_from_portwine/themes/compact.pptheme b/data_from_portwine/themes/compact.pptheme
index f53521ce..cf5e2fcc 100755
--- a/data_from_portwine/themes/compact.pptheme
+++ b/data_from_portwine/themes/compact.pptheme
@@ -39,54 +39,48 @@ export START_GUI_TYPE="--gui-type=start \
 --homogeneous-row \
 "
 
-# для окна запуска приложения
-export START_GUI_TYPE_BOX=5 # значение для box
-export START_GUI_TYPE_LAYOUT_UP=3 # значение для layout вверху (для notebook 1 вкладка)
-export START_GUI_TYPE_LAYOUT_PANED=0 # значение для layout внизу для paned
-export START_GUI_TYPE_LAYOUT_NOTEBOOK=0 # значение для layout в notebook 2 вкладка
-export START_GUI_TYPE_TEXT=2 # значение для text
-export START_GUI_TYPE_IMAGE=5 # значение для images
+export START_GUI_TYPE_BOX=5
+export START_GUI_TYPE_LAYOUT_UP=3
+export START_GUI_TYPE_LAYOUT_PANED=0
+export START_GUI_TYPE_LAYOUT_NOTEBOOK=0
+export START_GUI_TYPE_TEXT=2
+export START_GUI_TYPE_IMAGE=5
 
-# для основного меню
 export MAIN_MENU_GUI_TYPE_LAYOUT=0
 
-# для vkbasalt
 export VKBASALT_GUI_TYPE_LAYOUT_UP=5
 export VKBASALT_GUI_TYPE_LAYOUT_DOWN=5
 export VKBASALT_GUI_TYPE_TEXT_UP=5
 
-# для mangohud
 export MANGOHUD_GUI_TYPE_LAYOUT_UP=5
 export MANGOHUD_GUI_TYPE_LAYOUT_DOWN=5
 export MANGOHUD_GUI_TYPE_TEXT_UP=5
 export MANGOHUD_GUI_TYPE_TEXT_DOWN=5
 
-# для dgvoodoo2
 export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5
 export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5
 export DGVOODOO2_GUI_TYPE_TEXT_UP=5
 
-# для основных настроек
+export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5
+export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5
+export GAMESCOPE_GUI_TYPE_TEXT_UP=5
+export GAMESCOPE_GUI_TYPE_TEXT_DOWN=5
+
 export SETTINGS_BASE_GUI_TYPE_LAYOUT=2
 export SETTINGS_BASE_GUI_TYPE_TEXT=0
 
-# для окна winetricks
 export WINETRICKS_GUI_TYPE_LAYOUT=7
 export WINETRICKS_GUI_TYPE_TEXT=2
 
-# для окна скачивания версий wine
 export WINE_DOWNLOAD_GUI_TYPE_LAYOUT=7
 export WINE_DOWNLOAD_GUI_TYPE_TEXT=2
 
-# для создания ярлыков
 export SETTINGS_SHORTCUT_GUI_TYPE_BOX=5
 export SETTINGS_SHORTCUT_GUI_TYPE_LAYOUT=5
 export SETTINGS_SHORTCUT_GUI_TYPE_TEXT=5
 export SETTINGS_SHORTCUT_GUI_TYPE_IMAGE=5
 
-# для всплывающих окон по типу error, info, question
 export YAD_INFO_GUI_TYPE_LAYOUT=2
 
-# настройки индикатора прогресса
 export PROGRESS_BAR_BORDERS_SIZE=20
 export PROGRESS_BAR_WIDTH_SIZE=500
diff --git a/data_from_portwine/themes/default.pptheme b/data_from_portwine/themes/default.pptheme
index 542e7757..3ee636d8 100755
--- a/data_from_portwine/themes/default.pptheme
+++ b/data_from_portwine/themes/default.pptheme
@@ -77,6 +77,12 @@ export DGVOODOO2_GUI_TYPE_LAYOUT_UP=5
 export DGVOODOO2_GUI_TYPE_LAYOUT_DOWN=5
 export DGVOODOO2_GUI_TYPE_TEXT_UP=5
 
+# для gamescope
+export GAMESCOPE_GUI_TYPE_LAYOUT_UP=5
+export GAMESCOPE_GUI_TYPE_LAYOUT_DOWN=5
+export GAMESCOPE_GUI_TYPE_TEXT_UP=5
+export GAMESCOPE_GUI_TYPE_TEXT_DOWN=5
+
 # для основных настроек
 export SETTINGS_BASE_GUI_TYPE_LAYOUT=2
 export SETTINGS_BASE_GUI_TYPE_TEXT=0
diff --git a/data_from_portwine/themes/gui/yad_gui_pp b/data_from_portwine/themes/gui/yad_gui_pp
index 8c19c264..a92a4b15 100755
Binary files a/data_from_portwine/themes/gui/yad_gui_pp and b/data_from_portwine/themes/gui/yad_gui_pp differ