Compare commits

...

56 Commits

Author SHA1 Message Date
Mikhail Tergoev
d5f337e6b4 Merge branch 'minergenon-devel' 2025-09-29 23:54:59 +03:00
Sergey Palcheh
904c9c9895 revision of the sub-tab Authors 2025-09-29 21:24:37 +06:00
Sergey Palcheh
1d4ee1fd70 the prefix control display is enabled by default 2025-09-29 20:40:07 +06:00
Sergey Palcheh
02a2256c8c fixed the character input in the name of the prefix being created 2025-09-29 20:27:33 +06:00
Mikhail Tergoev
cbcdba204e TODO: system menu directory 2025-09-29 16:05:26 +03:00
Mikhail Tergoev
66c56f6ecf removed broken README.MD 2025-09-29 15:52:21 +03:00
Mikhail Tergoev
221b59eda7 added README.MD 2025-09-29 15:50:46 +03:00
Mikhail Tergoev
adf5f78360 kill_wine worked only with WH 2025-09-29 14:40:57 +03:00
Mikhail Tergoev
01f19cd94d first print_license_agreement before run_autoinstall 2025-09-29 14:23:31 +03:00
Mikhail Tergoev
117e497f94 Merge branch 'minergenon-devel' 2025-09-29 14:06:36 +03:00
Sergey Palcheh
3527846c6c added to the tray show/hide 2025-09-29 11:33:23 +06:00
Sergey Palcheh
553d427d66 added a gui tray 2025-09-28 21:26:39 +06:00
Sergey Palcheh
0f8f192634 added a prefix template creation button 2025-09-27 14:13:56 +06:00
Sergey Palcheh
7f64378670 improved the button for adding associations 2025-09-27 12:19:11 +06:00
Sergey Palcheh
165c4ee110 the agreement acceptance window has been removed when selecting the dxvk/vkd3d versions 2025-09-27 11:32:46 +06:00
Sergey Palcheh
843b90c1c2 the agreement acceptance window has been removed when selecting wine versions 2025-09-27 11:19:14 +06:00
Sergey Palcheh
e3ac6dd967 fixed closing applications when closing the gui 2025-09-27 11:08:26 +06:00
Mikhail Tergoev
5763749aa0 updated init dxvk/vkd3d and fixed download from tty 2025-09-26 14:44:14 +03:00
Mikhail Tergoev
b1f192b2ff fixed file associacion and always read last.conf 2025-09-25 15:04:04 +03:00
Mikhail Tergoev
42aa29d208 Merge branch 'minergenon-devel' 2025-09-25 13:10:01 +03:00
Mikhail Tergoev
3ad737e27d fixed nettest icon for GUI and added unpack tests 2025-09-25 12:42:19 +03:00
Sergey Palcheh
97996fb67b added a file association button 2025-09-25 13:29:56 +06:00
Mikhail Tergoev
151b6d6e30 added NetTest (demo) to manualinstall 2025-09-25 01:05:34 +03:00
Sergey Palcheh
9f994a8cc3 added notification when closing the WH when the application is running 2025-09-24 12:16:58 +06:00
Sergey Palcheh
463306d0cf the window about the successful installation of components has been removed 2025-09-24 10:42:08 +06:00
Sergey Palcheh
940cface08 the status bar in the prefix component manager window has been removed 2025-09-24 10:38:02 +06:00
Mikhail Tergoev
c8049efd37 fixed create symlink from xuser to user 2025-09-23 17:31:51 +03:00
Mikhail Tergoev
8eb5a0aa86 rever wine_x_tkg_10-0_amd64 for scadoffice 2025-09-23 17:30:53 +03:00
Mikhail Tergoev
7edc205b66 updated wine and pfx for scadoffice 2025-09-23 16:40:54 +03:00
Mikhail Tergoev
b36cadd54d fixed copy user dir in create_base_pfx 2025-09-23 16:34:39 +03:00
Mikhail Tergoev
48d870979f Merge branch 'minergenon-devel' 2025-09-23 10:23:00 +03:00
Sergey Palcheh
cbe535b878 removed the jump when selecting the app button 2025-09-23 10:40:33 +06:00
Mikhail Tergoev
fd3442888d Merge branch 'minergenon-devel' 2025-09-22 22:22:22 +03:00
Sergey Palcheh
7321542477 the install app prefix button has been changed 2025-09-22 18:03:17 +06:00
Sergey Palcheh
477f44a11e the pop-up window was removed after the prefix was removed 2025-09-22 17:28:34 +06:00
Sergey Palcheh
4f9821450a removed the pop-up window after creating a shortcut 2025-09-22 17:21:11 +06:00
Sergey Palcheh
f858746064 removed the pop-up window after creating the prefix 2025-09-22 17:12:21 +06:00
Sergey Palcheh
1123c018eb removed the pop-up window after successful installation 2025-09-22 17:01:46 +06:00
Sergey Palcheh
998eff3263 changed the launch of the system wine when installing the application 2025-09-22 16:48:49 +06:00
Mikhail Tergoev
4aebb722ca changed icon for menu directory 2025-09-17 13:48:40 +03:00
Mikhail Tergoev
4672dcd4e1 disabled winebth.sys by default 2025-09-17 13:37:42 +03:00
Mikhail Tergoev
e174b034df fixed info for arm-kt-med 2025-09-17 12:38:26 +03:00
Mikhail Tergoev
3100475b1e added StartupWMClass for desktop files 2025-09-17 12:36:27 +03:00
Mikhail Tergoev
148a7dbfce force disabled winemenubuilder.exe 2025-09-17 12:28:29 +03:00
Mikhail Tergoev
5c01220382 added ARM-KT-* programs 2025-09-16 19:20:41 +03:00
Mikhail Tergoev
b74fe77bad Merge branch 'minergenon-devel' 2025-09-16 13:22:37 +03:00
Sergey Palcheh
3a442f6288 updated the creation of a list of prefixes 2025-09-12 17:49:58 +06:00
Mikhail Tergoev
20030d43e4 Merge branch 'minergenon-devel' 2025-09-12 12:54:20 +03:00
Sergey Palcheh
b44849661d added esync and fsync control buttons 2025-09-12 12:16:19 +06:00
Mikhail Tergoev
4c39ec3c8e updated doc path 2025-09-11 14:10:24 +03:00
Mikhail Tergoev
8950d8de2f Merge branch 'minergenon-devel' 2025-09-11 13:24:10 +03:00
Sergey Palcheh
85bd5fdf5d the path for reading the THIRD-PARTY file has been fixed 2025-09-11 15:20:09 +06:00
Sergey Palcheh
b98c6e5408 added auto-completion for change-wine 2025-09-11 13:28:50 +06:00
Sergey Palcheh
bab49377a3 added the wine/proton control button to the created prefix 2025-09-11 12:52:04 +06:00
Sergey Palcheh
aa591112ff simplifying the definition of the path to dependencies.sh 2025-09-11 11:12:17 +06:00
Sergey Palcheh
08090bbb6b fixed the winetricks detection path 2025-09-11 10:45:30 +06:00
18 changed files with 1118 additions and 268 deletions

