diff --git a/data_from_portwine/scripts/add_in_steam.sh b/data_from_portwine/scripts/add_in_steam.sh index 54ae69b..de27bb9 100755 --- a/data_from_portwine/scripts/add_in_steam.sh +++ b/data_from_portwine/scripts/add_in_steam.sh @@ -400,6 +400,7 @@ addEntry() { removeNonSteamGame() { [[ -n "$1" ]] && appid="$1" + [[ -n "$2" ]] && NOSTSHPATH="$2" [[ -z "${STUID}" ]] && STUID=$(getUserId) [[ -z "${STCFGPATH}" ]] && STCFGPATH="$(getUserPath ${STUID})" if [[ -n "${STCFGPATH}" ]] && [[ -z "${SCPATH}" ]]; then @@ -407,7 +408,7 @@ removeNonSteamGame() { fi if [[ -n "${appid}" ]]; then games=$(listNonSteamGames) - NOSTSHPATH=$(jq -r --arg id "${appid}" 'map(select(.id == $id)) | first(.[].exe)' <<< "${games}") + [[ -z "${NOSTSHPATH}" ]] && NOSTSHPATH=$(jq -r --arg id "${appid}" 'map(select(.id == $id)) | first(.[].exe)' <<< "${games}") if [[ -n "${NOSTSHPATH}" ]]; then mv "${SCPATH}" "${SCPATH//.vdf}_${PROGNAME}_backup.vdf" 2>/dev/null jq --arg id "${appid}" 'map(select(.id != $id))' <<< "${games}" | jq -c '.[]' | while read -r game; do @@ -450,8 +451,8 @@ addNonSteamGame() { SCPATH="${STCFGPATH}/shortcuts.vdf" fi if [[ -n "${SCPATH}" ]]; then + [[ -z "${NOSTSHPATH}" ]] && NOSTSHPATH="${STEAM_SCRIPTS}/${name_desktop}.sh" NOSTAPPNAME="${name_desktop}" - NOSTSHPATH="${STEAM_SCRIPTS}/${name_desktop}.sh" NOSTAIDGRID=$(getAppId "${NOSTSHPATH}") if [[ -z "${NOSTAIDGRID}" ]]; then NOSTEXEPATH="${NOSTSHPATH}" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index f7d31fc..3eb57ea 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -6308,7 +6308,18 @@ portwine_change_shortcut () { then PW_SHORTCUT_DESKTOP="TRUE" else PW_SHORTCUT_DESKTOP="FALSE" fi - PW_SHORTCUT_STEAM="FALSE" + if [[ -n $PW_DELETE_STEAM ]]; then + source "${PORT_SCRIPTS_PATH}/add_in_steam.sh" + NOSTSHPATH="${PW_DELETE_SHORTCUT_STEAM[0]//#@_@#/ }" + NOSTAIDGRID=$(getAppId "${NOSTSHPATH}") + if [[ -n "${NOSTSHPATH}" ]] && [[ -n "${NOSTAIDGRID}" ]]; then + PW_SHORTCUT_STEAM="TRUE" + else + PW_SHORTCUT_STEAM="FALSE" + fi + else + PW_SHORTCUT_STEAM="FALSE" + fi unset name_desktop create_name_desktop @@ -6334,6 +6345,7 @@ portwine_change_shortcut () { PORTWINE_CHANGE_SHORTCUT=1 if [[ $PW_YAD_OUT == 1 ]] ; then [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB + PW_SHORTCUT_STEAM="FALSE" portwine_delete_shortcut restart_pp fi @@ -6341,24 +6353,29 @@ portwine_change_shortcut () { } portwine_search_shortcut () { - unset PW_DELETE_SHORTCUT_MENU PW_DELETE_SHORTCUT_DESKTOP - PW_DELETE_MENU="$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop 2>/dev/null)" - read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]} ${PW_DELETE_MENU// /#@_@#}" + unset PW_DELETE_SHORTCUT_MENU PW_DELETE_SHORTCUT_STEAM PW_DELETE_SHORTCUT_DESKTOP + if [[ -n "${portwine_exe}" ]]; then + PW_DELETE_MENU="$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop 2>/dev/null)" + read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]} ${PW_DELETE_MENU// /#@_@#}" - PW_DELETE_PP="$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop 2>/dev/null)" - read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]} ${PW_DELETE_PP// /#@_@#}" + PW_DELETE_PP="$(grep -il "${portwine_exe}" "${PORT_WINE_PATH}"/*.desktop 2>/dev/null)" + read -r -d '' -a PW_DELETE_SHORTCUT_MENU <<< "${PW_DELETE_SHORTCUT_MENU[*]} ${PW_DELETE_PP// /#@_@#}" - if [[ -d "${HOME}/Desktop" ]] ; then - PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop 2>/dev/null)" - read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /#@_@#}" - fi - if [[ -d "${HOME}/Рабочий стол" ]] ; then - PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Рабочий стол"/*.desktop 2>/dev/null)" - read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /#@_@#}" - fi - if [[ $(xdg-user-dir DESKTOP) ]] ; then - PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "$(xdg-user-dir DESKTOP)"/*.desktop 2>/dev/null)" - read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /#@_@#}" + PW_DELETE_STEAM="$(grep -il "${portwine_exe}" "${STEAM_SCRIPTS}"/*.sh 2>/dev/null)" + read -r -d '' -a PW_DELETE_SHORTCUT_STEAM <<< "${PW_DELETE_SHORTCUT_STEAM[*]} ${PW_DELETE_STEAM// /#@_@#}" + + if [[ -d "${HOME}/Desktop" ]] ; then + PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Desktop"/*.desktop 2>/dev/null)" + read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /#@_@#}" + fi + if [[ -d "${HOME}/Рабочий стол" ]] ; then + PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "${HOME}/Рабочий стол"/*.desktop 2>/dev/null)" + read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /#@_@#}" + fi + if [[ $(xdg-user-dir DESKTOP) ]] ; then + PW_DELETE_DESKTOP="$(grep -il "${portwine_exe}" "$(xdg-user-dir DESKTOP)"/*.desktop 2>/dev/null)" + read -r -d '' -a PW_DELETE_SHORTCUT_DESKTOP <<< "${PW_DELETE_SHORTCUT_DESKTOP[*]} ${PW_DELETE_DESKTOP// /#@_@#}" + fi fi } @@ -6371,6 +6388,11 @@ portwine_delete_shortcut () { for delete_shortcut in "${PW_DELETE_SHORTCUT_MENU[@]}" "${PW_DELETE_SHORTCUT_DESKTOP[@]}" ; do rm -f "${delete_shortcut//#@_@#/ }" done + + if [[ "${PW_SHORTCUT_STEAM}" == "FALSE" ]] && [[ -n "${NOSTSHPATH}" ]] && [[ -n "${NOSTAIDGRID}" ]]; then + source "${PORT_SCRIPTS_PATH}/add_in_steam.sh" + removeNonSteamGame "${NOSTAIDGRID}" "${NOSTSHPATH}" + fi } portwine_missing_shortcut () {