Compare commits

...

36 Commits

Author SHA1 Message Date
f0c561a295 Scripts version 2371 2024-11-08 19:07:37 +03:00
a92689686d Merge branch 'dervart-devel' into devel 2024-11-08 18:45:24 +03:00
685629d6ca Merge branch 'devel' of github.com:dervart/PortWINE into dervart-devel 2024-11-08 18:44:25 +03:00
169c146b77 Merge branch 'Htylol-fix-for-portwine_missing_shortcut' into devel 2024-11-08 18:37:42 +03:00
1aca1ec017 Merge branch 'fix-for-portwine_missing_shortcut' of github.com:Htylol/PortWINE into Htylol-fix-for-portwine_missing_shortcut 2024-11-08 18:37:22 +03:00
3be8645b38 remove epmty VAR in USER.CONF 2024-11-08 18:36:13 +03:00
041ac9d04c Merge branch 'Htylol-gtk-themes-1' into devel 2024-11-08 18:03:51 +03:00
b366de16df fix conflict 2024-11-08 18:03:15 +03:00
b6ceaa3f96 Merge branch 'Htylol-update-start.sh1' into devel 2024-11-08 17:46:52 +03:00
e60b6cd0b7 Merge branch 'update-start.sh1' of github.com:Htylol/PortWINE into Htylol-update-start.sh1 2024-11-08 17:46:46 +03:00
8f92994070 Merge branch 'Htylol-update-gs1' into devel 2024-11-08 17:45:52 +03:00
b40b17d0b7 Merge branch 'update-gs1' of github.com:Htylol/PortWINE into Htylol-update-gs1 2024-11-08 17:45:44 +03:00
9a4a007518 Merge branch 'Htylol-skip-resize-fix1' into devel 2024-11-08 17:36:45 +03:00
8a49e81bff Merge branch 'skip-resize-fix1' of github.com:Htylol/PortWINE into Htylol-skip-resize-fix1 2024-11-08 17:36:35 +03:00
813d83d6d1 fix dpi 2024-11-08 17:33:39 +03:00
aaaade7877 Merge branch 'Htylol-improve_reg_func' into devel 2024-11-08 17:15:14 +03:00
880f6ebaf2 Merge branch 'improve_reg_func' of github.com:Htylol/PortWINE into Htylol-improve_reg_func 2024-11-08 17:15:04 +03:00
903f6c7041 added dxgi.syncInterval=0 for BDO 2024-11-08 17:12:35 +03:00
1384f6da2d disabled WINEFSYNC_FUTEX2 by default 2024-11-08 17:11:06 +03:00
94723c743d update BDO 2024-11-08 17:08:20 +03:00
cf06436a14 Update Saturn.ppdb 2024-11-08 17:58:54 +07:00
27c9d36072 Update Saturn.ppdb
Добавлено уточнение по поводу нестабильности игры при сворачивании
2024-11-08 17:57:54 +07:00
90a666dc91 Update Saturn.ppdb 2024-11-08 16:31:51 +07:00
e1928d5ec4 Saturn db 2024-11-08 16:26:49 +07:00
76bbec19dd Saturn PW 2024-11-08 16:26:10 +07:00
8956b79993 Saturn image 2024-11-08 16:25:08 +07:00
c26ce5b2fe update 2024-11-07 04:43:54 +05:00
16dc574121 Fixed bug for portwine_missing_shortcut 2024-11-06 12:59:35 +05:00
1e9a9e3ea5 Update for portwine_exe (only .exe,.bat,.msi,.reg) 2024-11-06 06:31:55 +05:00
fafd42ecd1 Added __GL_THREADED_OPTIMIZATIONS for nvidia gamescope 2024-11-04 15:10:42 +05:00
bb7133ae25 added fix for alt linux 2024-11-04 06:17:01 +05:00
b97b6623f2 Added choice of GTK themes (default, light, dark) 2024-11-04 03:46:12 +05:00
feedb9b2c9 Added PW_GS_CURSOR_SCALE_HEIGHT for gamescope 2024-11-03 10:39:53 +05:00
2bdcf4ee7b Added recommend_dpi and fixes_after_update 2024-11-02 21:47:47 +05:00
84834e1bdc Added .png to 48 and make happy exe-thumbnailer 2024-11-02 18:57:07 +05:00
7b0579e3c2 Улучшил функцию для работы с реестром 2024-11-02 04:38:18 +05:00
20 changed files with 396 additions and 116 deletions

View File

@ -2,6 +2,17 @@ You can help us in the development of the project on the website: https://linux-
---------------------------------------- ----------------------------------------
Changelog: Changelog:
###Scripts version 2371### / Date: 08.11.2024 / Download update size: 4 megabytes
* FUTEX2 is disabled by default (breaks some games)
* added auto-installation of the Saturn game (thanks to Dervart)
* added the ability to select a dark/light theme in the global PP settings (thanks to Htylol)
* significantly improved functions (thanks to Htylol):
* registry editor
* determining the extension of the launched file
* check desktop files
* gamescope settings
* added cursor scale setting for gamescope (thanks to Htylol)
###Scripts version 2370### / Date: 01.11.2024 / Download update size: 215 megabytes ###Scripts version 2370### / Date: 01.11.2024 / Download update size: 215 megabytes
* updated PROTON_LG to version "9-18" * updated PROTON_LG to version "9-18"
* updated versions: * updated versions:

View File

