From c9d4941ac8eaa868d8210dc3a9e1732b4e7b692e Mon Sep 17 00:00:00 2001 From: Boria138 Date: Sun, 12 Nov 2023 12:29:13 +0600 Subject: [PATCH] Rewrote the shortcuts to work in Steam --- data_from_portwine/scripts/start.sh | 9 ++++----- data_from_portwine/scripts/zen_yad_gui | 23 +++++++++++++---------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index a78e8b61..4f2fdf90 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -600,11 +600,10 @@ fi if [ ! -z "${portwine_exe}" ]; then if [[ -z "${PW_GUI_DISABLED_CS}" || "${PW_GUI_DISABLED_CS}" == 0 ]] ; then pw_create_gui_png - grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop - if [[ "$?" != "0" ]] ; then - PW_SHORTCUT="${loc_gui_create_shortcut}!$PW_GUI_ICON_PATH/separator.png!${loc_create_shortcut}:100" + if ! grep -il "${PATH_TO_GAME}" "${HOME}/.local/share/applications"/*.desktop; then + PW_SHORTCUT="${loc_gui_create_shortcut}!${PW_GUI_ICON_PATH}/separator.png!${loc_create_shortcut}:100" else - PW_SHORTCUT="${loc_gui_delete_shortcut}!$PW_GUI_ICON_PATH/separator.png!${loc_delete_shortcut}:98" + PW_SHORTCUT="${loc_gui_delete_shortcut}!${PW_GUI_ICON_PATH}/separator.png!${loc_delete_shortcut}:98" fi OUTPUT_START=$("${pw_yad}" --text-align=center --text "$PW_COMMENT_DB" --borders=3 --form \ --title "${portname}-${install_ver} (${scripts_install_ver})" --image "${PW_ICON_FOR_YAD}" --separator=";" --keep-icon-size \ @@ -645,7 +644,7 @@ else if [[ ! -z $(pidof -s yad) ]] || [[ ! -z $(pidof -s yad_v12_3) ]] ; then kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY} \--notebook" | awk '{print $1}') > /dev/null 2>&1 fi - PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET//¬/" "}" | grep Exec | head -n 1 | awk -F"=env " '{print $2}')" + PW_EXEC_FROM_DESKTOP="$(cat "${PORT_WINE_PATH}/${PW_YAD_SET//¬/" "}" | grep Exec | head -n 1 | awk -F"=" '{print $2}')" print_info "Restarting PP after choose desktop file..." # stop_portwine diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui index 1098f7ad..ee4c0410 100755 --- a/data_from_portwine/scripts/zen_yad_gui +++ b/data_from_portwine/scripts/zen_yad_gui @@ -540,18 +540,20 @@ portwine_create_shortcut () { echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - if [ -z "${PW_CHECK_AUTOINSTAL}" ] - then echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ - >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - else echo "Exec=env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ - >> "${PORT_WINE_PATH}/${name_desktop}.desktop" - fi + echo "Exec=\"${PATH_TO_GAME}/${name_desktop}.sh\"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Type=Application" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Categories=Game" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "StartupNotify=true" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Path="${PORT_SCRIPTS_PATH}/"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Icon="${PORT_WINE_PATH}/data/img/${name_desktop}.png"" >> "${PORT_WINE_PATH}/${name_desktop}.desktop" + + echo "#!/usr/bin/env bash" > "${PATH_TO_GAME}/${name_desktop}.sh" + echo "##########################################################" + echo "env "\"${PORT_SCRIPTS_PATH}/start.sh\" \"${portwine_exe}\" "" \ + >> "${PATH_TO_GAME}/${name_desktop}.sh" + chmod u+x "${PORT_WINE_PATH}/${name_desktop}.desktop" + chmod u+x "${PATH_TO_GAME}/${name_desktop}.sh" if [[ "${create_menu_desktop_shortcut}" == "TRUE" ]]; then try_remove_file "${HOME}/.local/share/applications/${name_desktop}.desktop" @@ -569,12 +571,13 @@ portwine_create_shortcut () { } portwine_delete_shortcut () { - rm -f "$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop)" $>/dev/null - rm -f "$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop)" $>/dev/null + rm -f "$(grep -il "${PATH_TO_GAME}" "${HOME}/.local/share/applications"/*.desktop)" $>/dev/null + rm -f "$(grep -il "${PATH_TO_GAME}" "${PORT_WINE_PATH}"/*.desktop)" $>/dev/null + rm -f "$(grep -il "${PATH_TO_GAME}" "${PATH_TO_GAME}"/*.sh)" $>/dev/null if [[ -d "${HOME}/Desktop" ]] ; then - rm -f "$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop)" $>/dev/null + rm -f "$(grep -il "${PATH_TO_GAME}" "${HOME}/Desktop"/*.desktop)" $>/dev/null elif [[ -d "${HOME}/Рабочий стол" ]] ; then - rm -f "$(grep -il "${portwine_exe}" "${HOME}/Рабочий стол"/*.desktop)" $>/dev/null + rm -f "$(grep -il "${PATH_TO_GAME}" "${HOME}/Рабочий стол"/*.desktop)" $>/dev/null fi }