mirror of
https://github.com/shvedes/photoshop-linux.git
synced 2025-09-09 20:54:55 +00:00
Added separate desktop file
This commit is contained in:
parent
ef30a7c461
commit
425a05ce46
91
install.sh
91
install.sh
@ -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
8
photoshop.desktop
Normal 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
|
Loading…
x
Reference in New Issue
Block a user