Merge branch 'Htylol-update-name_desktop' into devel
This commit is contained in:
commit
9495fdb390
@ -44,6 +44,10 @@ msgstr ""
|
|||||||
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
|
msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "A higher number of duplicate desktop files were found for this file."
|
||||||
|
"\\nShould I delete the extra ones or not?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Gallium Nine (DirectX 9 for MESA)"
|
msgid "Gallium Nine (DirectX 9 for MESA)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1878,6 +1878,11 @@ msgstr "Agregar acceso directo a la biblioteca de STEAM"
|
|||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nombre"
|
msgstr "Nombre"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"A higher number of duplicate desktop files were found for this file."
|
||||||
|
"\\nShould I delete the extra ones or not?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\¿Quieres "
|
"Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\¿Quieres "
|
||||||
|
@ -61,6 +61,13 @@ msgstr "Скачать другие версии wine"
|
|||||||
msgid "CREATE SHORTCUT"
|
msgid "CREATE SHORTCUT"
|
||||||
msgstr "СОЗДАТЬ ЯРЛЫК"
|
msgstr "СОЗДАТЬ ЯРЛЫК"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"A higher number of duplicate desktop files were found for this file."
|
||||||
|
"\\nShould I delete the extra ones or not?"
|
||||||
|
msgstr ""
|
||||||
|
"Для этого файла было обнаружено большее количество дубликатов\\nфайлов "
|
||||||
|
"рабочего стола. Удалить лишние или нет?"
|
||||||
|
|
||||||
msgid "Create shortcut for select file..."
|
msgid "Create shortcut for select file..."
|
||||||
msgstr "Создать ярлык для выбранного файла..."
|
msgstr "Создать ярлык для выбранного файла..."
|
||||||
|
|
||||||
|
@ -38,6 +38,18 @@ print_wrapped () {
|
|||||||
}
|
}
|
||||||
export -f print_wrapped
|
export -f print_wrapped
|
||||||
|
|
||||||
|
make_abbreviation () {
|
||||||
|
local words new_word i
|
||||||
|
words=($1)
|
||||||
|
# Создаем новое слово, состоящее из начальных букв слов
|
||||||
|
new_word="${words[0]:0:1}"
|
||||||
|
for ((i=1 ; i<${#words[@]} ; i++)) ; do
|
||||||
|
new_word+="${words[$i]:0:1}"
|
||||||
|
done
|
||||||
|
echo "$new_word"
|
||||||
|
}
|
||||||
|
export -f make_abbreviation
|
||||||
|
|
||||||
check_variables () { [[ -z ${!1} ]] && export $1="$2" ;}
|
check_variables () { [[ -z ${!1} ]] && export $1="$2" ;}
|
||||||
|
|
||||||
add_to_var () {
|
add_to_var () {
|
||||||
@ -818,7 +830,7 @@ debug_timer () {
|
|||||||
|
|
||||||
# Поиск нужного .desktop файла по $portwine_exe
|
# Поиск нужного .desktop файла по $portwine_exe
|
||||||
search_desktop_file () {
|
search_desktop_file () {
|
||||||
local count desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL i j df
|
local count desktop_file desktop_file_new EXEC_DESKTOP TIME_CURRENT_PROXY EXEC_DESKTOP_NEW TIME_TOTAL i j df
|
||||||
unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY
|
unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY
|
||||||
count=0
|
count=0
|
||||||
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
||||||
@ -832,50 +844,53 @@ search_desktop_file () {
|
|||||||
else
|
else
|
||||||
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
|
||||||
fi
|
|
||||||
if [[ $line =~ ^#Time= ]] && [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
|
||||||
TIME_CURRENT=${line//#Time=/}
|
|
||||||
fi
|
fi
|
||||||
|
[[ $line =~ ^#Time= ]] && TIME_CURRENT_PROXY=${line//#Time=/}
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
|
# Для конвертации существующих .desktop файлов flatpak в натив и наоборот
|
||||||
|
if [[ $EXEC_DESKTOP =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
||||||
|
sed -i "s|Exec=flatpak run ru.linux_gaming.PortProton|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|" "$desktop_file"
|
||||||
|
elif [[ $EXEC_DESKTOP =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
||||||
|
sed -i "s|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|Exec=flatpak run ru.linux_gaming.PortProton|" "$desktop_file"
|
||||||
|
fi
|
||||||
|
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
||||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
||||||
# Когда новый .desktop файл
|
if [[ -n $TIME_CURRENT_PROXY ]] ; then
|
||||||
if [[ $TIME_CURRENT == "" ]] ; then
|
TIME_CURRENT=$TIME_CURRENT_PROXY
|
||||||
echo "#NEW_DESKTOP" >> "$desktop_file"
|
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
|
||||||
TIME_CURRENT="0"
|
# Если существует несколько .desktop файлов на один и тот же .exe файл,
|
||||||
# Для битых #Time=
|
# то среди них время берётся из того .desktop файла, в котором проведено дольше времени
|
||||||
else
|
# и данное время будет потом записываться во все .desktop файлы у которых общий .exe файл
|
||||||
|
if [[ -n ${TIME_CURRENT_ARRAY[1]} ]] ; then
|
||||||
|
for i in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
||||||
|
for j in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
||||||
|
if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then
|
||||||
|
tmp=${TIME_CURRENT_ARRAY[$i]}
|
||||||
|
TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]}
|
||||||
|
TIME_CURRENT_ARRAY[j]=$tmp
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}"
|
||||||
|
# Для битых #Time=
|
||||||
if [[ ! $TIME_CURRENT =~ [0-9]+ ]] \
|
if [[ ! $TIME_CURRENT =~ [0-9]+ ]] \
|
||||||
|| (( $TIME_CURRENT >= 999999999 )) ; then
|
|| (( TIME_CURRENT >= 999999999 )) ; then
|
||||||
TIME_CURRENT="0"
|
TIME_CURRENT="0"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
|
|
||||||
unset TIME_CURRENT
|
|
||||||
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
||||||
(( count++ ))
|
(( count++ ))
|
||||||
fi
|
fi
|
||||||
|
unset TIME_CURRENT_PROXY
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
|
|
||||||
# Если существуют .desktop файлы на один и тот же .exe файл, то среди них выбирается
|
[[ -z $TIME_CURRENT ]] && TIME_CURRENT=0
|
||||||
# текущее время берётся из того .desktop файла, в котором проведено больше времени
|
export TIME_CURRENT
|
||||||
# и запись этого большего времени будет потом записываться во все .desktop файлы
|
|
||||||
# у которых общий .exe файл, это нужно для того, чтобы в главном меню .desktop файлы
|
|
||||||
# упорядочивались нормально.
|
|
||||||
for i in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
|
||||||
for j in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
|
||||||
if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then
|
|
||||||
tmp=${TIME_CURRENT_ARRAY[$i]}
|
|
||||||
TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]}
|
|
||||||
TIME_CURRENT_ARRAY[j]=$tmp
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}"
|
|
||||||
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
||||||
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
||||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
||||||
@ -890,8 +905,76 @@ search_desktop_file () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_pw_comment () {
|
||||||
|
search_desktop_file
|
||||||
|
unset DESKTOP_NAME_FILE PW_SHORTCUT_PROXY
|
||||||
|
if [[ -n ${DESKTOP_FILES_ARRAY[0]} ]] ; then
|
||||||
|
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
||||||
|
df="${df//"$PORT_WINE_PATH/"/}"
|
||||||
|
DESKTOP_NAME_FILE="${df//.desktop/}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [[ -z "${PW_COMMENT_DB}" ]] ; then
|
||||||
|
[[ $FILE_DESCRIPTION != "" ]] && FILE_DESCRIPTION_ABBR=$(make_abbreviation "$FILE_DESCRIPTION")
|
||||||
|
[[ $PORTPROTON_NAME != "" ]] && PORTPROTON_NAME_ABBR=$(make_abbreviation "$PORTPROTON_NAME")
|
||||||
|
if [[ -n $DESKTOP_NAME_FILE ]] && [[ $DESKTOP_NAME_FILE != "" ]] ; then
|
||||||
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$DESKTOP_NAME_FILE" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$DESKTOP_NAME_FILE"
|
||||||
|
elif [[ ${PORTPROTON_NAME^^} =~ ${PORTWINE_DB^^} ]] && [[ ${PORTPROTON_NAME^^} != "${PORTWINE_DB^^}" ]] ; then
|
||||||
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$PORTPROTON_NAME" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$PORTPROTON_NAME"
|
||||||
|
elif (( ${#PORTPROTON_NAME_ABBR} > 2 )) && [[ ${PORTPROTON_NAME_ABBR^^} =~ ${PORTWINE_DB^^} ]] ; then
|
||||||
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$PORTPROTON_NAME" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$PORTPROTON_NAME"
|
||||||
|
elif [[ ${FILE_DESCRIPTION^^} =~ ${PORTWINE_DB^^} ]] && [[ ${FILE_DESCRIPTION^^} != "${PORTWINE_DB^^}" ]] ; then
|
||||||
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$FILE_DESCRIPTION" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$FILE_DESCRIPTION"
|
||||||
|
elif (( ${#FILE_DESCRIPTION_ABBR} > 2 )) && [[ ${FILE_DESCRIPTION_ABBR^^} =~ ${PORTWINE_DB^^} ]] ; then
|
||||||
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$FILE_DESCRIPTION" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$FILE_DESCRIPTION"
|
||||||
|
else
|
||||||
|
unset PORTWINE_DB_PROXY PORTWINE_DB_NEW
|
||||||
|
PORTWINE_DB="${PORTWINE_DB//_/ }"
|
||||||
|
if [[ ${PORTWINE_DB:0:1} =~ [a-z] ]] ; then
|
||||||
|
PORTWINE_DB_UPPER="${PORTWINE_DB^^}"
|
||||||
|
PORTWINE_DB="${PORTWINE_DB_UPPER:0:1}${PORTWINE_DB:1}"
|
||||||
|
fi
|
||||||
|
if (( ${#PORTWINE_DB} > 3 )) ; then
|
||||||
|
for ((i=0 ; i<${#PORTWINE_DB} ; i++)) ; do
|
||||||
|
if [[ ${PORTWINE_DB:i:2} =~ ([a-z][A-Z]|[a-z][0-9]) ]] \
|
||||||
|
&& [[ ! ${PORTWINE_DB:i:3} =~ ([a-z][A-Z]" "|[a-z][0-9]" ") ]] ; then
|
||||||
|
PORTWINE_DB_PROXY+="${PORTWINE_DB:i:1} "
|
||||||
|
elif [[ ${PORTWINE_DB:i:3} =~ [0-9][0-9][a-zA-Z] ]] ; then
|
||||||
|
PORTWINE_DB_PROXY+="${PORTWINE_DB:i:2} "
|
||||||
|
((i++))
|
||||||
|
else
|
||||||
|
PORTWINE_DB_PROXY+="${PORTWINE_DB:i:1}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
for ((i=0 ; i<${#PORTWINE_DB_PROXY} ; i++)) ; do
|
||||||
|
if [[ ${PORTWINE_DB_PROXY:i:2} =~ " "[a-z] ]] ; then
|
||||||
|
PORTWINE_DB_UPPER="${PORTWINE_DB_PROXY:i:2}"
|
||||||
|
PORTWINE_DB_NEW+="${PORTWINE_DB_UPPER^^}"
|
||||||
|
((i++))
|
||||||
|
else
|
||||||
|
PORTWINE_DB_NEW+="${PORTWINE_DB_PROXY:i:1}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
PORTWINE_DB_NEW="$PORTWINE_DB"
|
||||||
|
fi
|
||||||
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "$PORTWINE_DB_NEW" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$PORTWINE_DB_NEW"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
|
||||||
|
PW_SHORTCUT_PROXY="$DESKTOP_NAME_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Конвертация секунд в дни, часы, минуты
|
# Конвертация секунд в дни, часы, минуты
|
||||||
seconds_to_time () {
|
seconds_to_time () {
|
||||||
|
[[ ! $DESKTOP_WITH_TIME == enabled ]] && return 0
|
||||||
[[ -z $1 ]] && return 0
|
[[ -z $1 ]] && return 0
|
||||||
local seconds days hours minutes
|
local seconds days hours minutes
|
||||||
seconds=$1
|
seconds=$1
|
||||||
@ -2333,25 +2416,25 @@ pw_create_gui_png () {
|
|||||||
export name_desktop_png="bat"
|
export name_desktop_png="bat"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$PORTPROTON_NAME" ]] \
|
if [[ -z "$PORTPROTON_NAME" ]] \
|
||||||
|
|| [[ -z "$FILE_DESCRIPTION" ]] \
|
||||||
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
||||||
then
|
then
|
||||||
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
||||||
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
|
PORTPROTON_NAME="${PORTWINE_CREATE_SHORTCUT_NAME}"
|
||||||
else
|
else
|
||||||
if command -v exiftool &>/dev/null ; then
|
if command -v exiftool &>/dev/null ; then
|
||||||
if ! PW_PRODUCTNAME=$(timeout 3 exiftool -ProductName "${portwine_exe}" 2>/dev/null | sed -n 's/^Product Name\s*:\s*//p') ; then
|
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||||
|
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
else
|
||||||
print_error "exiftool - broken!"
|
print_error "exiftool - broken!"
|
||||||
if [[ -n "$PW_DEBUG" ]] ; then
|
|
||||||
debug_timer --start
|
|
||||||
timeout 5 exiftool -ProductName "${portwine_exe}"
|
|
||||||
debug_timer --end "exiftool"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
print_warning "use portable exiftool"
|
print_warning "use portable exiftool"
|
||||||
PW_PRODUCTNAME=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -ProductName "${portwine_exe}" | sed -n 's/^Product Name\s*:\s*//p')
|
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
|
||||||
|
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
|
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
|
||||||
@ -2370,7 +2453,7 @@ pw_create_gui_png () {
|
|||||||
|
|
||||||
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")"
|
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")"
|
||||||
export PORTPROTON_NAME
|
export PORTPROTON_NAME
|
||||||
edit_db_from_gui PORTPROTON_NAME
|
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION
|
||||||
fi
|
fi
|
||||||
|
|
||||||
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
||||||
@ -5422,11 +5505,6 @@ resize_png () {
|
|||||||
&& [[ "$ALPINE_FP" != "1" ]]
|
&& [[ "$ALPINE_FP" != "1" ]]
|
||||||
then
|
then
|
||||||
print_error "exe-thumbnailer - broken!"
|
print_error "exe-thumbnailer - broken!"
|
||||||
if [[ -n "$PW_DEBUG" ]] ; then
|
|
||||||
debug_timer --start
|
|
||||||
timeout 5 exe-thumbnailer --force-resize -s "$RESIZE_TO" "$(readlink -f "${RESIZE_FILE}")" "${PORT_WINE_PATH}/data/img/${RESIZE_NAME_PNG}.png"
|
|
||||||
debug_timer --end "exe-thumbnailer"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
print_warning "use portable exe-thumbnailer"
|
print_warning "use portable exe-thumbnailer"
|
||||||
@ -5451,12 +5529,7 @@ portwine_create_shortcut () {
|
|||||||
[[ -z "${PW_SHORTCUT_DESKTOP}" ]] && PW_SHORTCUT_DESKTOP="TRUE"
|
[[ -z "${PW_SHORTCUT_DESKTOP}" ]] && PW_SHORTCUT_DESKTOP="TRUE"
|
||||||
[[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE"
|
[[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE"
|
||||||
|
|
||||||
if [[ -z "${PORTPROTON_NAME}" ]] ; then
|
[[ -z $PW_SHORTCUT_PROXY ]] && create_pw_comment && export name_desktop="$PW_SHORTCUT_PROXY"
|
||||||
name_desktop="$(basename "$portwine_exe")"
|
|
||||||
else
|
|
||||||
name_desktop="${PORTPROTON_NAME}"
|
|
||||||
fi
|
|
||||||
export name_desktop
|
|
||||||
|
|
||||||
[[ -z "${name_desktop_png}" ]] && name_desktop_png="${PORTPROTON_NAME// /_}"
|
[[ -z "${name_desktop_png}" ]] && name_desktop_png="${PORTPROTON_NAME// /_}"
|
||||||
|
|
||||||
@ -5504,7 +5577,16 @@ portwine_create_shortcut () {
|
|||||||
|
|
||||||
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
||||||
|
|
||||||
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
if [[ -n ${DESKTOP_FILES_ARRAY[0]} ]] && [[ $name_desktop != $DESKTOP_NAME_FILE ]] || [[ -n ${DESKTOP_FILES_ARRAY[1]} ]] ; then
|
||||||
|
if yad_question "${translations[A higher number of duplicate desktop files were found for this file.\\nShould I delete the extra ones or not?]}" ; then
|
||||||
|
for rm in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
||||||
|
rm -f "$rm"
|
||||||
|
done
|
||||||
|
[[ $name_desktop == "" ]] && create_pw_comment && export name_desktop="$PW_SHORTCUT_PROXY"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||||
echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||||
@ -5571,6 +5653,9 @@ portwine_create_shortcut () {
|
|||||||
unset PW_SKIP_RESTART_STEAM
|
unset PW_SKIP_RESTART_STEAM
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Когда новый .desktop файл
|
||||||
|
echo "#NEW_DESKTOP" >> "$PORT_WINE_PATH/$name_desktop.desktop"
|
||||||
|
|
||||||
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
|
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
|
||||||
print_info "Restarting PP..."
|
print_info "Restarting PP..."
|
||||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||||
@ -5620,11 +5705,6 @@ pw_auto_create_shortcut () {
|
|||||||
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
else
|
else
|
||||||
print_error "exiftool - broken!"
|
print_error "exiftool - broken!"
|
||||||
if [[ -n "$PW_DEBUG" ]] ; then
|
|
||||||
debug_timer --start
|
|
||||||
timeout 5 exiftool "$link_file"
|
|
||||||
debug_timer --end "exiftool"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
print_warning "use portable exiftool"
|
print_warning "use portable exiftool"
|
||||||
|
@ -96,9 +96,7 @@ unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_T
|
|||||||
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY
|
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY
|
||||||
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
|
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
|
||||||
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT
|
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT
|
||||||
unset PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES
|
unset PW_TERM PW_EXEC_FROM_DESKTOP
|
||||||
unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_GENERATE_BUTTONS
|
|
||||||
unset PW_DESKTOP_FILES_REGEX PW_TERM PW_EXEC_FROM_DESKTOP
|
|
||||||
|
|
||||||
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
|
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
|
||||||
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
|
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
|
||||||
@ -502,16 +500,7 @@ if [[ -f "${portwine_exe}" ]] ; then
|
|||||||
PW_SHORTCUT="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Delete shortcut for select file...]}:98"
|
PW_SHORTCUT="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Delete shortcut for select file...]}:98"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file
|
create_pw_comment
|
||||||
if [[ -z "${PW_COMMENT_DB}" ]] ; then
|
|
||||||
if [[ -n "${PORTPROTON_NAME}" ]] ; then
|
|
||||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
|
||||||
else
|
|
||||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export KEY_START="$RANDOM"
|
export KEY_START="$RANDOM"
|
||||||
if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then
|
if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then
|
||||||
@ -617,6 +606,8 @@ else
|
|||||||
gui_userconf
|
gui_userconf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
unset PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES
|
||||||
|
unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_DESKTOP_FILES_REGEX
|
||||||
# Поиск .desktop файлов
|
# Поиск .desktop файлов
|
||||||
AMOUNT_GENERATE_BUTTONS="0"
|
AMOUNT_GENERATE_BUTTONS="0"
|
||||||
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
||||||
@ -636,20 +627,30 @@ else
|
|||||||
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
||||||
if [[ $NEW_DESKTOP == 1 ]] && [[ $SORT_WITH_TIME == enabled ]] ; then
|
if [[ $SORT_WITH_TIME == enabled ]] && [[ $NEW_DESKTOP == 1 ]] ; then
|
||||||
unset NEW_DESKTOP
|
unset NEW_DESKTOP
|
||||||
sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
|
sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
|
||||||
PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
else
|
else
|
||||||
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
fi
|
fi
|
||||||
|
# Для конвертация .desktop файлов flatpak в натив и наоборот
|
||||||
|
if [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
||||||
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
|
NEED_FIXES_DESKTOP=1
|
||||||
|
elif [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
||||||
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
|
NEED_FIXES_DESKTOP=1
|
||||||
|
fi
|
||||||
# Для фикса битых #Time=
|
# Для фикса битых #Time=
|
||||||
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] \
|
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] \
|
||||||
|| (( ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} >= 999999999 )) ; then
|
|| (( ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} >= 999999999 )) \
|
||||||
|
|| [[ $NEED_FIXES_DESKTOP == 1 ]]
|
||||||
|
then
|
||||||
portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
||||||
search_desktop_file
|
search_desktop_file
|
||||||
unset portwine_exe
|
unset portwine_exe NEED_FIXES_DESKTOP
|
||||||
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${TIME_CURRENT_ARRAY[0]}
|
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=$TIME_CURRENT
|
||||||
fi
|
fi
|
||||||
(( AMOUNT_GENERATE_BUTTONS++ ))
|
(( AMOUNT_GENERATE_BUTTONS++ ))
|
||||||
fi
|
fi
|
||||||
@ -658,11 +659,10 @@ else
|
|||||||
|
|
||||||
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
||||||
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
||||||
if [[ $SORT_WITH_TIME == enabled ]] ; then
|
if [[ $SORT_WITH_TIME == enabled ]] && [[ -n ${PW_GAME_TIME[1]} ]] ; then
|
||||||
for i in "${!PW_GAME_TIME[@]}" ; do
|
for i in "${PW_AMOUNT_OLD_DESKTOP[@]}" ; do
|
||||||
for j in "${!PW_GAME_TIME[@]}" ; do
|
for j in "${PW_AMOUNT_OLD_DESKTOP[@]}" ; do
|
||||||
if (( ${PW_GAME_TIME[$i]} > ${PW_GAME_TIME[$j]} )) \
|
if (( ${PW_GAME_TIME[$i]} > ${PW_GAME_TIME[$j]} )) ; then
|
||||||
&& [[ ! ${PW_AMOUNT_NEW_DESKTOP[*]} =~ $j ]] ; then
|
|
||||||
tmp_0=${PW_GAME_TIME[$i]}
|
tmp_0=${PW_GAME_TIME[$i]}
|
||||||
tmp_1=${PW_ALL_DF[$i]}
|
tmp_1=${PW_ALL_DF[$i]}
|
||||||
tmp_2=${PW_NAME_D_ICON[$i]}
|
tmp_2=${PW_NAME_D_ICON[$i]}
|
||||||
@ -685,7 +685,7 @@ else
|
|||||||
# Генерация .desktop баттанов для главного меню
|
# Генерация .desktop баттанов для главного меню
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
|
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
|
||||||
for dp in ${PW_AMOUNT_NEW_DESKTOP[@]} ${PW_AMOUNT_OLD_DESKTOP[@]} ; do
|
for dp in "${PW_AMOUNT_NEW_DESKTOP[@]}" "${PW_AMOUNT_OLD_DESKTOP[@]}" ; do
|
||||||
PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48"
|
PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48"
|
||||||
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
||||||
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
|
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
|
||||||
@ -725,7 +725,6 @@ else
|
|||||||
--gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \
|
--gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \
|
||||||
--align-buttons --scroll --separator=" " ${PW_GENERATE_BUTTONS} 2>/dev/null &
|
--align-buttons --scroll --separator=" " ${PW_GENERATE_BUTTONS} 2>/dev/null &
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
unset PW_GENERATE_BUTTONS
|
|
||||||
|
|
||||||
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[3]}" --form --columns=3 --align-buttons --separator=";" --homogeneous-column \
|
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[3]}" --form --columns=3 --align-buttons --separator=";" --homogeneous-column \
|
||||||
--gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \
|
--gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" \
|
||||||
|
Loading…
Reference in New Issue
Block a user