@ -2,6 +2,17 @@
----------------------------------------- -----------------------------------------
История изменений: История изменений:
###Scripts version 2371### / Дата: 08.11.2024 / Размер скачиваемого обновления: 4 мегабайта
* FUTEX2 отключен по умолчанию (ломает работу некоторых игр)
* добавлена автоустановка игры Saturn (спасибо Dervart)
* добавлена возможность выбора темной/светлой темы в глобальных настройках PP (спасибо Htylol)
* значительно улучшены функции (спасибо Htylol):
* редактор реестра
* определение расширения запускаемого файла
* проверки ярлыков
* настройки gamescope
* добавлена настройка масштаба курсора для gamescope (спасибо Htylol)
###Scripts version 2370### / Дата: 01.11.2024 / Размер скачиваемого обновления: 215 мегабайт ###Scripts version 2370### / Дата: 01.11.2024 / Размер скачиваемого обновления: 215 мегабайт
* обновлен PROTON_LG до версии "9-18" * обновлен PROTON_LG до версии "9-18"
* обновлены версии: * обновлены версии:

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-01 02:46+0500\n" "POT-Creation-Date: 2024-11-02 10:04+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -1256,6 +1256,10 @@ msgid "Force use sdl videodriver x11, works with BACKEND SDL. (Default is "
"wayland)" "wayland)"
msgstr "" msgstr ""
msgid "If specified, sets a base output height to linearly scale the cursor "
"against."
msgstr ""
msgid "Change settings gamescope for" msgid "Change settings gamescope for"
msgstr "" msgstr ""
@ -1381,6 +1385,24 @@ msgid "If downloading steam covers is enabled, they will be downloaded and "
"is unavailable for some reason)" "is unavailable for some reason)"
msgstr "" msgstr ""
msgid "default"
msgstr ""
msgid "compact"
msgstr ""
msgid "classic"
msgstr ""
msgid "dark"
msgstr ""
msgid "light"
msgstr ""
msgid "Recommended value"
msgstr ""
msgid "Choose a graphics card to run the game" msgid "Choose a graphics card to run the game"
msgstr "" msgstr ""
@ -1388,10 +1410,10 @@ msgid "Select which video card will be used to run the game (used for all "
"running games and programs in PortProton)" "running games and programs in PortProton)"
msgstr "" msgstr ""
msgid "Force dpi for fonts" msgid "Force dpi"
msgstr "" msgstr ""
msgid "Here you can set forced dpi for fonts in wine" msgid "Here you can set forced dpi for applications wine"
msgstr "" msgstr ""
msgid "Choice wine audio driver" msgid "Choice wine audio driver"
@ -1400,12 +1422,18 @@ msgstr ""
msgid "Fixes sound popling if choice alsa" msgid "Fixes sound popling if choice alsa"
msgstr "" msgstr ""
msgid "Choice gui themes" msgid "Select PortProton theme"
msgstr "" msgstr ""
msgid "Allows you to select a theme for PortProton" msgid "Allows you to select a theme for PortProton"
msgstr "" msgstr ""
msgid "Select gtk theme"
msgstr ""
msgid "Allows you to select a theme for GTK."
msgstr ""
msgid "Time display" msgid "Time display"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-01 02:43+0500\n" "POT-Creation-Date: 2024-11-02 10:04+0500\n"
"PO-Revision-Date: 2024-10-26 13:58+0500\n" "PO-Revision-Date: 2024-10-26 13:58+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -1636,6 +1636,12 @@ msgstr ""
"Forzar el uso del controlador de video SDL x11, funciona con el backend SDL. " "Forzar el uso del controlador de video SDL x11, funciona con el backend SDL. "
"(Por defecto es Wayland)." "(Por defecto es Wayland)."
msgid ""
"If specified, sets a base output height to linearly scale the cursor against."
msgstr ""
"Si se especifica, establece una altura de salida base para escalar "
"linealmente el cursor."
msgid "Change settings gamescope for" msgid "Change settings gamescope for"
msgstr "Cambiar ajustes gamescope para" msgstr "Cambiar ajustes gamescope para"
@ -1804,6 +1810,24 @@ msgstr ""
"crearán. (La desactivación se proporciona en los casos en que su descarga no " "crearán. (La desactivación se proporciona en los casos en que su descarga no "
"esté disponible por algún motivo)" "esté disponible por algún motivo)"
msgid "default"
msgstr "por defecto"
msgid "compact"
msgstr "compacto"
msgid "classic"
msgstr "clásico"
msgid "dark"
msgstr "oscuro"
msgid "light"
msgstr "ligero"
msgid "Recommended value"
msgstr ""
msgid "Choose a graphics card to run the game" msgid "Choose a graphics card to run the game"
msgstr "Elige una tarjeta gráfica para ejecutar el juego" msgstr "Elige una tarjeta gráfica para ejecutar el juego"
@ -1814,10 +1838,10 @@ msgstr ""
"Selecciona qué tarjeta de vídeo se utilizará para ejecutar el juego (se " "Selecciona qué tarjeta de vídeo se utilizará para ejecutar el juego (se "
"utiliza para todos los juegos y programas en ejecución en PortProton)" "utiliza para todos los juegos y programas en ejecución en PortProton)"
msgid "Force dpi for fonts" msgid "Force dpi"
msgstr "" msgstr ""
msgid "Here you can set forced dpi for fonts in wine" msgid "Here you can set forced dpi for applications wine"
msgstr "" msgstr ""
msgid "Choice wine audio driver" msgid "Choice wine audio driver"
@ -1826,12 +1850,18 @@ msgstr "Controlador de audio de vino elegido"
msgid "Fixes sound popling if choice alsa" msgid "Fixes sound popling if choice alsa"
msgstr "Corrige el sonido estallido de elección alsa alsa" msgstr "Corrige el sonido estallido de elección alsa alsa"
msgid "Choice gui themes" msgid "Select PortProton theme"
msgstr "Temas de interfaz gráfica de usuario elegidos" msgstr "Seleccione el tema PortProton"
msgid "Allows you to select a theme for PortProton" msgid "Allows you to select a theme for PortProton"
msgstr "Le permite seleccionar un tema para PortProton" msgstr "Le permite seleccionar un tema para PortProton"
msgid "Select gtk theme"
msgstr "Seleccione el tema gtk"
msgid "Allows you to select a theme for GTK."
msgstr "Le permite seleccionar un tema para GTK."
msgid "Time display" msgid "Time display"
msgstr "Mostrar tiempo" msgstr "Mostrar tiempo"
@ -2222,6 +2252,9 @@ msgid ""
"list below:" "list below:"
msgstr "" msgstr ""
#~ msgid "Choice gui themes"
#~ msgstr "Temas de interfaz gráfica de usuario elegidos"
#~ msgid "" #~ msgid ""
#~ "A higher number of duplicate desktop files were found for this file." #~ "A higher number of duplicate desktop files were found for this file."
#~ "\\nShould I delete the extra ones or not?" #~ "\\nShould I delete the extra ones or not?"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-11-01 02:43+0500\n" "POT-Creation-Date: 2024-11-02 10:04+0500\n"
"PO-Revision-Date: 2024-11-01 02:44+0500\n" "PO-Revision-Date: 2024-11-02 10:05+0500\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: ru_RU\n" "Language: ru_RU\n"
@ -1615,6 +1615,12 @@ msgstr ""
"запуском), работает вместе с SDL BACKEND (используется по умолчанию в " "запуском), работает вместе с SDL BACKEND (используется по умолчанию в "
"Wayland сессии)" "Wayland сессии)"
msgid ""
"If specified, sets a base output height to linearly scale the cursor against."
msgstr ""
"Если указано, устанавливает базовую высоту вывода для линейного "
"масштабирования курсора."
msgid "Change settings gamescope for" msgid "Change settings gamescope for"
msgstr "Изменить настройки Gamescope для" msgstr "Изменить настройки Gamescope для"
@ -1782,6 +1788,24 @@ msgstr ""
"создаваться. (Отключение предусмотрено в тех случаях, когда их скачивание по " "создаваться. (Отключение предусмотрено в тех случаях, когда их скачивание по "
"каким-то причинам недоступно)" "каким-то причинам недоступно)"
msgid "default"
msgstr "по умолчанию"
msgid "compact"
msgstr "компактная"
msgid "classic"
msgstr "классическая"
msgid "dark"
msgstr "тёмная"
msgid "light"
msgstr "светлая"
msgid "Recommended value"
msgstr "Рекомендуемое значение"
msgid "Choose a graphics card to run the game" msgid "Choose a graphics card to run the game"
msgstr "Выбрать видеокарту для запуска игры" msgstr "Выбрать видеокарту для запуска игры"
@ -1792,12 +1816,11 @@ msgstr ""
"Выбор видеокарты для запуска игры (используется для всех запущенных игр и " "Выбор видеокарты для запуска игры (используется для всех запущенных игр и "
"программ в PortProton)" "программ в PortProton)"
msgid "Force dpi for fonts" msgid "Force dpi"
msgstr "Принудительное разрешение шрифтов" msgstr "Принудительный масштаб"
msgid "Here you can set forced dpi for fonts in wine" msgid "Here you can set forced dpi for applications wine"
msgstr "" msgstr "Здесь вы можете установить принудительный масштаб для приложений wine"
"Здесь вы можете установить принудительное разрешение для шрифтов в Wine"
msgid "Choice wine audio driver" msgid "Choice wine audio driver"
msgstr "Выбрать звуковой драйвер" msgstr "Выбрать звуковой драйвер"
@ -1805,12 +1828,18 @@ msgstr "Выбрать звуковой драйвер"
msgid "Fixes sound popling if choice alsa" msgid "Fixes sound popling if choice alsa"
msgstr "Выбор alsa исправляет заикание звука" msgstr "Выбор alsa исправляет заикание звука"
msgid "Choice gui themes" msgid "Select PortProton theme"
msgstr "Выбор графической темы" msgstr "Выбрать тему PortProton"
msgid "Allows you to select a theme for PortProton" msgid "Allows you to select a theme for PortProton"
msgstr "Позволяет выбрать тему для PortProton" msgstr "Позволяет выбрать тему для PortProton"
msgid "Select gtk theme"
msgstr "Выбрать тему GTK"
msgid "Allows you to select a theme for GTK."
msgstr "Позволяет выбрать светлую или тёмную тему"
msgid "Time display" msgid "Time display"
msgstr "Отображение времени" msgstr "Отображение времени"
@ -2217,6 +2246,9 @@ msgstr ""
"--autoinstall и название того, что необходимо установить, указано в списке " "--autoinstall и название того, что необходимо установить, указано в списке "
"ниже:" "ниже:"
#~ msgid "Choice gui themes"
#~ msgstr "Выбор графической темы"
#~ msgid "" #~ msgid ""
#~ "A higher number of duplicate desktop files were found for this file." #~ "A higher number of duplicate desktop files were found for this file."
#~ "\\nShould I delete the extra ones or not?" #~ "\\nShould I delete the extra ones or not?"