View File

@@ -4,7 +4,7 @@ _winehelper_completions() {
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="--help --version --debug install installed install-dxvk install-vkd3d -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix create-prefix --changelog changelog"
opts="--help --version --debug install installed install-dxvk install-vkd3d -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix create-prefix --changelog changelog change-wine"
wine_cmd="winecfg winereg winefile wineconsole winetricks desktop regedit explorer cmd run"
case "${prev}" in
@@ -34,6 +34,20 @@ _winehelper_completions() {
restore-prefix)
return 0
;;
install-dxvk|install-vkd3d)
local versions=$(winehelper "${prev}" list 2>/dev/null | grep ' - ' | sed 's/ - //')
COMPREPLY=( $(compgen -W "${versions} none list" -- "${cur}") )
return 0
;;
change-wine)
local wine_versions=$(awk '
/^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/ { in_group=1 }
/^#+/ { if (! ($0 ~ /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/)) in_group=0 }
/^[a-f0-9]{64}/ && in_group { sub(/\.tar\.xz$/, "", $2); print $2 }
' /usr/share/winehelper/sha256sum.list 2>/dev/null)
COMPREPLY=( $(compgen -W "system ${wine_versions}" -- "${cur}") )
return 0
;;
*)
;;
esac

View File

@@ -20,6 +20,7 @@ _winehelper() {
'remove-prefix[Удалить префикс и все связанные данные]'
'backup-prefix[Создать резерную копию префикса]'
'restore-prefix[восстановить префикс из резервной копии "путь/до/whpack"]'
'change-wine[Изменить версию Wine/Proton для префикса]'
)
wine_cmd=(
@@ -69,6 +70,9 @@ _winehelper() {
install-vkd3d)
_get_component_versions 'install-vkd3d'
;;
change-wine)
_get_wine_versions
;;
*)
_values 'winehelper options' "${opts[@]}" "${wine_cmd[@]}"
;;
@@ -87,6 +91,22 @@ _get_component_versions () {
_values 'versions' "${versions[@]}"
}
_get_wine_versions () {
local -a versions
local sha256_file="/usr/share/winehelper/sha256sum.list"
if [[ -f "$sha256_file" ]]; then
versions=( ${(f)"$(awk '
/^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/ { in_group=1 }
/^#+/ { if (! ($0 ~ /^#+\s*(WINE|WINE_LG|PROTON_LG|PROTON_STEAM)\s*#*$/)) in_group=0 }
/^[a-f0-9]{64}/ && in_group { sub(/\.tar\.xz$/, "", $2); print $2 }
' "$sha256_file" 2>/dev/null)"} )
fi
versions+=(system)
_values 'wine/proton versions' "${versions[@]}"
}
_get_prefixes () {
prefixes=( ${(f)"$(ls -1 ~/.local/share/winehelper/prefixes 2>/dev/null)"} )

39
autoinstall/arm-kt-att Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ АТТЕСТАТ” для документов об основном общем, среднем общем образовании.
########################################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-4"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ АТТЕСТАТ"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
try_remove_file "$AUTOINSTALL_ZIP"
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

39
autoinstall/arm-kt-dpp Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ ДПП” для заполнения бланков документов о повышении квалификации и профессиональной переподготовке.
########################################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ ДПП"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
try_remove_file "$AUTOINSTALL_ZIP"
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

35
autoinstall/arm-kt-es Normal file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ НШ” для заполнения бланков документов об окончании начальной школы.
########################################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-1"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ НШ"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.exe" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_EXE" ; then
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

39
autoinstall/arm-kt-med Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ МЕД” для заполнения бланков документов о послевузовском профессиональном образовании и сертификатов специалиста.
######################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-3"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ МЕД"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
try_remove_file "$AUTOINSTALL_ZIP"
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

39
autoinstall/arm-kt-prof Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ ПРОФЕССИЯ” для заполнения бланков документов профессионального обучения.
########################################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-5"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ ПРОФЕССИЯ"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
try_remove_file "$AUTOINSTALL_ZIP"
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

39
autoinstall/arm-kt-spo Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ СПО” для заполнения бланков документов о среднем профессиональном образовании.
########################################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-2"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ СПО"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
try_remove_file "$AUTOINSTALL_ZIP"
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

39
autoinstall/arm-kt-vuz Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Программа “АРМ КТ ПРОФ ВУЗ” для заполнения бланков документов о высшем образовании.
########################################################################
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-6"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="arm-kt"
export PROG_NAME="АРМ КТ ПРОФ ВУЗ"
export PROG_ICON="armkt"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="7"
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
if [[ -z $VER_EXE ]]
then fatal "Не удалось получить версию ПО со страницы на сайте!"
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
fi
prepair_wine
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
try_remove_file "$AUTOINSTALL_ZIP"
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
try_remove_file "${AUTOINSTALL_EXE}"
create_desktop "$PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
create_desktop "Регистрация $PROG_NAME" \
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
fi

View File

@@ -6,10 +6,10 @@ export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="scadoffice"
export PROG_NAME="SCAD Office"
export PROG_ICON="scadoffice"
export BASE_PFX="scadaoffice_pfx_x64_v03"
export BASE_PFX="scadaoffice_pfx_x64_v04"
export WH_WINDOWS_VER="10"
export WINEARCH="win64"
export INSTALL_DLL="dotnet20 dotnet472 dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6"
export INSTALL_DLL="dotnet20 dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6"
export WH_XDG_OPEN="rtf"
AUTOINSTALL_EXE="${WH_TMP_DIR}/SCADOffice_installer.exe"
SCADOFFICE_ADDONS_URL="https://cloud.linux-gaming.ru/portproton/scadoffice_addons_v02.tar.xz"

BIN
image/armkt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
image/nettest_client.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
image/nettest_server.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

39
manualinstall/nettest Normal file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# info_ru: Установщик программного комплекса NetTest (демо-версия)
########################################################################
export PROG_URL="https://www.kpolyakov.spb.ru/prog/nettest/nettget.htm"
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="nettest"
export PROG_NAME="NetTest"
export BASE_PFX="none"
export WINEARCH="win64"
export INSTALL_DLL=""
export WH_WINDOWS_VER="10"
ZIP_FILE="$2"
if [[ -f "$ZIP_FILE" ]] \
&& [[ $ZIP_FILE =~ ".zip" ]]
then
prepair_wine
PROG_PATH="$DRIVE_C/nettest"
if [[ $ZIP_FILE =~ "tests" ]] ; then
unpack "$2" "$PROG_PATH/tests"
print_info "Тесты $(basename "$ZIP_FILE") установлены."
exit 0
else
unpack "$2" "$PROG_PATH"
fi
cp -fr "$PROG_PATH/fonts/"* "$DRIVE_C/windows/Fonts/"
create_desktop "$PROG_NAME (Сервер)" "$PROG_PATH/testser.exe" "nettest_server"
create_desktop "$PROG_NAME (Клиент)" "$PROG_PATH/testcli.exe" "nettest_client"
else
fatal "Не найден файл архива для $PROG_NAME. Перезапустите по примеру:
winehelper install $1 \"/путь/до/архива\""
fi

View File

@@ -5,6 +5,7 @@
fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193 wine-9.0.14-alt1-i586-spravkibk.tar.xz
e0a84bb4908c3927954d7eef6b8ac7212e442b8c107d000c6890fec340f96183 wine-9.0.14-alt1-amd64.tar.xz
6f86d2220b65b709bf88c6f829a4998de3b929cc2091cd1333a51c32e1491b79 wine-9.0.9-alt1-i586.tar.xz
f1bf1261550ca2928cefacdb724926d3d6d103433d0ff6882ee9783a50d8f4e4 wine-8.8-staging-amd64.tar.xz
61bec1230b37b8fcc69fd45f848b44fd88cc41fcdd5dc3080336d7da63660f40 wine-7.16.1-alt1-amd64.tar.xz
6fea17fd131f57c2ebf7ca4c60d3c5a9e819afe16e5d0b77ecb750da99ae0e38 wine-7.16.1-alt1-i586.tar.xz
@@ -211,8 +212,8 @@ dfb44ce5e5af7dba1686932c63d6b05e5dd6919a21c78130a7d1d0271b93958e audiorecstatio
# create with wine_x_tkg_10-0_i586 (universal user: xuser)
# winetricks arial dotnet7 dotnetdesktop7 renderer=gdi
25e277c7afa4a9afc5f013cb05f872c12a7f381c4f0503a423dcacccca9a14c6 scadaoffice_pfx_x64_v03.tar.xz
# create with wine_x_tkg_10-0_i586 (universal user: xuser)
4fa93434c5c15440014357323257ddcee7d28b94ad6a56bd6f5a08b33ae4c3cb scadaoffice_pfx_x64_v04.tar.xz
# create with wine-8.8-staging-amd64
# winetricks dotnet48 gdiplus vcrun6sp6 vcrun2005 vcrun2019 d3dx11_42 d3dx11_43 d3dx9 d3dcompiler_42 d3dcompiler_43 d3dcompiler_46 d3dcompiler_47 richtx32 riched30 riched20 msxml6 dotnet20
# + addons with ODBC, SSH, *.reg
0f4ef434df07bc338ae308af44330590eaa1d9c94b64850514e55b960642d0eb scadoffice_addons_v02.tar.xz

View File

@@ -7,18 +7,20 @@ if [[ $(id -u) -eq 0 ]] ; then
fi
##### DEFAULT PATH #####
export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE AGREEMENT
export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE AGREEMENT THIRD_PARTY_FILE
SCRIPT_NAME="$(basename "$0")"
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
# переменные для установленного WineHelper в систему
WH_VERSION="$(rpm -q winehelper | awk -F'-' '{print $2}')"
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
DATA_PATH="/usr/share/$SCRIPT_NAME"
CHANGELOG_FILE="$(realpath "/usr/share/doc/winehelper"-*/CHANGELOG)"
WH_ICON_PATH="$DATA_PATH/image/gui/winehelper.svg"
LICENSE_FILE="$(realpath "/usr/share/doc/winehelper"-*/LICENSE)"
AGREEMENT="$(realpath "/usr/share/doc/winehelper"-*/LICENSE_AGREEMENT)"
CHANGELOG_FILE="/usr/share/doc/winehelper-$WH_VERSION/CHANGELOG"
LICENSE_FILE="/usr/share/doc/winehelper-$WH_VERSION/LICENSE"
AGREEMENT="/usr/share/doc/winehelper-$WH_VERSION/LICENSE_AGREEMENT"
THIRD_PARTY_FILE="/usr/share/doc/winehelper-$WH_VERSION/THIRD-PARTY"
else
# переменные для тестового запуска WineHelper из репозитория
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
@@ -28,6 +30,7 @@ else
WH_ICON_PATH="$DATA_PATH/image/gui/winehelper-devel.svg"
LICENSE_FILE="$DATA_PATH/LICENSE"
AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT"
THIRD_PARTY_FILE="$DATA_PATH/THIRD-PARTY"
# минимальная проверка синтаксиса скриптов
for self_check_script in "$RUN_SCRIPT" \
@@ -123,6 +126,12 @@ WH_TESTINSTALL_DIR="$DATA_PATH/testinstall"
WH_WINETRICKS="$DATA_PATH/winetricks_$WINETRICKS_VERSION"
WH_MENU_DIR="$HOME/.local/share/applications/WineHelper"
# TODO: system menu directory
# /usr/share/desktop-directories/WineHelper.directory
# /etc/xdg/menus/applications-merged/WineHelper.menu
# user menu directory
WH_MENU_CATEGORY="$HOME/.local/share/desktop-directories/WineHelper.directory"
WH_MENU_CONFIG="$HOME/.config/menus/applications-merged/WineHelper.menu"
@@ -159,12 +168,10 @@ check_variables WINE_WIN_START "start /wait /high /unix"
check_variables WINE_CPU_TOPOLOGY "8"
check_variables USE_RENDERER "opengl" # opengl, damavand, proton
check_variables DXVK_VER "1.10.3-28"
check_variables DXVK_VER "none"
# check_variables DXVK_CONFIG_FILE "path/to/dxvk.conf"
check_variables VKD3D_VER "1.1-2602"
check_variables VKD3D_VER "none"
# check_variables VKD3D_LIMIT_TESS_FACTORS 64
# check_variables VKD3D_FEATURE_LEVEL "12_0"
@@ -392,10 +399,14 @@ print_license_agreement () {
}
try_download () {
if [[ $WH_USE_GUI == "1" ]] \
&& [[ $(ps -o command= -p "$PPID" | awk '{print $2}') =~ "$DATA_PATH/winehelper_gui.py" ]]
then print_ok "Соглашения приняты из графического интерфейса."
else print_license_agreement
if [[ $1 != "cloud" ]] ; then
if [[ $WH_USE_GUI == "1" ]] \
&& [[ $(ps -o command= -p "$PPID" | awk '{print $2}') =~ "$DATA_PATH/winehelper_gui.py" ]]
then print_ok "Соглашения приняты из графического интерфейса."
else print_license_agreement
fi
else
shift
fi
local download_file_url output_file output_file_name
download_file_url="${1// /%20}"
@@ -614,6 +625,7 @@ create_desktop () {
echo "StartupNotify=true"
echo "Path=$DATA_PATH"
echo "Icon=$icon_file"
echo "StartupWMClass=$(basename "$exe_file")"
} > "$USER_WORK_PATH/$desktop_filename.desktop"
chmod +x "$USER_WORK_PATH/$desktop_filename.desktop"
@@ -649,7 +661,7 @@ create_desktop () {
[Desktop Entry]
Type=Directory
Name=WineHelper
Icon=wine
Icon=winehelper
EOF
fi
@@ -690,9 +702,11 @@ EOF
echo '#!/usr/bin/env bash'
echo "# cmd_name: $INSTALL_SCRIPT_NAME"
} > "$exe_file".whdb
grep -e "info_" -e "#####" -e "export" -e "var_" "$INSTALL_SCRIPT" \
| grep -vE "LAUNCH_PARAMETERS|AUTOINSTALL|WIN_FILE_EXEC|echo" \
grep -e "info_" -e "#####" -e "PROG_URL=" -e "WINEPREFIX=" -e "INSTALL_DLL=" \
-e "PROG_NAME=" -e "PROG_ICON=" -e "var_" "$INSTALL_SCRIPT" \
| awk '{$1=$1;print}' >> "$exe_file".whdb
print_info "Создан файл настроек для $exe_file"
fi
}
@@ -756,31 +770,25 @@ run_installed_programs () {
fi
}
init_wined3d () {
if [[ "$USE_RENDERER" != "proton" ]] ; then
WINED3D_FILES="d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi d3d12 d3d12core"
for wined3dfiles in $WINED3D_FILES ; do
try_copy_wine_dll_to_pfx_64 "$wined3dfiles.dll"
try_copy_wine_dll_to_pfx_32 "$wined3dfiles.dll"
done
# if [[ "$USE_RENDERER" == "damavand" ]]
# then export WINE_D3D_CONFIG="renderer=vulkan"
# else export WINE_D3D_CONFIG="renderer=gl"
# fi
return 0
else
return 1
fi
copy_wined3d () {
for wined3dfiles in $1 ; do
try_copy_wine_dll_to_pfx_64 "$wined3dfiles.dll"
try_copy_wine_dll_to_pfx_32 "$wined3dfiles.dll"
done
}
init_dxvk () {
check_variables USE_DXVK_VER "$1"
DXVK_VER="$1"
if [[ $DXVK_VER == "none" ]] ; then
copy_wined3d "d3d8 d3d9 d3d10_1 d3d10 d3d10core d3d11 dxgi"
return 0
fi
get_dxvk() {
local DXVK_URL="$1"
local DXVK_VAR_VER="$2"
local DXVK_PACKAGE="${WH_VULKAN_LIBDIR}/${DXVK_VAR_VER}.tar.$(echo "${DXVK_URL#*.tar.}")"
if try_download "$DXVK_URL" "$DXVK_PACKAGE" check256sum \
if try_download cloud "$DXVK_URL" "$DXVK_PACKAGE" check256sum \
&& unpack "$DXVK_PACKAGE" "$WH_VULKAN_LIBDIR"
then
try_remove_file "$DXVK_PACKAGE"
@@ -789,36 +797,37 @@ init_dxvk () {
return 1
}
for DXVK_VAR_VER in "$USE_DXVK_VER" $@ ; do
if [[ ! -d "${WH_VULKAN_LIBDIR}/${DXVK_VAR_VER}" ]] ; then
get_dxvk "$CLOUD_URL/${DXVK_VAR_VER}.tar.xz" "$DXVK_VAR_VER"
fi
done
if [[ ! -d "${WH_VULKAN_LIBDIR}/${DXVK_VER}" ]] ; then
get_dxvk "$CLOUD_URL/${DXVK_VER}.tar.xz" "$DXVK_VER"
fi
if [[ "${WH_USE_WINE_DXGI}" == 1 ]] ; then
if [[ $WH_USE_WINE_DXGI == "1" ]] ; then
DXVK_FILES="d3d9 d3d10_1 d3d10 d3d11" # dxvk_config openvr_api_dxvk"
try_copy_wine_dll_to_pfx_64 "dxgi.dll"
try_copy_wine_dll_to_pfx_32 "dxgi.dll"
copy_wined3d "dxgi"
else
DXVK_FILES="d3d9 d3d10_1 d3d10 d3d11 dxgi" # dxvk_config openvr_api_dxvk"
fi
for dxvkfiles in $DXVK_FILES ; do
try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${USE_DXVK_VER}/x64/$dxvkfiles.dll"
if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${USE_DXVK_VER}/x32/$dxvkfiles.dll"
try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${DXVK_VER}/x64/$dxvkfiles.dll"
if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${DXVK_VER}/x32/$dxvkfiles.dll"
then var_winedlloverride_update "$dxvkfiles=n"
fi
done
}
init_vkd3d () {
check_variables USE_VKD3D_VER "$1"
VKD3D_VER="$1"
if [[ $VKD3D_VER == "none" ]] ; then
copy_wined3d "d3d12 d3d12core"
return 0
fi
get_vkd3d() {
local VKD3D_URL="$1"
local VKD3D_VAR_VER="$2"
local VKD3D_PACKAGE="${WH_VULKAN_LIBDIR}/${VKD3D_VAR_VER}.tar.$(echo "${VKD3D_URL#*.tar.}")"
if try_download "$VKD3D_URL" "$VKD3D_PACKAGE" check256sum \
if try_download cloud "$VKD3D_URL" "$VKD3D_PACKAGE" check256sum \
&& unpack "$VKD3D_PACKAGE" "$WH_VULKAN_LIBDIR"
then
try_remove_file "$VKD3D_PACKAGE"
@@ -827,16 +836,14 @@ init_vkd3d () {
return 1
}
for VKD3D_VAR_VER in "$USE_VKD3D_VER" $@ ; do
if [[ ! -d "${WH_VULKAN_LIBDIR}/${VKD3D_VAR_VER}" ]] ; then
get_vkd3d "$CLOUD_URL/${VKD3D_VAR_VER}.tar.xz" "$VKD3D_VAR_VER"
fi
done
if [[ ! -d "${WH_VULKAN_LIBDIR}/${VKD3D_VER}" ]] ; then
get_vkd3d "$CLOUD_URL/${VKD3D_VER}.tar.xz" "$VKD3D_VER"
fi
VKD3D_FILES="d3d12 d3d12core libvkd3d-shader-1 libvkd3d-1" # libvkd3d-proton-utils-3
for vkd3dfiles in $VKD3D_FILES ; do
try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${USE_VKD3D_VER}/x64/$vkd3dfiles.dll"
if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${USE_VKD3D_VER}/x86/$vkd3dfiles.dll"
try_copy_other_dll_to_pfx_64 "${WH_VULKAN_LIBDIR}/${VKD3D_VER}/x64/$vkd3dfiles.dll"
if try_copy_other_dll_to_pfx_32 "${WH_VULKAN_LIBDIR}/${VKD3D_VER}/x86/$vkd3dfiles.dll"
then var_winedlloverride_update "$vkd3dfiles=n"
fi
done
@@ -851,7 +858,7 @@ init_wine_ver () {
download_url="$CLOUD_URL/$WH_WINE_USE.tar.xz"
wine_package="$WH_TMP_DIR/$WH_WINE_USE.tar.xz"
try_download "$download_url" "$wine_package" "check256sum"
try_download cloud "$download_url" "$wine_package" "check256sum"
unpack "$wine_package" "$WH_DIST_DIR/"
try_remove_file "$wine_package"
@@ -904,7 +911,7 @@ init_wine_ver () {
CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER"
CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz"
try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum
try_download cloud "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum
unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "$WINEDIR/lib/wine/"
@@ -1107,6 +1114,11 @@ init_wineprefix () {
export DRIVE_C="$WINEPREFIX/drive_c"
export XUSER_PATH="$DRIVE_C/users/xuser"
if [[ -d "$XUSER_PATH" ]] \
&& [[ ! -d "$DRIVE_C/users/$USER" ]]
then try_force_link_dir "$XUSER_PATH" "$DRIVE_C/users/$USER"
fi
if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then
create_new_dir "$WINEPREFIX"
if [[ "$CLEAR_PREFIX" == "1" ]]
@@ -1175,6 +1187,7 @@ init_wineprefix () {
# добавление ассоциаций файлов для запуска нативного приложения из wine
# пример переменной: WH_XDG_OPEN="txt doc pdf"
check_variables WH_XDG_OPEN "0"
local WRAPPER="${WH_TMP_DIR}/wh-xdg-open.sh"
local XDG_OPEN_REG="Software\Classes\xdg-open\shell\open\command"
if [[ $WH_XDG_OPEN != "0" ]] ; then
@@ -1197,13 +1210,19 @@ init_wineprefix () {
# добавляем новую команду xdg-open в реестр
get_and_set_reg_file --add "$XDG_OPEN_REG" '@=' 'REG_SZ' "$WRAPPER %1" "system"
# удаляем старые ассоциации, которых нет в новом списке
sed -i '/@="xdg-open"/d' "$WINEPREFIX/system.reg"
# добавляем ассоциации файлов для запуска с помощью xdg-open
for ext in $WH_XDG_OPEN ; do
get_and_set_reg_file --add "Software\Classes\.$ext" '@=' 'REG_SZ' "xdg-open" "system"
done
print_info "Используются ассоциации с нативными приложениями для файлов: \"$WH_XDG_OPEN\""
else
# удаление команды xdg-open из реестра
# удаление всех ассоциаций
for old_ext in $old_xdg_open; do
get_and_set_reg_file --delete "Software\Classes\.$old_ext" '@='
done
get_and_set_reg_file --delete "$XDG_OPEN_REG" '@='
# удаяем скрипт-обёртку
try_remove_file "$WRAPPER"
@@ -1265,7 +1284,7 @@ init_wineprefix () {
echo "# переменные последнего использования префикса:" > "$WINEPREFIX/last.conf"
for var in WH_WINE_USE BASE_PFX WINEARCH WH_WINDOWS_VER WINEESYNC WINEFSYNC \
STAGING_SHARED_MEMORY WINE_LARGE_ADDRESS_AWARE WH_USE_SHADER_CACHE WH_USE_WINE_DXGI \
WINE_CPU_TOPOLOGY USE_RENDERER DXVK_VER VKD3D_VER WH_XDG_OPEN WH_USE_MESA_GL_OVERRIDE
WINE_CPU_TOPOLOGY DXVK_VER VKD3D_VER WH_XDG_OPEN WH_USE_MESA_GL_OVERRIDE
do
echo "export $var=\"${!var}\"" >> "$WINEPREFIX/last.conf"
done
@@ -1315,7 +1334,8 @@ use_winetricks () {
}
kill_wine () {
wine_pids=$(ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | awk -F/ '{print $3}')
wine_pids=$(ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' \
| grep "$USER_WORK_PATH" | awk -F/ '{print $3}')
for pw_kill_pids in ${wine_pids}; do
if ps cax | grep "${pw_kill_pids}" ; then
@@ -1342,32 +1362,27 @@ init_database () {
if [[ "$WHDB_FILE" != "0" ]] ; then
print_info "Используется файл настроек: $WHDB_FILE"
. "$WHDB_FILE"
elif check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then
fi
if check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then
print_info "Найдены настройки из предыдущего использования префикса: $WINEPREFIX"
cat "$WINEPREFIX/last.conf"
. "$WINEPREFIX/last.conf"
else
print_warning "Файл настроек не найден. Пропускаем."
fi
}
prepair_wine () {
var_winedlloverride_update "winemenubuilder.exe=d"
if [[ -n "$INSTALL_SCRIPT_NAME" ]]
then print_info "Используются настройки из скрипта установки: $INSTALL_SCRIPT_NAME"
else init_database
fi
init_wine_ver
init_wineprefix
use_winetricks
init_dxvk "$DXVK_VER"
init_vkd3d "$VKD3D_VER"
if init_wined3d ; then
:
else
init_dxvk "$DXVK_VER"
init_vkd3d "$VKD3D_VER"
fi
[[ "$MANGOHUD" == 1 ]] && MANGOHUD_RUN="mangohud"
}
@@ -1408,6 +1423,12 @@ wine_run_install () {
}
run_autoinstall () {
if [[ $WH_USE_GUI == "1" ]] \
&& [[ $(ps -o command= -p "$PPID" | awk '{print $2}') =~ "$DATA_PATH/winehelper_gui.py" ]]
then print_ok "Соглашения приняты из графического интерфейса."
else print_license_agreement
fi
if [[ $1 == "--clear-pfx" ]] ; then
export CLEAR_PREFIX="1"
shift
@@ -1652,8 +1673,8 @@ select_wine_version() {
read -p "Введите номер для выбора wine/proton (0-$max_choice): " user_choice
if [[ "$user_choice" =~ ^[0-9]+$ ]] && (( user_choice >= 0 && user_choice <= max_choice )); then
if [[ "$user_choice" == "0" ]]; then
print_info "Создание префикса отменено."
exit 0
print_info "Операция отменена."
return 1
fi
local selected_opt
selected_opt="${selectable_options[$user_choice]}"
@@ -1667,6 +1688,7 @@ select_wine_version() {
print_error "Неверный выбор. Введите число от 0 до $max_choice."
fi
done
return 0
}
create_prefix() {
@@ -1716,7 +1738,7 @@ create_prefix() {
*) fatal "Неверный выбор. Операция отменена." ;;
esac
select_wine_version
select_wine_version || exit 0
print_info "Выберите тип создаваемого префикса:"
echo " 0) Отмена создания префикса"
@@ -1810,9 +1832,9 @@ create_base_pfx () {
&& [[ ! -L "$users_dir/$USER" ]]
then
if [[ -L "$users_dir/xuser" ]]
then try_remove_dir "$users_dir/xuser/"
then try_remove_dir "$users_dir/xuser"
fi
create_new_dir "$users_dir/xuser/"
create_new_dir "$users_dir/xuser"
cp -fr "$users_dir/$USER"/* "$users_dir/xuser/"
fi
@@ -2123,6 +2145,19 @@ select_component_version() {
done
}
run_install_to_prefix() {
export WINEPREFIX="$1"
local WIN_FILE_EXEC="$2"
if [[ -z "$WINEPREFIX" ]] || [[ -z "$WIN_FILE_EXEC" ]]; then
fatal "Использование: $SCRIPT_NAME install-to-prefix <имя_префикса> <путь_к_установщику>"
fi
check_prefix_var
prepair_wine
wine_run_install "$WIN_FILE_EXEC"
}
run_install_dxvk() {
local version="$1"
if [[ -z "$version" ]] ; then
@@ -2134,16 +2169,14 @@ run_install_dxvk() {
fi
check_prefix_var
init_database
export DXVK_VER="$version"
init_wine_ver
init_wineprefix
if [[ "$version" == "none" ]] ; then
print_info "Удаление DXVK..."
init_wined3d
update_last_conf_var "DXVK_VER" ""
else
init_dxvk "$version"
update_last_conf_var "DXVK_VER" "$USE_DXVK_VER"
if [[ "$DXVK_VER" == "none" ]]
then print_info "Удаление DXVK..."
else print_info "Установка DXVK: $DXVK_VER"
fi
init_dxvk "$DXVK_VER"
wait_wineserver
}
@@ -2158,19 +2191,38 @@ run_install_vkd3d() {
fi
check_prefix_var
init_database
export VKD3D_VER="$version"
init_wine_ver
init_wineprefix
if [[ "$version" == "none" ]] ; then
print_info "Удаление VKD3D..."
init_wined3d
update_last_conf_var "VKD3D_VER" ""
else
init_vkd3d "$version"
update_last_conf_var "VKD3D_VER" "$USE_VKD3D_VER"
if [[ "$VKD3D_VER" == "none" ]]
then print_info "Удаление VKD3D..."
else print_info "Установка VKD3D: $VKD3D_VER"
fi
init_vkd3d "$VKD3D_VER"
wait_wineserver
}
run_change_wine_version() {
local new_version="$1"
check_prefix_var
init_database
if [[ -z "$new_version" ]]; then
select_wine_version || exit 0
new_version="$WH_WINE_USE"
else
export WH_WINE_USE="$new_version"
fi
init_wine_ver
init_wineprefix
wait_wineserver
print_ok "Версия Wine для префикса $PREFIX_NAME успешно изменена на $WH_WINE_USE."
}
wh_info () {
echo "Использование: $SCRIPT_NAME [команда]
@@ -2181,6 +2233,7 @@ wh_info () {
install-dxvk [версия|none|list] установить, удалить или показать версии DXVK
install-vkd3d [версия|none|list] установить, удалить или показать версии VKD3D
change-wine [версия] изменить версию Wine/Proton для текущего префикса
installed список установленных программ
run [программа] запуск программы (отладка)
@@ -2217,6 +2270,10 @@ else
arg1="--help"
fi
# отключаем создание .desktop файлов средствами wine
# и отключаем winebth, так как может сломать winedevice.exe
var_winedlloverride_update "winemenubuilder.exe,winebth.sys=d"
case "$arg1" in
--version|version) rpm -qi "$SCRIPT_NAME" ; exit 0 ;;
--help|help) wh_info ; exit 0 ;;
@@ -2229,8 +2286,10 @@ case "$arg1" in
winetricks) prepair_wine ; "$WH_WINETRICKS" -q "$@" ;;
desktop) create_desktop "$@" ; exit 0 ;;
install|-i) run_autoinstall "$@" ;;
install-to-prefix) run_install_to_prefix "$@" ;;
install-dxvk) run_install_dxvk "$@" ;;
install-vkd3d) run_install_vkd3d "$@" ;;
change-wine) run_change_wine_version "$@" ;;
installed) check_installed_programs "$1" ;;
run|-r) run_installed_programs "$1" ;;
backup-prefix) backup_prefix "$@" ;;

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=WineHelper
Exec=winehelper gui %F
@@ -7,3 +8,4 @@ Type=Application
Categories=WineHelper;Utility;Emulator;
StartupNotify=true
Icon=winehelper
StartupWMClass=winehelper

File diff suppressed because it is too large Load Diff