#!/bin/bash # Adapted script from LinSoftWin/Photoshop-CC2022-Linux export WINEPREFIX="$HOME/Photoshop" export XDG_DATA_HOME="$HOME/.local/share" LOG_NORMAL="\e[1;97m" LOG_ERROR="\e[1;31m" LOG_SUCCESS="\e[1;32m" LOG_RESET="\e[0m" TEMP_DIR="$(mktemp -d)" 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?f=webp" if [[ -d "$WINEPREFIX" ]]; then echo -e "${LOG_NORMAL}Photoshop path (\$HOME/Photoshop) already exists${LOG_RESET}" exit 1 fi check_dependencies() { local dependencies=("curl" "wine" "winetricks" "imagemagick") local missed_packages=() for i in "${dependencies[@]}"; do if ! command -v "$i" > /dev/null; then missed_packages+=("$i") fi done if [ ${#missed_packages[@]} -eq 0 ]; then echo -e "${LOG_GREEN}All dependencies are installed.${LOG_RESET}" else echo -e "${LOG_ERROR}Missing dependencies:${LOG_NORMAL} ${missed_packages[@]}${LOG_RESET}" exit 1 fi } mkdir $WINEPREFIX echo -e "${LOG_NORMAL}[LOG] Folder $WINEPREFIX created${LOG_RESET}" # In case if you executed this script before if [[ -f "./AdobePhotoshop2021.tar.xz" ]]; then echo -e "${LOG_NORMAL}[LOG] AdobePhotoshop2021.tar.xz already exists. Skipping download${LOG_RESET}" else echo -e "${LOG_NORMAL}[LOG] Downloading Photoshop (1.1GB)${LOG_RESET}" curl -s "https://spyderrock.com/kMnq2220-AdobePhotoshop2021.xz" -o AdobePhotoshop2021.tar.xz fi echo -e "${LOG_NORMAL}[LOG] Initializing wine and setting up winetricks.. It may take some time${LOG_RESET}" wineboot &> /dev/null winetricks fontsmooth=rgb win10 gdiplus msxml3 msxml6 atmlib corefonts dxvk win10 vkd3d d3d12 vkd3d &> /dev/null echo -e "${LOG_NORMAL}[LOG] Downloading Visual C++ runtime...${LOG_RESET}" # 2015-2022 x64 curl -s "https://aka.ms/vs/17/release/vc_redist.x64.exe" -o "${TEMP_DIR}/vc_redist_2015_2022_x64.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2015_2022_x64.exe${LOG_RESET}" # 2015-2022 x86 curl -s "https://aka.ms/vs/17/release/vc_redist.x86.exe" -o "${TEMP_DIR}/vc_redist_2015_2022_x86.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2015_2022_x86.exe${LOG_RESET}" # 2013 x64 curl -sL "https://aka.ms/highdpimfc2013x64enu" -o "${TEMP_DIR}/vc_redist_2013_x64.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2013_x64.exe${LOG_RESET}" # 2013 x86 curl -sL "https://aka.ms/highdpimfc2013x86enu" -o "${TEMP_DIR}/vc_redist_2013_x86.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2013_x86.exe${LOG_RESET}" # 2012 x64 curl -s "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe" -o "${TEMP_DIR}/vc_redist_2012_x64.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2012_x64.exe${LOG_RESET}" # 2012 x86 curl -s "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe" -o "${TEMP_DIR}/vc_redist_2012_x86.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2012_x86.exe${LOG_RESET}" # 2010 x64 curl -s "https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exe" -o "${TEMP_DIR}/vc_redist_2010_x64.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2010_x64.exe${LOG_RESET}" # 2010 x86 curl -s "https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe" -o "${TEMP_DIR}/vc_redist_2010_x86.exe" echo -e " ${LOG_SUCCESS}Downloaded vc_redist_2010_x86.exe${LOG_RESET}" echo -e "${LOG_NORMAL}[LOG] Installing Visual C++...${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2015_2022_x64.exe" /install /quiet /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2015_2022_x64.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2015_2022_x86.exe" /install /quiet /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2015_2022_x86.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2013_x64.exe" /install /quiet /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2013_x64.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2013_x86.exe" /install /quiet /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2013_x86.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2012_x64.exe" /install /quiet /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2012_x64.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2012_x86.exe" /install /quiet /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2012_x86.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2010_x64.exe" /q /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2010_x64.exe${LOG_RESET}" wine "${TEMP_DIR}/vc_redist_2010_x86.exe" /q /norestart &> /dev/null echo -e " ${LOG_SUCCESS}Insalled vc_redist_2010_x86.exe${LOG_RESET}" winecfg -v win10 &> /dev/null echo -e "${LOG_NORMAL}[LOG] Extracting Photoshop${LOG_RESET}" tar -xf AdobePhotoshop2021.tar.xz echo -e "${LOG_NORMAL}[LOG] Installing Photoshop${LOG_RESET}" mv "./Adobe Photoshop 2021" "$WINEPREFIX/drive_c/Program Files/Adobe Photoshop 2021" # Copy launcher to the wine prefix echo -e "${LOG_NORMAL}[LOG] Finishing${LOG_RESET}" cp ./launcher.sh "$WINEPREFIX/drive_c" # Download & copy icon for .desktop entry [[ ! -d "$XDG_DATA_HOME/icons" ]] && mkdir "$XDG_DATA_HOME/icons" curl -s "$ICON_URL" -o ${TEMP_DIR}/icon.webp [[ -f "$XDG_DATA_HOME/icons/photoshop.png" ]] && rm "$XDG_DATA_HOME/icons/photoshop.png" magick "${TEMP_DIR}/icon.webp" "${XDG_DATA_HOME}/icons/photoshop.png" # Generate .desktop entry for Photoshop ./generate_desktop_entry.sh echo -e "${LOG_NORMAL}[LOG] Cleaning up...${LOG_RESET}" rm ./AdobePhotoshop2021.tar.xz rm -rf "$TEMP_DIR" echo -e "${LOG_SUCCESS}Photoshop was successfully installed!${LOG_RESET}"