forked from CastroFidel/PortWINE
apply patch from @Htylol
This commit is contained in:
parent
bfbe843013
commit
e90b8aa242
@ -999,6 +999,18 @@ stop_portwine () {
|
|||||||
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" 2>/dev/null
|
kill -s SIGUSR1 "$(pgrep -a yad_gui_pp | grep "\--notification" | awk '{print $1}')" 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for check in ${PORT_WINE_PATH}/*.desktop ; do
|
||||||
|
SHORTCUT_SKIP_LIST+="$check"
|
||||||
|
done
|
||||||
|
SHORTCUT_SKIP_LIST="${SHORTCUT_SKIP_LIST//"${PORT_WINE_PATH}/"/""}"
|
||||||
|
if [[ ${SHORTCUT_SKIP_LIST} != "*.desktop" ]] ; then
|
||||||
|
SHORTCUT_SKIP_LIST="${SHORTCUT_SKIP_LIST//" "/"*"}"
|
||||||
|
SHORTCUT_SKIP_LIST="${SHORTCUT_SKIP_LIST//".desktop"/".lnk "}"
|
||||||
|
for skip in ${SHORTCUT_SKIP_LIST} ; do
|
||||||
|
SHORTCUT_SKIP_LIST_NEW+="-not -name "${skip}" "
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
for prefix_dir in "${PORT_WINE_PATH}"/prefixes/*; do
|
for prefix_dir in "${PORT_WINE_PATH}"/prefixes/*; do
|
||||||
DESKTOP_DIRS+=(
|
DESKTOP_DIRS+=(
|
||||||
"${prefix_dir}/drive_c/users/steamuser/Desktop"
|
"${prefix_dir}/drive_c/users/steamuser/Desktop"
|
||||||
@ -1009,28 +1021,43 @@ stop_portwine () {
|
|||||||
for dir in "${DESKTOP_DIRS[@]}" ; do
|
for dir in "${DESKTOP_DIRS[@]}" ; do
|
||||||
while IFS= read -r -d '' link_file; do
|
while IFS= read -r -d '' link_file; do
|
||||||
LINKS+=("$link_file")
|
LINKS+=("$link_file")
|
||||||
done < <(find "$dir" -type f -iname "*.lnk" -print0 2>/dev/null | sort -u)
|
done < <(find "$dir" -type f -iname "*.lnk" ${SHORTCUT_SKIP_LIST_NEW} -print0 2>/dev/null | sort -u)
|
||||||
done
|
done
|
||||||
|
|
||||||
for link_file in "${LINKS[@]}"; do
|
for link_file in "${LINKS[@]}"; do
|
||||||
if command -v exiftool &>/dev/null
|
if timeout 3 exiftool "$link_file" 2>/dev/null > "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||||
link_drive=$(exiftool -LocalBasePath "$link_file" | sed -n 's/^Local Base Path\s*:\s*//p' | cut -d: -f1 | awk '{print tolower($0)}')
|
prefix_name=$(echo $link_file | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
|
||||||
link_path=$(exiftool -LocalBasePath "$link_file" | sed -n 's/^Local Base Path\s*:\s*//p' | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$PW_PREFIX_NAME/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
if grep -i "Icon File Name" "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||||
link_name=$(exiftool -FileName "$link_file" | sed -n 's/^File Name\s*:\s*//p' | sed 's|\.lnk||')
|
link_drive=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||||
link_cmd=$(exiftool -CommandLineArguments "$link_file" | sed -n 's/^Command Line Arguments\s*:\s*//p')
|
link_path=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||||
|
else
|
||||||
|
link_drive=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||||
|
link_path=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||||
|
fi
|
||||||
|
link_name=$(sed -n 's/^File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|\.lnk||')
|
||||||
|
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
echo $link_path
|
||||||
else
|
else
|
||||||
link_drive=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -LocalBasePath "$link_file" | sed -n 's/^Local Base Path\s*:\s*//p' | cut -d: -f1 | awk '{print tolower($0)}')
|
if ! command -v exiftool &>/dev/null ; then
|
||||||
link_path=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -LocalBasePath "$link_file" | sed -n 's/^Local Base Path\s*:\s*//p' | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$PW_PREFIX_NAME/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
print_warning "use portable exiftool"
|
||||||
link_name=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -FileName "$link_file" | sed -n 's/^File Name\s*:\s*//p' | sed 's|\.lnk||')
|
prefix_name=$(echo $link_file | awk -F"/prefixes/" '{print $2}' | awk -F"/" '{print $1}')
|
||||||
link_cmd=$(env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" -CommandLineArguments "$link_file" | sed -n 's/^Command Line Arguments\s*:\s*//p')
|
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$link_file" 2>/dev/null > "${PW_TMPFS_PATH}/exiftool.tmp"
|
||||||
fi
|
if grep -i "Icon File Name" "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||||
exe_path="$(realpath "$link_path")"
|
link_drive=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||||
if ! [[ "$(grep -il "${exe_path}" "${PORT_WINE_PATH}"/*.desktop)" ]] || \
|
link_path=$(sed -n 's/^Icon File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||||
! [[ "$(grep -il "${exe_path}" "${HOME}/.local/share/applications"/*.desktop)" ]] || \
|
else
|
||||||
! [[ "$(grep -il "${exe_path}" "$(xdg-user-dir DESKTOP)"/*.desktop)" ]] ; then
|
link_drive=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | cut -d: -f1 | awk '{print tolower($0)}')
|
||||||
create_shortcut_from_link
|
link_path=$(sed -n 's/^Local Base Path\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|%ProgramFiles(x86)%|C:\\Program Files (x86)|gi;s|%ProgramFiles%|C:\\Program Files|gi' | sed "s|^.|${PORT_WINE_PATH}/data/prefixes/$prefix_name/dosdevices/$link_drive|g" | sed 's/\\/\//g')
|
||||||
print_info "Created link for $link_name"
|
fi
|
||||||
|
link_name=$(sed -n 's/^File Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp" | sed 's|\.lnk||')
|
||||||
|
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
else
|
||||||
|
yad_error "exiftool - broken!"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
exe_path="$(realpath "${link_path}")"
|
||||||
|
create_shortcut_from_link
|
||||||
|
print_info "Created link for $link_name"
|
||||||
done
|
done
|
||||||
|
|
||||||
add_in_stop_portwine
|
add_in_stop_portwine
|
||||||
@ -1329,7 +1356,7 @@ check_nvidia_rtx () {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
create_shortcut_from_link(){
|
create_shortcut_from_link () {
|
||||||
PORTPROTON_NAME="$link_name"
|
PORTPROTON_NAME="$link_name"
|
||||||
PW_RESIZE_TO=128
|
PW_RESIZE_TO=128
|
||||||
|
|
||||||
@ -1340,12 +1367,12 @@ create_shortcut_from_link(){
|
|||||||
|
|
||||||
if [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
|
if [[ ! -f "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png" ]] ; then
|
||||||
if command -v exe-thumbnailer &>/dev/null ; then
|
if command -v exe-thumbnailer &>/dev/null ; then
|
||||||
exe-thumbnailer -s 128 "$(readlink -f "${portwine_exe}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
exe-thumbnailer -s 128 "$(readlink -f "${exe_path}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
||||||
else
|
else
|
||||||
env PYTHONPATH="${PW_PLUGINS_PATH}/portable/lib/python3.9/site-packages/" \
|
env PYTHONPATH="${PW_PLUGINS_PATH}/portable/lib/python3.9/site-packages/" \
|
||||||
LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" \
|
LD_LIBRARY_PATH="${PW_PLUGINS_PATH}/portable/lib/lib64" \
|
||||||
"${PW_WINELIB}/runtime/files/bin/python3.9" \
|
"${PW_WINELIB}/runtime/files/bin/python3.9" \
|
||||||
"${PW_PLUGINS_PATH}/portable/bin/exe-thumbnailer" -s 128 "$(readlink -f "${portwine_exe}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
"${PW_PLUGINS_PATH}/portable/bin/exe-thumbnailer" -s 128 "$(readlink -f "${exe_path}")" "${PORT_WINE_PATH}/data/img/${PORTPROTON_NAME}.png"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user