View File

@ -904,7 +904,7 @@ search_desktop_file () {
if [[ $DESKTOP_WITH_TIME == enabled ]] || [[ $SORT_WITH_TIME == enabled ]] ; then if [[ $DESKTOP_WITH_TIME == enabled ]] || [[ $SORT_WITH_TIME == enabled ]] ; then
while IFS=" " read -r -a line2 ; do while IFS=" " read -r -a line2 ; do
if [[ -z ${line2[0]} ]] \ if [[ -z ${line2[0]} ]] \
|| [[ ! ${line2[0],,} =~ (.bat$|.exe$|.msi$|.reg$) ]] ; then || [[ ! ${line2[0],,} =~ .(bat|exe|msi|reg)$ ]] ; then
BROKEN_LINE=1 BROKEN_LINE=1
break break
fi fi
@ -939,7 +939,7 @@ search_desktop_file () {
# Ремонт, если есть пустые строки и непонятные строки без .exe, .bat, .msi, .reg # Ремонт, если есть пустые строки и непонятные строки без .exe, .bat, .msi, .reg
if [[ $BROKEN_LINE == 1 ]] ; then if [[ $BROKEN_LINE == 1 ]] ; then
while IFS=" " read -r -a line4 ; do while IFS=" " read -r -a line4 ; do
if [[ -n ${line4[0]} ]] && [[ ${line4[0]} =~ (.[Bb][Aa][Tt]$|.[Ee][Xx][Ee]$|.[Mm][Ss][Ii]$|.[Rr][Ee][Gg]$) ]] if [[ -n ${line4[0]} ]] && [[ ${line4[0],,} =~ .(bat|exe|msi|reg)$ ]]
then echo "${line4[*]}" then echo "${line4[*]}"
fi fi
done < "$PORT_WINE_TMP_PATH/statistics" > "$PORT_WINE_TMP_PATH/statistics_repair" done < "$PORT_WINE_TMP_PATH/statistics" > "$PORT_WINE_TMP_PATH/statistics_repair"
@ -1114,8 +1114,8 @@ create_name_desktop () {
fi fi
if (( ${#PORTWINE_DB_DESKTOP} > 3 )) ; then if (( ${#PORTWINE_DB_DESKTOP} > 3 )) ; then
for ((i=0 ; i<${#PORTWINE_DB_DESKTOP} ; i++)) ; do for ((i=0 ; i<${#PORTWINE_DB_DESKTOP} ; i++)) ; do
if [[ ${PORTWINE_DB_DESKTOP:i:2} =~ ([a-z][A-Z]|[a-z][0-9]) ]] \ if [[ ${PORTWINE_DB_DESKTOP:i:2} =~ [a-z]([A-Z]|[0-9]) ]] \
&& [[ ! ${PORTWINE_DB_DESKTOP:i:3} =~ ([a-z][A-Z]" "|[a-z][0-9]" ") ]] ; then && [[ ! ${PORTWINE_DB_DESKTOP:i:3} =~ [a-z]([A-Z]|[0-9])" " ]] ; then
PORTWINE_DB_PROXY+="${PORTWINE_DB_DESKTOP:i:1} " PORTWINE_DB_PROXY+="${PORTWINE_DB_DESKTOP:i:1} "
elif [[ ${PORTWINE_DB_DESKTOP:i:3} =~ [0-9][0-9][a-zA-Z] ]] ; then elif [[ ${PORTWINE_DB_DESKTOP:i:3} =~ [0-9][0-9][a-zA-Z] ]] ; then
PORTWINE_DB_PROXY+="${PORTWINE_DB_DESKTOP:i:2} " PORTWINE_DB_PROXY+="${PORTWINE_DB_DESKTOP:i:2} "
@ -1267,65 +1267,87 @@ combobox_fix () {
} }
get_and_set_reg_file () { get_and_set_reg_file () {
local name_block name_for_find find_block find_file find_line count name_for_new_block local name_block name_for_find find_block find_file find_line count name_for_new_block name_for_find_old
local line_reg find_number_line find_check_file name_for_set name_block_old local line_reg find_number_line find_check_file name_for_set name_type_reg name_fatal name_add_or_del
name_add_or_del=$1
name_block=$2 name_block=$2
name_block_old=$name_block
name_for_find=$3 name_for_find=$3
name_for_set=$4 name_type_reg=$4
name_for_new_block=$5 name_for_set=$5
name_block=${name_block//\\/\\\\} name_for_new_block=$6
name_block=${name_block//\[/\\[} name_for_find_old=$name_for_find
find_block=$(grep -n "${name_block//\]/\\]}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg) name_fatal="$name_block $name_for_find"
case $name_type_reg in
REG_DWORD)
name_for_find='"'"$name_for_find"'"'"=dword:"
name_for_set=$(convert_dec_and_hex --dec "$name_for_set") ;;
REG_SZ)
name_for_find='"'"$name_for_find"'"'"="
name_for_set='"'"$name_for_set"'"' ;;
*)
if [[ $name_add_or_del == --delete ]] ; then
name_for_find='"'"$name_for_find"'"'
else
print_error "Name type reg not set for $name_fatal"
return 1
fi ;;
esac
name_block=${name_block//\\/\\\\\\\\\\\\\\}
name_block=${name_block//*/\\[$name_block}
name_block="${name_block//*/${name_block//\\/\\\\}\\]}"
if [[ -n $name_for_new_block ]] ; then
find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg")
else
find_block=$(grep -n "$name_block" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/"*.reg)
fi
if [[ -n $find_block ]] ; then if [[ -n $find_block ]] ; then
if [[ -n $name_for_new_block ]] ; then
find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg"
find_line=${find_block//:*/}
else
find_file=${find_block//:*/} find_file=${find_block//:*/}
find_line=${find_block//$find_file:/} find_line=${find_block//$find_file:/}
find_line=${find_line//:*/} find_line=${find_line//:*/}
fi
count=-1 count=-1
while IFS= read -r line_reg ; do while IFS= read -r line_reg ; do
((count++)) ((count++))
if [[ $line_reg =~ $name_for_find ]] ; then if [[ $line_reg =~ $name_for_find ]] ; then
if [[ $line_reg == $name_for_find$name_for_set ]] ; then
# когда менять не нужно, потому что такое же
return 0
fi
find_number_line=$(( count + find_line )) find_number_line=$(( count + find_line ))
find_check_file=1 find_check_file=1
break break
fi fi
[[ -z $line_reg ]] && break [[ -z $line_reg ]] && break
done <<< $(sed -n "$find_line"',$p' $find_file) done <<< "$(sed -n "$find_line"',$p' "$find_file")"
IFS="$orig_IFS" IFS="$orig_IFS"
fi fi
if [[ $1 == --add ]] ; then if [[ $name_add_or_del == --add ]] ; then
if [[ -z $find_block ]] ; then if [[ -z $find_block ]] ; then
if [[ -n $name_for_new_block ]] ; then if [[ -n $name_for_new_block ]] ; then
sed -i '$a\\n'"${name_block_old//\\/\\\\}" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg" sed -i '$a\\n'"$name_block\n" "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg"
find_file=${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg find_file="${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/$name_for_new_block.reg"
find_line=$(wc -l "$find_file" | awk -F" " '{print $1}') find_line=$(wc -l "$find_file" | awk -F" " '{print $1}')
find_line=$(( find_line - 1 )) find_line=$(( find_line - 1 ))
else else
print_error "$name_block_old not found in reg files" print_error "$name_fatal not found in reg files"
return 1 return 1
fi fi
fi fi
if [[ $name_for_set =~ ^[0-9]+$ ]] ; then
name_for_set=$(convert_dec_and_hex --dec "$name_for_set")
fi
if [[ ! $name_for_set =~ ^[0-9]+$ ]] ; then
if [[ $find_check_file == 1 ]] ; then
sed -i "${find_number_line}s/$name_for_find.*/$name_for_find\"$name_for_set\"/" "$find_file"
else
print_info "Added ${name_for_find//=*} to reg file"
sed -i "$(( find_line + 1 ))"'a\\n'"$name_for_find\"$name_for_set\"" "$find_file"
fi
else
if [[ $find_check_file == 1 ]] ; then if [[ $find_check_file == 1 ]] ; then
print_info "Change $name_for_find_old to reg file"
sed -i "${find_number_line}s/$name_for_find.*/$name_for_find$name_for_set/" "$find_file" sed -i "${find_number_line}s/$name_for_find.*/$name_for_find$name_for_set/" "$find_file"
else else
print_info "Added ${name_for_find//=*} to reg file" print_info "Added $name_for_find_old to reg file"
sed -i "$(( find_line + 1 ))"'a\\n'"$name_for_find$name_for_set" "$find_file" sed -i "$(( find_line + 1 ))a$name_for_find$name_for_set" "$find_file"
fi fi
fi elif [[ $name_add_or_del == --delete ]] ; then
elif [[ $1 == --delete ]] ; then
[[ $find_check_file != 1 ]] && return 0 [[ $find_check_file != 1 ]] && return 0
print_info "Delete ${name_for_find//=*} to reg file" print_info "Delete $name_for_find_old to reg file"
sed -i "${find_number_line}d" "$find_file" sed -i "${find_number_line}d" "$find_file"
fi fi
} }
@ -1337,7 +1359,7 @@ convert_dec_and_hex () {
case "$type" in case "$type" in
--dec) --dec)
# Преобразование из десятичного в шестнадцатеричный # Преобразование из десятичного в шестнадцатеричный
echo -n $(printf "%08x" $num) ;; echo -n "$(printf "%08x" "$num")" ;;
--hex) --hex)
# Преобразование из шестнадцатеричного в десятичный # Преобразование из шестнадцатеричного в десятичный
echo $(( 0x$num )) ;; echo $(( 0x$num )) ;;
@ -1346,6 +1368,33 @@ convert_dec_and_hex () {
esac esac
} }
recommend_dpi () {
local height=$1
if [[ -z "$height" ]] ; then
echo "disabled"
return 1
fi
local dpi=$(( height / 10 ))
(( dpi < 96 )) && local dpi="96"
echo "$dpi"
}
fixes_after_update () {
local fixes_path line fixes_info IFS
fixes_info=$1
fixes_path="$PORT_WINE_TMP_PATH/fixes_apply"
[[ ! -f $fixes_path ]] && touch "$fixes_path"
while IFS= read -r line ; do
if [[ $line == "$fixes_info" ]] ; then
return 1
fi
done < "$fixes_path"
echo "$fixes_info" >> "$fixes_path"
return 0
}
restart_pp () { restart_pp () {
case "$1" in case "$1" in
--userconf) export RESTART_PP_USED="userconf" ;; --userconf) export RESTART_PP_USED="userconf" ;;
@ -1475,20 +1524,20 @@ init_wine_ver () {
export WINELOADER="${WINEDIR}/bin/wine" export WINELOADER="${WINEDIR}/bin/wine"
export WINESERVER="${WINEDIR}/bin/wineserver" export WINESERVER="${WINEDIR}/bin/wineserver"
if [[ -d "${WINEDIR}/files" && ! -d "${WINEDIR}/dist" ]] ; then if [[ -d "${WINEDIR}/files" && ! -d "${WINEDIR}/dist" ]] ; then
for clear_dist_files in $(ls "${WINEDIR}" | sed -e "s/^files$//g" | sed -e "s/^version$//g") ; do for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(files|version)$//g") ; do
rm -fr "${WINEDIR}/$clear_dist_files" rm -fr "${WINEDIR}/$clear_dist_files"
done done
mv -f "${WINEDIR}/files"/* "${WINEDIR}/" mv -f "${WINEDIR}/files"/* "${WINEDIR}/"
rm -fr "${WINEDIR}/files" rm -fr "${WINEDIR}/files"
elif [[ ! -d "${WINEDIR}/files" && -d "${WINEDIR}/dist" ]] ; then elif [[ ! -d "${WINEDIR}/files" && -d "${WINEDIR}/dist" ]] ; then
for clear_dist_files in $(ls "${WINEDIR}" | sed -e "s/^dist$//g" | sed -e "s/^version$//g") ; do for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(dist|version)$//g") ; do
rm -fr "${WINEDIR}/$clear_dist_files" rm -fr "${WINEDIR}/$clear_dist_files"
done done
mv -f "${WINEDIR}/dist"/* "${WINEDIR}/" mv -f "${WINEDIR}/dist"/* "${WINEDIR}/"
rm -fr "${WINEDIR}/dist" rm -fr "${WINEDIR}/dist"
elif [[ -f "${WINEDIR}/proton_dist.tar" ]] ; then elif [[ -f "${WINEDIR}/proton_dist.tar" ]] ; then
unpack "${WINEDIR}/proton_dist.tar" "${WINEDIR}/" unpack "${WINEDIR}/proton_dist.tar" "${WINEDIR}/"
for clear_dist_files in $(ls "${WINEDIR}" | sed -e "s/^bin$//g" | sed -e "s/^lib$//g" | sed -e "s/^lib64$//g" | sed -e "s/^share$//g" | sed -e "s/^version$//g") ; do for clear_dist_files in $(ls "${WINEDIR}" | sed -r "s/^(bin|lib|lib64|share|version)$//g") ; do
rm -fr "${WINEDIR}/$clear_dist_files" rm -fr "${WINEDIR}/$clear_dist_files"
done done
fi fi
@ -2659,6 +2708,10 @@ edit_db_from_gui () {
edit_user_conf_from_gui () { edit_user_conf_from_gui () {
for mod_db in $@ ; do for mod_db in $@ ; do
if [[ -z "${!mod_db}" ]] ; then
sed -i "/^export ${mod_db}=.*/d" "${USER_CONF}"
return 0
fi
proxy_mod_db="${!mod_db}" proxy_mod_db="${!mod_db}"
if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then if [[ $proxy_mod_db =~ (${translations[Disabled]}|${translations[Disable]}) ]] ; then
proxy_mod_db=disabled proxy_mod_db=disabled
@ -2729,7 +2782,7 @@ pw_create_gui_png () {
fi fi
fi fi
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")" PORTPROTON_NAME="${PORTPROTON_NAME//(\`|\"|\'|\!)/})"
export PORTPROTON_NAME export PORTPROTON_NAME
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION
fi fi
@ -2989,8 +3042,8 @@ start_portwine () {
export WINEFSYNC_FUTEX2="0" export WINEFSYNC_FUTEX2="0"
else else
export WINEFSYNC="1" export WINEFSYNC="1"
export WINEFSYNC_FUTEX2="1"
export WINEFSYNC_SPINCOUNT=100 export WINEFSYNC_SPINCOUNT=100
check_variables WINEFSYNC_FUTEX2 0
fi fi
if [[ "${PW_FORCE_LARGE_ADDRESS_AWARE}" == 1 ]] if [[ "${PW_FORCE_LARGE_ADDRESS_AWARE}" == 1 ]]
@ -3758,28 +3811,33 @@ start_portwine () {
fi fi
if [[ "$PW_DINPUT_PROTOCOL" == "1" ]] ; then if [[ "$PW_DINPUT_PROTOCOL" == "1" ]] ; then
get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"DisableHidraw"=dword:' "0" get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'DisableHidraw' 'REG_DWORD' "0" "system"
get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"Enable SDL"=dword:' "0" get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "0" "system"
else else
get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"DisableHidraw"=dword:' "1" get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'DisableHidraw' 'REG_DWORD' "1" "system"
get_and_set_reg_file --add '[System\\CurrentControlSet\\Services\\winebus]' '"Enable SDL"=dword:' "1" get_and_set_reg_file --add 'System\CurrentControlSet\Services\winebus' 'Enable SDL' 'REG_DWORD' "1" "system"
fi fi
if [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] ; then if [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] ; then
get_and_set_reg_file --add '[Control Panel\\Desktop]' '"LogPixels"=dword:' "${PW_WINE_DPI_VALUE// (*/}" if [[ "$PW_WINE_DPI_VALUE" == "recommended" ]] ; then
PW_RECOMMENDED_DPI=$(recommend_dpi "${PW_SCREEN_RESOLUTION:5:8}")
get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_RECOMMENDED_DPI" "user"
else
get_and_set_reg_file --add 'Control Panel\Desktop' 'LogPixels' 'REG_DWORD' "$PW_WINE_DPI_VALUE" "user"
fi
fi fi
if [[ "$PW_USE_NATIVE_WAYLAND" == "1" ]] ; then if [[ "$PW_USE_NATIVE_WAYLAND" == "1" ]] ; then
export PW_DISPLAY="env DISPLAY=" export PW_DISPLAY="env DISPLAY="
export PW_USE_RUNTIME="0" export PW_USE_RUNTIME="0"
get_and_set_reg_file --add '[Software\\Wine\\Drivers]' '"Graphics"=' "x11,wayland" "user" get_and_set_reg_file --add 'Software\Wine\Drivers' 'Graphics' 'REG_SZ' "x11,wayland" "user"
else else
unset PW_DISPLAY unset PW_DISPLAY
get_and_set_reg_file --delete '[Software\\Wine\\Drivers]' '"Graphics"=' "x11,wayland" get_and_set_reg_file --delete 'Software\Wine\Drivers' 'Graphics'
fi fi
if [[ "$PW_SOUND_DRIVER_USE" != "disabled" ]] ; then if [[ "$PW_SOUND_DRIVER_USE" != "disabled" ]] ; then
get_and_set_reg_file --add '[Software\\Wine\\Drivers]' '"Audio"=' "$PW_SOUND_DRIVER_USE" "user" get_and_set_reg_file --add 'Software\Wine\Drivers' 'Audio' 'REG_SZ' "$PW_SOUND_DRIVER_USE" "user"
fi fi
pw_stop_progress_bar pw_stop_progress_bar
@ -3820,7 +3878,8 @@ start_portwine () {
fi fi
fi fi
# GAMESCOPE enable: unset PW_GAMESCOPE_ARGS_NEW PW_GAMESCOPE_VARIABLES_BEFORE PW_GAMESCOPE_VARIABLES_AFTER
# GAMESCOPE fixes:
if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \
|| check_gamescope_session || check_gamescope_session
then then
@ -3836,7 +3895,12 @@ start_portwine () {
if [[ -d /sys/bus/pci/drivers/i915 ]] ; then if [[ -d /sys/bus/pci/drivers/i915 ]] ; then
export INTEL_DEBUG="norbc" export INTEL_DEBUG="norbc"
fi fi
if [[ -d /sys/bus/pci/drivers/nvidia ]] ; then
PW_GAMESCOPE_VARIABLES_BEFORE+="__GL_THREADED_OPTIMIZATIONS=0 "
PW_GAMESCOPE_VARIABLES_AFTER+="__GL_THREADED_OPTIMIZATIONS=1 "
fi fi
fi
# GAMESCOPE enable:
if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \ if [[ "${PW_GAMESCOPE}" == "1" && "${GAMESCOPE_INSTALLED}" == "1" ]] \
&& ! check_gamescope_session && ! check_gamescope_session
then then
@ -3849,7 +3913,6 @@ start_portwine () {
fi fi
#checkbox #checkbox
unset PW_GAMESCOPE_ARGS_NEW
[[ "${PW_GS_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -f" [[ "${PW_GS_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -f"
[[ "${PW_GS_FORCE_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --force-windows-fullscreen" [[ "${PW_GS_FORCE_FULLSCREEN}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --force-windows-fullscreen"
[[ "${PW_GS_BORDERLESS_WINDOW}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -b" [[ "${PW_GS_BORDERLESS_WINDOW}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" -b"
@ -3879,6 +3942,7 @@ start_portwine () {
[[ "${PW_GS_BACKEND_SDL}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --backend sdl" [[ "${PW_GS_BACKEND_SDL}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --backend sdl"
[[ "${PW_GS_SDL_VIDEODRIVER_X11}" == "1" ]] && export SDL_VIDEODRIVER="x11" [[ "${PW_GS_SDL_VIDEODRIVER_X11}" == "1" ]] && export SDL_VIDEODRIVER="x11"
[[ "${PW_GS_CURSOR_SCALE_HEIGHT}" == "1" ]] && PW_GAMESCOPE_ARGS_NEW+=" --cursor-scale-height 1"
#combobox #combobox
if [[ "${PW_GS_SHOW_RESOLUTION}" != "disabled" ]] ; then if [[ "${PW_GS_SHOW_RESOLUTION}" != "disabled" ]] ; then
@ -3921,7 +3985,7 @@ start_portwine () {
[[ "${PW_GS_ITM_TARGET_NITS}" != "0" ]] && PW_GAMESCOPE_ARGS_NEW+=" --hdr-itm-target-nits ${PW_GS_ITM_TARGET_NITS}" [[ "${PW_GS_ITM_TARGET_NITS}" != "0" ]] && PW_GAMESCOPE_ARGS_NEW+=" --hdr-itm-target-nits ${PW_GS_ITM_TARGET_NITS}"
edit_db_from_gui PW_GAMESCOPE_ARGS_NEW edit_db_from_gui PW_GAMESCOPE_ARGS_NEW
export PW_RUN_GAMESCOPE="gamescope${PW_ID_VIDEO}${PW_GAMESCOPE_ARGS_NEW} --" export PW_RUN_GAMESCOPE="${PW_GAMESCOPE_VARIABLES_BEFORE}gamescope${PW_ID_VIDEO}${PW_GAMESCOPE_ARGS_NEW} env ${PW_GAMESCOPE_VARIABLES_AFTER}"
fi fi
pw_mangohud_check pw_mangohud_check
@ -5386,16 +5450,19 @@ gui_gamescope () {
PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING PW_GS_EXPOSE_WAYLAND PW_GS_REALTIME_SCHEDULING
) )
grep -e '--mangoapp' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && add_to_array "PW_GS_LIST" PW_GS_MANGOAPP [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--mangoapp' ]] && add_to_array "PW_GS_LIST" PW_GS_MANGOAPP
grep -e '--backend' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null && add_to_array "PW_GS_LIST" PW_GS_BACKEND_SDL PW_GS_SDL_VIDEODRIVER_X11 [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--backend' ]] && add_to_array "PW_GS_LIST" PW_GS_BACKEND_SDL
check_wayland_session && add_to_array "PW_GS_LIST" PW_GS_SDL_VIDEODRIVER_X11
[[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '--cursor-scale-height' ]] && add_to_array "PW_GS_LIST" PW_GS_CURSOR_SCALE_HEIGHT
GS_FILTER_CB="linear!nearest!fsr!nis!pixel"
#debian bookworm fix #debian bookworm fix
if grep -e '-U, --fsr-upscaling' "${PW_TMPFS_PATH}/gamescope.tmp" &>/dev/null ; then if [[ $(<"${PW_TMPFS_PATH}/gamescope.tmp") =~ '-U, --fsr-upscaling' ]] ; then
GS_FILTER_CB="fsr!nis" GS_FILTER_CB="fsr!nis"
export PW_GS_FILTER_MODE_OLD="true" export PW_GS_FILTER_MODE_OLD="true"
rm_from_array "PW_GS_LIST" PW_GS_FORCE_GRAB_CURSOR PW_GS_FORCE_GRAB_KEYBOARD PW_GS_HDR_ENABLE PW_GS_HDR_FORCE_SUPPORT \ rm_from_array "PW_GS_LIST" PW_GS_FORCE_GRAB_CURSOR PW_GS_FORCE_GRAB_KEYBOARD PW_GS_HDR_ENABLE PW_GS_HDR_FORCE_SUPPORT \
PW_GS_HDR_FORCE_OUTPUT PW_GS_HDR_FORCE_OUTPUT
else
GS_FILTER_CB="linear!nearest!fsr!nis!pixel"
fi fi
PW_GS_FULLSCREEN_INFO=${translations[Make the window fullscreen]} PW_GS_FULLSCREEN_INFO=${translations[Make the window fullscreen]}
@ -5416,6 +5483,7 @@ gui_gamescope () {
PW_GS_MANGOAPP_INFO=${translations[Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.]} PW_GS_MANGOAPP_INFO=${translations[Launch with the mangoapp (mangohud) performance overlay enabled. You should use this instead of using mangohud on the game or gamescope.]}
PW_GS_BACKEND_SDL_INFO=${translations[Use sdl backend. (by default wayland backend is used).]} PW_GS_BACKEND_SDL_INFO=${translations[Use sdl backend. (by default wayland backend is used).]}
PW_GS_SDL_VIDEODRIVER_X11_INFO=${translations[Force use sdl videodriver x11, works with BACKEND SDL. (Default is wayland)]} PW_GS_SDL_VIDEODRIVER_X11_INFO=${translations[Force use sdl videodriver x11, works with BACKEND SDL. (Default is wayland)]}
PW_GS_CURSOR_SCALE_HEIGHT_INFO=${translations[if specified, sets a base output height to linearly scale the cursor against.]}
unset ADD_CHK_BOX_GS unset ADD_CHK_BOX_GS
if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then if [[ "${GAMESCOPE_INSTALLED}" == 1 ]] ; then
@ -5611,6 +5679,9 @@ gui_userconf () {
SORT_WITH_TIME="enabled" SORT_WITH_TIME="enabled"
fi fi
if [[ $PW_WINE_DPI_VALUE == "recommended" ]] ; then
PW_WINE_DPI_VALUE="${translations[Recommended value]}"
fi
if [[ -n "$PW_WINE_DPI_VALUE" ]] \ if [[ -n "$PW_WINE_DPI_VALUE" ]] \
&& [[ "$PW_WINE_DPI_VALUE" != "disabled" ]] && [[ "$PW_WINE_DPI_VALUE" != "disabled" ]]
then then
@ -5619,12 +5690,34 @@ gui_userconf () {
YAD_DPI_VAR="disabled" YAD_DPI_VAR="disabled"
fi fi
"${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="@" --homogeneous-row \ if [[ $GUI_THEME == default ]] ; then GUI_THEME=${translations[default]}
elif [[ $GUI_THEME == compact ]] ; then GUI_THEME=${translations[compact]}
elif [[ $GUI_THEME == classic ]] ; then GUI_THEME=${translations[classic]}
fi
if command -v gsettings ; then
YAD_GTK_THEME_CHECK=$(gsettings get org.gnome.desktop.interface gtk-theme)
YAD_GTK_THEME_CHECK=${YAD_GTK_THEME_CHECK//\'/}
if [[ -n $YAD_GTK_THEME_CHECK ]] ; then
if [[ ! ${YAD_GTK_THEME_CHECK,,} == adwaita ]] ; then
YAD_GTK_THEME="$YAD_GTK_THEME_CHECK:${translations[light]}!$YAD_GTK_THEME_CHECK:${translations[dark]}!"
elif [[ ${YAD_GTK_THEME_CHECK,,} == breeze ]] ; then
YAD_GTK_THEME="$YAD_GTK_THEME_CHECK!"
fi
fi
fi
if [[ -z $GTK_THEME ]] ; then GTK_THEME=${translations[default]}
elif [[ $GTK_THEME =~ light$ ]] ; then GTK_THEME="${GTK_THEME//light/${translations[light]}}"
elif [[ $GTK_THEME =~ dark$ ]] ; then GTK_THEME="${GTK_THEME//dark/${translations[dark]}}"
fi
"${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="%" --homogeneous-row \
--gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \ --gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \
--field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \ --field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \
--field="${translations[Force dpi for fonts]}!${translations[Here you can set forced dpi for fonts in wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "96 (100%)!120 (125%)!144 (150%)!168 (175%)!192 (200%)!216 (225%)!240 (250%)!264 (275%)!288 (300%)")" \ --field="${translations[Force dpi]}!${translations[Here you can set forced dpi for applications wine]} :CB" "$(combobox_fix --disabled "$YAD_DPI_VAR" "${translations[Recommended value]}!96!120!144!168!192!216!240!264!288")" \
--field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \ --field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \
--field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "default!compact!classic")" \ --field="${translations[Select PortProton theme]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "${translations[default]}!${translations[compact]}!${translations[classic]}")" \
--field="${translations[Select gtk theme]}!${translations[Allows you to select a theme for GTK.]} :CB" "$(combobox_fix "$GTK_THEME" "${YAD_GTK_THEME}Adwaita:${translations[light]}!Adwaita:${translations[dark]}!${translations[default]}")" \
--field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "enabled")" \ --field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix --disabled "$DESKTOP_WITH_TIME" "enabled")" \
--field="${translations[Sort shortcuts by time]}!${translations[This setting sorts the shortcuts in the main menu depending on the time spent in the application or game]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "enabled")" \ --field="${translations[Sort shortcuts by time]}!${translations[This setting sorts the shortcuts in the main menu depending on the time spent in the application or game]} :CB" "$(combobox_fix --disabled "$SORT_WITH_TIME" "enabled")" \
1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null & 1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null &
@ -5657,15 +5750,27 @@ gui_userconf () {
gui_open_user_conf gui_open_user_conf
;; ;;
166) 166)
IFS='@' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" IFS='%' read -r -a PW_ADD_SETTINGS_UC <"${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb"
IFS="$orig_IFS" IFS="$orig_IFS"
PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}" PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}"
PW_WINE_DPI_VALUE="${PW_ADD_SETTINGS_UC[1]}" PW_WINE_DPI_VALUE="${PW_ADD_SETTINGS_UC[1]}"
if [[ $PW_WINE_DPI_VALUE == "${translations[Recommended value]}" ]] ; then
PW_WINE_DPI_VALUE="recommended"
fi
PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}" PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[2]}"
GUI_THEME="${PW_ADD_SETTINGS_UC[3]}" GUI_THEME="${PW_ADD_SETTINGS_UC[3]}"
DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[4]}" if [[ $GUI_THEME == ${translations[default]} ]] ; then GUI_THEME=default
SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}" elif [[ $GUI_THEME == ${translations[compact]} ]] ; then GUI_THEME=compact
edit_user_conf_from_gui PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE GUI_THEME DESKTOP_WITH_TIME SORT_WITH_TIME elif [[ $GUI_THEME == ${translations[classic]} ]] ; then GUI_THEME=classic
fi
GTK_THEME="${PW_ADD_SETTINGS_UC[4]}"
if [[ $GTK_THEME == ${translations[default]} ]] ; then unset GTK_THEME
elif [[ $GTK_THEME =~ ${translations[light]} ]] ; then GTK_THEME="${GTK_THEME//${translations[light]}/light}"
elif [[ $GTK_THEME =~ ${translations[dark]} ]] ; then GTK_THEME="${GTK_THEME//${translations[dark]}/dark}"
fi
DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[5]}"
SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[6]}"
edit_user_conf_from_gui PW_GPU_USE PW_WINE_DPI_VALUE PW_SOUND_DRIVER_USE GUI_THEME GTK_THEME DESKTOP_WITH_TIME SORT_WITH_TIME
restart_pp restart_pp
;; ;;
esac esac
@ -5699,7 +5804,8 @@ resize_png () {
fi fi
if [[ -f "${PORT_WINE_PATH}/data/img/${RESIZE_NAME_PNG}.png" ]] \ if [[ -f "${PORT_WINE_PATH}/data/img/${RESIZE_NAME_PNG}.png" ]] \
|| [[ ! -f "${RESIZE_FILE}" ]] || [[ ! -f "${RESIZE_FILE}" ]] \
|| [[ ! ${RESIZE_FILE,,} =~ .exe$ ]]
then then
return 0 return 0
fi fi
@ -5868,7 +5974,7 @@ portwine_output_yad_shortcut () {
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
restart_pp restart_pp
fi fi
elif [[ "$PW_YAD_OUT" =~ (^1$|^2$|^252$) ]] ; then elif [[ "$PW_YAD_OUT" =~ ^(1|2|252)$ ]] ; then
print_info "Restarting PP..." print_info "Restarting PP..."
[[ -n $KEY_MENU ]] && unset portwine_exe [[ -n $KEY_MENU ]] && unset portwine_exe
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
@ -6030,9 +6136,12 @@ portwine_missing_shortcut () {
if [[ $? -eq "0" ]] ; then if [[ $? -eq "0" ]] ; then
portwine_delete_shortcut portwine_delete_shortcut
fi fi
if [[ -n "$TAB_MAIN_MENU" ]] if [[ -n $AI_SKIP ]]
then restart_pp then
else exit 0 unset TAB_MAIN_MENU
restart_pp
else
exit 0
fi fi
} }

View File

@ -5,6 +5,10 @@
#####################examples########################### #####################examples###########################
export PW_WINDOWS_VER="10" export PW_WINDOWS_VER="10"
export PW_VULKAN_USE="2" export PW_VULKAN_USE="2"
export PW_WINE_USE=PROTON_LG export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="BLACK_DESERT_ONLINE" export PW_PREFIX_NAME="BLACK_DESERT_ONLINE"
# export DISABLE_CP_DEFPFX=1 # export DISABLE_CP_DEFPFX=1
export PORTPROTON_NAME="BlackDesertLauncher"
export FILE_DESCRIPTION="BlackDesertLauncher"
export WINE_DISABLE_KERNEL_WRITEWATCH="1"
export DXVK_CONFIG="dxgi.syncInterval=0"

View File

@ -0,0 +1,13 @@
#!/usr/bin/env bash
#Author: Dervart
#Saturn.exe
#Rating=1-5
if [[ "$LANGUAGE" == "ru" ]] ; then
export PW_COMMENT_DB="При сворачивании или переключении фокуса окна возможны вылеты игры.\nРекомендуется использовать GAMESCOPE, либо VIRTUAL_DESKTOP в настройках"
else
export PW_COMMENT_DB="When minimizing or switching the window focus, the game may crash.\nRecommended to use GAMESCOPE or VIRTUAL_DESKTOP in the SETTINGS"
fi
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="NINSAR"
export PORTPROTON_NAME="Saturn"

View File

@ -10,9 +10,9 @@ export PW_PREFIX_NAME="BLACK_DESERT_ONLINE"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BlackDesert_Installer_RU.exe" export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BlackDesert_Installer_RU.exe"
export LAUNCH_PARAMETERS="/silent" export LAUNCH_PARAMETERS="/silent"
export PW_MUST_HAVE_DLL="" export PW_MUST_HAVE_DLL=""
export PW_VULKAN_USE=1 export PW_VULKAN_USE="1"
export PW_USE_D3D_EXTRAS=1 export PW_USE_D3D_EXTRAS="1"
export PW_WINE_USE=PROTON_LG export PW_WINE_USE="PROTON_LG"
# export DISABLE_CP_DEFPFX=1 # export DISABLE_CP_DEFPFX=1
pw_clear_pfx pw_clear_pfx

View File

@ -18,7 +18,7 @@ then
pw_kill_autostart launcher.exe 3 & pw_kill_autostart launcher.exe 3 &
pw_run "${PW_AUTOINSTALL_EXE}" pw_run "${PW_AUTOINSTALL_EXE}"
portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout/launcher.exe" portwine_exe="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout/launcher.exe"
pw_run reg add "HKEY_CURRENT_USER\Software\Wine\X11 Driver" /v "Decorated" /t REG_SZ /d "N" /f get_and_set_reg_file --add 'Software\Wine\X11' 'Decorated' 'REG_SZ' "N" "user"
pw_create_unique_exe "crossout_launcher_pp" pw_create_unique_exe "crossout_launcher_pp"
try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb" try_remove_file "${portwine_exe}.ppdb"

View File

@ -20,7 +20,7 @@ then
export PATH_TO_GAME="${PW_USER_TEMP}" export PATH_TO_GAME="${PW_USER_TEMP}"
pw_run "${PW_AUTOINSTALL_EXE}" pw_run "${PW_AUTOINSTALL_EXE}"
export portwine_exe="$WINEPREFIX/drive_c/Program Files/HoYoPlay/launcher.exe" export portwine_exe="$WINEPREFIX/drive_c/Program Files/HoYoPlay/launcher.exe"
pw_run reg add "HKEY_CURRENT_USER\Software\Wine\X11 Driver" /v "Decorated" /t REG_SZ /d "N" /f get_and_set_reg_file --add 'Software\Wine\X11' 'Decorated' 'REG_SZ' "N" "user"
pw_create_unique_exe "hoyoplay_launcher_pp" pw_create_unique_exe "hoyoplay_launcher_pp"
try_remove_file "${PW_AUTOINSTALL_EXE}" try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb" try_remove_file "${portwine_exe}.ppdb"

View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Author: Dervart
# type: games
# name: Saturn
# image: saturn
# info_en:
# info_ru:
########################################################################
export PW_PREFIX_NAME="NINSAR"
export PW_WINE_USE="WINE_LG"
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/saturn.zip"
start_portwine
if try_download "https://cdn-s3.quadrosim.ru/saturn/saturn.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
then
pw_start_progress_bar_install_game "Saturn."
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/saturn"
portwine_exe="$WINEPREFIX/drive_c/Program Files (x86)/saturn/Saturn.exe"
try_remove_file "${PW_AUTOINSTALL_EXE}"
try_remove_file "${portwine_exe}.ppdb"
kill_portwine
pw_stop_progress_bar
export PORTWINE_CREATE_SHORTCUT_NAME="Saturn"
portwine_create_shortcut
fi
stop_portwine

View File

@ -52,26 +52,22 @@ if [[ "${1,,}" =~ .ppack$ ]] ; then
export PW_NO_RESTART_PPDB="1" export PW_NO_RESTART_PPDB="1"
export PW_DISABLED_CREATE_DB="1" export PW_DISABLED_CREATE_DB="1"
portwine_exe="$1" portwine_exe="$1"
elif [[ -f "$1" ]] ; then elif [[ "${1,,}" =~ .(exe|bat|msi|reg)$ ]] ; then
if [[ -f "$1" ]] ; then
portwine_exe="$(realpath -s "$1")" portwine_exe="$(realpath -s "$1")"
elif [[ -f "$OLDPWD/$1" ]] \ elif [[ -f "$OLDPWD/$1" ]] ; then
&& [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]]
then
portwine_exe="$(realpath -s "$OLDPWD/$1")" portwine_exe="$(realpath -s "$OLDPWD/$1")"
elif [[ "$1" =~ (^--debug$|^--launch$|^--edit-db$) ]] \ elif [[ ! -f "$1" ]] ; then
&& [[ -f "$2" ]]
then
portwine_exe="$(realpath -s "$2")"
elif [[ "$1" =~ (^--debug$|^--launch$|^--edit-db$) ]] \
&& [[ -f "$OLDPWD/$2" ]] \
&& [[ "${2,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]]
then
portwine_exe="$(realpath -s "$OLDPWD/$2")"
elif [[ "${1,,}" =~ (.exe$|.bat$|.msi$|.reg$) ]]
then
portwine_exe="$1" portwine_exe="$1"
MISSING_DESKTOP_FILE="1" MISSING_DESKTOP_FILE="1"
fi fi
elif [[ "$1" =~ ^--(debug|launch|edit-db)$ && "${2,,}" =~ .(exe|bat|msi|reg)$ ]] ; then
if [[ -f "$2" ]] ; then
portwine_exe="$(realpath -s "$2")"
elif [[ -f "$OLDPWD/$2" ]] ; then
portwine_exe="$(realpath -s "$OLDPWD/$2")"
fi
fi
export portwine_exe export portwine_exe
# HOTFIX - ModernWarships # HOTFIX - ModernWarships
@ -248,6 +244,17 @@ if [[ ! $PW_GUI_START =~ (PANED|NOTEBOOK) ]] ; then
export PW_GUI_START="NOTEBOOK" export PW_GUI_START="NOTEBOOK"
fi fi
# TODO:fixes_after_update
if fixes_after_update "2371: Reset PW_WINE_DPI_VALUE in user.conf" ; then
sed -i '/export PW_WINE_DPI_VALUE=/d' "$USER_CONF"
unset PW_WINE_DPI_VALUE
fi
# choose wine dpi default
if [[ -z $PW_WINE_DPI_VALUE ]] ; then
echo 'export PW_WINE_DPI_VALUE="recommended"' >> "$USER_CONF"
export PW_WINE_DPI_VALUE="recommended"
fi
if check_flatpak ; then if check_flatpak ; then
if check_gamescope_session if check_gamescope_session
then PW_TERM="env LANG=C xterm -fullscreen -bg black -fg white -e" then PW_TERM="env LANG=C xterm -fullscreen -bg black -fg white -e"
@ -702,7 +709,13 @@ else
PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%" PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%"
done done
if [[ $AMOUNT_GENERATE_BUTTONS == 1 ]] ; then
MAIN_GUI_ROWS=1
elif (( AMOUNT_GENERATE_BUTTONS <= 5 )) ; then
MAIN_GUI_ROWS=2
else
MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))" MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))"
fi
if [[ -z $PW_DESKTOP_FILES ]] if [[ -z $PW_DESKTOP_FILES ]]
then export PW_GUI_SORT_TABS=(1 2 3 4 5) then export PW_GUI_SORT_TABS=(1 2 3 4 5)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#Author: Castro-Fidel (linux-gaming.ru) #Author: Castro-Fidel (linux-gaming.ru)
#SCRIPTS_NEXT_VERSION=2370 #SCRIPTS_NEXT_VERSION=2371
#SCRIPTS_STABLE_VERSION=2360 #SCRIPTS_STABLE_VERSION=2360
######################################################################## ########################################################################
export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT" export AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET PW_WORLD_OF_SEA_BATTLE PW_RUSSIAN_FISHING PW_HO_YO_PLAY PW_FARLIGHT84 PW_WARFRAME PW_WGC PW_UBISOFT"
@ -131,6 +131,7 @@ export PW_GS_REALTIME_SCHEDULING="0"
export PW_GS_BACKEND_SDL="0" export PW_GS_BACKEND_SDL="0"
export PW_GS_SDL_VIDEODRIVER_X11="0" export PW_GS_SDL_VIDEODRIVER_X11="0"
export PW_GS_MANGOAPP="0" export PW_GS_MANGOAPP="0"
export PW_GS_CURSOR_SCALE_HEIGHT="0"
###PREFIX_VERSION### ###PREFIX_VERSION###
export DOTPFX_VER="48v7" export DOTPFX_VER="48v7"
export DEFPFX_VER="v1" export DEFPFX_VER="v1"