Added separate desktop file

This commit is contained in:
Katy248 2024-10-16 12:14:23 +03:00
parent ef30a7c461
commit 425a05ce46
2 changed files with 160 additions and 151 deletions

View File

@ -58,7 +58,7 @@ on_interrupt() {
read -p "$(echo -e "$YELLOW")[WARNING]$(echo -e "$RESET") Do you want to $(echo -e "$RED")delete$(echo -e "$RESET") the just created wine prefix? (yes/no): " answer
case "$answer" in
[Yy]es|y)
[Yy]es | y)
if rm -rf "${INSTALL_PATH:?}"; then
exit 0
else
@ -66,11 +66,12 @@ on_interrupt() {
exit 1
fi
;;
[Nn]o|n)
[Nn]o | n)
exit 0
;;
*)
echo -e "$WARNING Invalid input!"
;;
esac
done
else
@ -90,21 +91,29 @@ print_error() {
command ...
}
print_warn() {
local message=$1
echo "${WARNING} ${message}" >&2
}
# Not used yet
ask_user() {
local message=$1
echo -e "${WARNING} ${message}"
while true; do
read -p "$(echo -e "${WARNING} "$@" (yes/no) : ")" answer
read -p "([Y]es/[N]o): " answer
case "$answer" in
[Yy]es|[Yy])
[Yy]es | [Yy])
return 0
;;
[Nn]o|[Nn])
[Nn]o | [Nn])
return 1
;;
*)
echo "Invalid input, try again"
;;
esac
done
}
@ -122,7 +131,7 @@ check_deps() {
missed_packages=()
for bin in "${!packages[@]}"; do
if ! command -v "$bin" > /dev/null; then
if ! command -v "$bin" >/dev/null; then
missed_packages+=("${packages[$bin]}")
fi
done
@ -152,7 +161,7 @@ install_deps() {
read -p "$(echo -e "$YELLOW")[WARNING]$(echo -e "$RESET") Script will execute: '$(echo -e "$RED")sudo$(echo -e "$RED") $(echo -e "$BLUE")pacman -S $(echo -e "$YELLOW")${missing_packages_str}$(echo -e "$RESET")'. Proceed? (yes/no): " answer
case "$answer" in
[Yy]es|y)
[Yy]es | y)
echo -e "$LOG Installing missing dependencies"
if ! sudo pacman -S "${missed_packages[@]}"; then
echo -e "$ERROR Pacman terminated with an error."
@ -162,7 +171,7 @@ install_deps() {
echo -e "$LOG Missing dependencies was installed"
break
;;
[Nn]o|n)
[Nn]o | n)
echo -e "$LOG Exiting"
exit 1
;;
@ -193,7 +202,7 @@ is_path_exists() {
read -p "$(echo -e "$YELLOW")[WARNING]$(echo -e "$RESET") Do you want to $(echo -e "$RED")delete$(echo -e "$RESET") previous installation? (yes/no): " answer
case "$answer" in
[Yy]es|y)
[Yy]es | y)
if rm -rf "${1:?}"; then
echo -e "$LOG Deleted old installation."
break
@ -202,7 +211,7 @@ is_path_exists() {
exit 1
fi
;;
[Nn]o|n)
[Nn]o | n)
echo -e "$LOG Exiting."
exit 1
;;
@ -219,24 +228,24 @@ setup_wine() {
local vc_libraries=("vcrun2003" "vcrun2005" "vcrun2010" "vcrun2012" "vcrun2013" "vcrun2022")
echo -e "$LOG Setting up wine prefix."
winecfg /v win10 2> /dev/null
winecfg /v win10 2>/dev/null
# echo -e "${LOG_NORMAL}[LOG]${LOG_RESET} Executing winetricks. All winetricks logs are saved in ${LOG_WARNING}./winetricks.log${LOG_RESET}."
echo -e "$LOG Executing winetricks."
echo -e "$LOG Downloading and installing core components for wine prefix. This could take some time."
if ! winetricks --unattended corefonts win10 vkd3d dxvk2030 msxml3 msxml6 gdiplus &> ./install_log.log; then
if ! winetricks --unattended corefonts win10 vkd3d dxvk2030 msxml3 msxml6 gdiplus &>./install_log.log; then
echo -e "$ERORR Winetricks terminated with an error."
echo -e "$ERROR Please open an issue by mentioning the contents of ${YELLOW}./install_log.log${RESET}."
exit 1
fi
echo "---------------------------------------------------------------------" >> ./install_log.log
echo " Downloading Visual C++ Libraries " >> ./install_log.log
echo "---------------------------------------------------------------------" >> ./install_log.log
echo "---------------------------------------------------------------------" >>./install_log.log
echo " Downloading Visual C++ Libraries " >>./install_log.log
echo "---------------------------------------------------------------------" >>./install_log.log
echo -e "$LOG Downloading and installing Visual C++ libraries."
if ! winetricks --unattended "${vc_libraries[@]}" &>> ./install_log.log; then
if ! winetricks --unattended "${vc_libraries[@]}" &>>./install_log.log; then
echo -e "$ERROR Winetricks terminated with an error. Please, refer to ${YELLOW}install_log.log${RESET} for more info."
# echo -e "${LOG_ERROR}[ERROR]${LOG_RESET} Please open an issue by mentioning the contents of ${LOG_WARNING}./install_log.log${LOG_RESET}."
echo -e "$ERROR If you can't solve the issue yourself, please, open an issue on the GitHub."
@ -258,14 +267,14 @@ download_photoshop() {
if [[ "$CHECKSUM" != "$local_checksum" ]]; then
echo -e "$LOG Checksums don't match!"
echo -e "$LOG Deleting corrupted archive."
rm -v "${archive_name:?}" &>> ./install_log.log
rm -v "${archive_name:?}" &>>./install_log.log
fi
return 0
fi
# echo -e "${LOG_NORMAL}[LOG]${LOG_RESET} Downloading Photoshop (1.1G). Using ${LOG_WARNING}curl${LOG_RESET} as backend. Logs are available in ${LOG_WARNING}./curl.log${LOG_RESET}."
echo -e "$LOG Downloading Photoshop (1.1G)."
if ! curl "$PHOTOSHOP_URL" -o "$archive_name" &>> ./install_log.log; then
if ! curl "$PHOTOSHOP_URL" -o "$archive_name" &>>./install_log.log; then
# TODO:
# separate function to avoid repeating
echo -e "$ERROR An error occurred during the download. Please, refer to ${YELLOW}install_log.log${RESET} for more info."
@ -337,7 +346,7 @@ install_photoshop() {
local filename="Photoshop.tar.xz"
echo -e "$LOG Extracting Photoshop."
if ! tar xvf "$filename" &>> ./install_log.log; then
if ! tar xvf "$filename" &>>./install_log.log; then
echo -e "$ERORR An error occurred while unpacking the archive."
exit 1
# TODO:
@ -377,7 +386,7 @@ install_photoshop() {
fi
echo -e "$LOG Extracting Photoshop."
if ! tar xvf "$LOCAL_ARCHIVE" &>> ./install_log.log; then
if ! tar xvf "$LOCAL_ARCHIVE" &>>./install_log.log; then
echo -e "$ERROR An error occurred while unpacking the archive."
exit 1
# TODO:
@ -400,11 +409,11 @@ install_photoshop() {
install_icon() {
# Papirus Icon Theme already has a Photoshop icon in it.
# The script will check if you have Papirus installed and use its icon. If Papirus is not installed, the script will download the icon from the Internet and use it.
if find /usr/share/icons -name "Papirus*" &> /dev/null; then
if find /usr/share/icons -name "Papirus*" &>/dev/null; then
ICON="photoshop"
else
if [ -d "$XDG_DATA_HOME/icons" ]; then
if find "$XDG_DATA_HOME/icons" -name "Papirus*" &> /dev/null; then
if find "$XDG_DATA_HOME/icons" -name "Papirus*" &>/dev/null; then
ICON="photoshop"
fi
else
@ -414,7 +423,7 @@ install_icon() {
if [ -z "$ICON" ]; then
local icon_url="https://cdn3d.iconscout.com/3d/premium/thumb/adobe-photoshop-file-3d-icon-download-in-png-blend-fbx-gltf-formats--logo-format-graphic-design-pack-development-icons-9831950.png"
if ! curl "$icon_url" -o "icon.webp" &>> ./install_log.log; then
if ! curl "$icon_url" -o "icon.webp" &>>./install_log.log; then
echo -e "$ERROR Failed to download icon. Please refer ${YELLOW}install_log.log${RESET} for info."
exit 1
fi
@ -426,26 +435,17 @@ install_icon() {
mv "./icon.png" "$XDG_DATA_HOME/icons/photoshop.png"
ICON="$XDG_DATA_HOME/icons/photoshop.png"
fi
echo "Icon=${ICON}" >>./photoshop.desktop
}
install_desktop_entry() {
if [ ! -d "$XDG_DATA_HOME/applications" ]; then
mkdir "$XDG_DATA_HOME/applications"
fi
mkdir "$XDG_DATA_HOME/applications" -p
local path="$XDG_DATA_HOME/applications/photoshop.desktop"
echo -e "$LOG Genarating application menu item"
echo "[Desktop Entry]" > "$path"
echo "Name=Adobe Photoshop CC 2021" >> "$path"
echo "Exec=bash -c "$HOME/.local/bin/photoshop.sh %F"" >> "$path"
echo "Type=Application" >> "$path"
echo "Comment=The industry-standard photo editing software (Wine" >> "$path"
echo "Categories=Graphics" >> "$path"
echo "Icon=$ICON" >> "$path"
echo "MimeType=image/psd;image/x-psd;image/png;image/jpg;image/jpeg;image/webp;image/heif;image/raw" >> "$path"
echo "StartupWMClass=photoshop.exe" >> "$path"
cp ./photoshop.desktop "${path}"
}
install_launcher() {
@ -455,16 +455,16 @@ install_launcher() {
fi
echo -e "$LOG Installing launcher."
echo "#!/usr/bin/env bash" > "$LAUNCHER"
echo " " >> "$LAUNCHER"
echo "WINEPREFIX=\"$WINEPREFIX\"" >> "$LAUNCHER"
echo "DXVK_LOG_PATH=\"\$WINEPREFIX/dxvk_cache\"" >> "$LAUNCHER"
echo "DXVK_STATE_CACHE_PATH=\"\$WINEPREFIX/dxvk_cache\"" >> "$LAUNCHER"
echo "PHOTOSHOP=\"\$WINEPREFIX/drive_c/Program Files/Adobe Photoshop 2021/photoshop.exe\"" >> "$LAUNCHER"
echo " " >> "$LAUNCHER"
echo "wine64 \"\$PHOTOSHOP\" \"\$@\" " >> "$LAUNCHER"
{
echo "#!/usr/bin/env bash"
echo " "
echo "WINEPREFIX=\"$WINEPREFIX\""
echo "DXVK_LOG_PATH=\"\$WINEPREFIX/dxvk_cache\""
echo "DXVK_STATE_CACHE_PATH=\"\$WINEPREFIX/dxvk_cache\""
echo "PHOTOSHOP=\"\$WINEPREFIX/drive_c/Program Files/Adobe Photoshop 2021/photoshop.exe\""
echo " "
echo "wine64 \"\$PHOTOSHOP\" \"\$@\" "
} >"${LAUNCHER}"
chmod +x "$LAUNCHER"
}
@ -510,6 +510,7 @@ while getopts "a:i:h" flag; do
\?)
echo "Invalid option: -$OPTARG Use -h for help."
exit 1
;;
esac
done

8
photoshop.desktop Normal file
View File

@ -0,0 +1,8 @@
[Desktop Entry]
Name=Photoshop
Type=Application
Terminal=false
Comment=The industry-standard photo editing software (Wine)
Categories=Graphics
MimeType=image/psd;image/x-psd;image/png;image/jpg;image/jpeg;image/webp;image/heif;image/raw
StartupWMClass=photoshop.exe