Compare commits
3 Commits
0.3.7
...
112933c7b1
Author | SHA1 | Date | |
---|---|---|---|
112933c7b1 | |||
de34f84e04 | |||
4310fe1e8c |
82
winehelper
82
winehelper
@ -388,7 +388,7 @@ create_desktop () {
|
|||||||
|
|
||||||
[[ ! -f "$icon_file" ]] && icon_file=wine
|
[[ ! -f "$icon_file" ]] && icon_file=wine
|
||||||
|
|
||||||
# Создаем .desktop файл
|
# создаем .desktop файл
|
||||||
{
|
{
|
||||||
echo "[Desktop Entry]"
|
echo "[Desktop Entry]"
|
||||||
echo "Name=$name_desktop"
|
echo "Name=$name_desktop"
|
||||||
@ -403,7 +403,14 @@ create_desktop () {
|
|||||||
|
|
||||||
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
|
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$WH_MENU_DIR/"
|
||||||
|
|
||||||
# Создаем файл категории для меню
|
|
||||||
|
# добавляем информацию о приложении в "$WINEPREFIX/desktop.list"
|
||||||
|
if grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list"
|
||||||
|
then sed -i "/^$name_desktop=/d" "$WINEPREFIX/desktop.list"
|
||||||
|
fi
|
||||||
|
echo "$name_desktop=${exe_file//$WINEPREFIX/}" >> "$WINEPREFIX/desktop.list"
|
||||||
|
|
||||||
|
# создаем файл категории для меню
|
||||||
create_new_dir "$HOME/.local/share/desktop-directories"
|
create_new_dir "$HOME/.local/share/desktop-directories"
|
||||||
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
|
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
|
||||||
cat > "$WH_MENU_CATEGORY" <<EOF
|
cat > "$WH_MENU_CATEGORY" <<EOF
|
||||||
@ -841,18 +848,46 @@ get_base_pfx () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
init_wineprefix () {
|
check_prefix_var () {
|
||||||
if [[ -z "$WINEPREFIX" ]] ; then
|
if [[ -z "$WINEPREFIX" ]] ; then
|
||||||
print_warning "Префикс не выбран, используйте пееременную: WINEPREFIX=имя_префикса"
|
print_warning "Префикс не выбран."
|
||||||
print_info "Список существующих префиксов:"
|
|
||||||
ls -1 "$WH_PREFIXES_DIR"
|
local prefixes=()
|
||||||
echo
|
local count=1
|
||||||
exit 1
|
print_info "Доступные префиксы WineHelper:"
|
||||||
|
for prefix in "$WH_PREFIXES_DIR"/*; do
|
||||||
|
if [[ -d "$prefix" ]]; then
|
||||||
|
prefixes+=("$prefix")
|
||||||
|
echo "$count. $(basename "$prefix")"
|
||||||
|
((count++))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${#prefixes[@]} -eq 0 ]]; then
|
||||||
|
fatal "Не найдено ни одного префикса!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local max_choice=${#prefixes[@]}
|
||||||
|
read -p "Выберите префикс (1-$max_choice): " choice
|
||||||
|
|
||||||
|
if [[ "$choice" -ge 1 && "$choice" -le "$max_choice" ]]; then
|
||||||
|
export WINEPREFIX="${prefixes[$choice-1]}"
|
||||||
else
|
else
|
||||||
|
fatal "Неверный выбор."
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_info "Выбран префикс: $WINEPREFIX"
|
||||||
|
fi
|
||||||
|
|
||||||
if echo "$WINEPREFIX" | grep -v '/' ; then
|
if echo "$WINEPREFIX" | grep -v '/' ; then
|
||||||
export WINEPREFIX="$WH_PREFIXES_DIR/$WINEPREFIX"
|
export WINEPREFIX="$WH_PREFIXES_DIR/$WINEPREFIX"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
init_wineprefix () {
|
||||||
|
check_prefix_var
|
||||||
|
|
||||||
if [[ "$WINEARCH" == "win32" ]]
|
if [[ "$WINEARCH" == "win32" ]]
|
||||||
then check_variables BASE_PFX "defpfx_x86_v01"
|
then check_variables BASE_PFX "defpfx_x86_v01"
|
||||||
@ -910,6 +945,14 @@ init_wineprefix () {
|
|||||||
get_and_set_reg_file --delete 'Software\Wine\X11 Driver' 'UseXRandR'
|
get_and_set_reg_file --delete 'Software\Wine\X11 Driver' 'UseXRandR'
|
||||||
get_and_set_reg_file --delete 'Software\Wine\X11 Driver' 'UseXVidMode'
|
get_and_set_reg_file --delete 'Software\Wine\X11 Driver' 'UseXVidMode'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
do
|
||||||
|
echo "export $var=\"${!var}\"" >> "$WINEPREFIX/last.conf"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
##### KILL AUTOSTART AFTER INSTALLING #####
|
##### KILL AUTOSTART AFTER INSTALLING #####
|
||||||
@ -992,6 +1035,7 @@ kill_wine () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init_database () {
|
init_database () {
|
||||||
|
WHDB_FILE="0"
|
||||||
if [[ -f "$WIN_FILE_EXEC" ]] ; then
|
if [[ -f "$WIN_FILE_EXEC" ]] ; then
|
||||||
WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
||||||
if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
|
if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
|
||||||
@ -1000,21 +1044,24 @@ init_database () {
|
|||||||
orig_IFS="$IFS"
|
orig_IFS="$IFS"
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )"
|
WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )"
|
||||||
if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -gt 1 ]] ; then
|
if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -eq 1 ]] ; then
|
||||||
print_error "Найдено более одного файла настроек: $WHDB.exe"
|
|
||||||
WHDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
|
|
||||||
else
|
|
||||||
WHDB_FILE="$WH_FIND_DB_FILE"
|
WHDB_FILE="$WH_FIND_DB_FILE"
|
||||||
fi
|
fi
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
fi
|
fi
|
||||||
if [[ "$WHDB_FILE" ]] ; then
|
fi
|
||||||
|
|
||||||
|
if [[ "$WHDB_FILE" != "0" ]] ; then
|
||||||
print_info "Используется файл настроек: $WHDB_FILE"
|
print_info "Используется файл настроек: $WHDB_FILE"
|
||||||
. "$WHDB_FILE"
|
. "$WHDB_FILE"
|
||||||
|
elif check_prefix_var && [[ -f "$WINEPREFIX/last.conf" ]] ; then
|
||||||
|
print_info "Найдены настройки из предыдущего использования префикса."
|
||||||
|
echo "$WINEPREFIX/last.conf"
|
||||||
|
cat "$WINEPREFIX/last.conf"
|
||||||
|
. "$WINEPREFIX/last.conf"
|
||||||
else
|
else
|
||||||
print_warning "Файл настроек не найден. Пропускаем."
|
print_warning "Файл настроек не найден. Пропускаем."
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
prepair_wine () {
|
prepair_wine () {
|
||||||
@ -1039,7 +1086,10 @@ prepair_wine () {
|
|||||||
|
|
||||||
var_winedlloverride_update "winemenubuilder.exe=d"
|
var_winedlloverride_update "winemenubuilder.exe=d"
|
||||||
|
|
||||||
init_database
|
if [[ -n "$INSTALL_SCRIPT_NAME" ]]
|
||||||
|
then print_info "Используются настройки из скрипта установки: $INSTALL_SCRIPT_NAME"
|
||||||
|
else init_database
|
||||||
|
fi
|
||||||
init_wine_ver
|
init_wine_ver
|
||||||
init_wineprefix
|
init_wineprefix
|
||||||
use_winetricks
|
use_winetricks
|
||||||
|
Reference in New Issue
Block a user