diff --git a/.install/Alter Aeon.sh b/.install/Alter Aeon.sh index b87dce1..a97fbfc 100644 --- a/.install/Alter Aeon.sh +++ b/.install/Alter Aeon.sh @@ -1,3 +1,3 @@ check_dependencies git sox tt++ git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \ - dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 + ui_progressbox "Game Installer" "Installing \"${game}\", please wait..." diff --git a/.install/EmpireMUD.sh b/.install/EmpireMUD.sh index f8de25f..0775dfd 100644 --- a/.install/EmpireMUD.sh +++ b/.install/EmpireMUD.sh @@ -1,3 +1,3 @@ check_dependencies git sox tt++ git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \ - dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 + ui_progressbox "Game Installer" "Installing \"${game}\", please wait..." diff --git a/.install/End of Time.sh b/.install/End of Time.sh index fa88532..159e973 100644 --- a/.install/End of Time.sh +++ b/.install/End of Time.sh @@ -1,3 +1,3 @@ check_dependencies git opusdec sox tt++ git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \ - dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 + ui_progressbox "Game Installer" "Installing \"${game}\", please wait..." diff --git a/.install/FreeDoom.sh b/.install/FreeDoom.sh index 6d700fa..fa4a8c9 100644 --- a/.install/FreeDoom.sh +++ b/.install/FreeDoom.sh @@ -2,8 +2,7 @@ tobyVersion="8-0" mkdir -p "${installPath}/doom" doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)" if [[ ${#doomPath} -lt 5 ]]; then - dialog --backtitle "Linux Game Manager" \ - --yesno "Do you want Linux Game Manager to install freedoom and gzdoom for you? If you want to do this manually, select no." -1 -1 --stdout || exit 0 + ui_yesno "Linux Game Manager" "Linux Game Manager" "Do you want Linux Game Manager to install freedoom and gzdoom for you? If you want to do this manually, select no." || exit 0 if command -v yay &> /dev/null ; then yay -Sy --noconfirm --sudoloop freedoom gzdoom freedm blasphemer-wad elif command -v slapt-src &> /dev/null ; then @@ -13,27 +12,22 @@ if [[ ${#doomPath} -lt 5 ]]; then sudo dnf -q -y install freedoom sudo dnf -q -y install gzdoom else - dialog --backtitle "Linux Game Manager" --msgbox "No supported package managers found. Please install the freedoom and gzdoom packages manually." -1 -1 + ui_msgbox "Linux Game Manager" "Linux Game Manager" "No supported package managers found. Please install the freedoom and gzdoom packages manually." exit 0 fi fi doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)" if ! [[ -e "${installPath}/doom/DoomMetalVol6.wad" ]] && ! [[ -e "${installPath}/doom/DoomMetalVol7.wad" ]]; then -alert -dialog --backtitle "Linux Game manager" \ - --extra-button \ - --yes-label "6" \ - --no-label "7" \ - --extra-label "None" \ - --yesno "Would you like Doom Metal Volume 6 or 7? Use arrow keys to select your answer." \ - -1 -1 --stdout - buttonCode=$? - if [[ $buttonCode -eq 0 ]]; then - download "${ipfsGateway}/ipfs/QmSzWKtP3wPvzn5GNd9F7n4RAhkFHxh2UHxXGefiAufwQW?filename=DoomMetalVol6.wad" - fi - if [[ $buttonCode -eq 1 ]]; then - download "${ipfsGateway}/ipfs/QmfXkz3tzicKGfhcYSiWUZkjkDKP2aVp53Y49n127wMr7D?filename=DoomMetalVol7.wad" - fi + alert + choice=$(ui_menu "Doom Metal Selection" "Doom Metal Selection" "Would you like Doom Metal Volume 6 or 7?" "6" "Doom Metal Volume 6" "7" "Doom Metal Volume 7" "none" "None") + case "$choice" in + "6") + download "${ipfsGateway}/ipfs/QmSzWKtP3wPvzn5GNd9F7n4RAhkFHxh2UHxXGefiAufwQW?filename=DoomMetalVol6.wad" + ;; + "7") + download "${ipfsGateway}/ipfs/QmfXkz3tzicKGfhcYSiWUZkjkDKP2aVp53Y49n127wMr7D?filename=DoomMetalVol7.wad" + ;; + esac fi # The url breaks the normal download function download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262" diff --git a/.install/Legends of Kallisti.sh b/.install/Legends of Kallisti.sh index b23b1c8..c9467b9 100644 --- a/.install/Legends of Kallisti.sh +++ b/.install/Legends of Kallisti.sh @@ -1,3 +1,3 @@ check_dependencies git sox tt++ git -C "${installPath}/" clone --recurse-submodules https://github.com:hjozwiak/tintin-kallisti-pack | \ - dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 + ui_progressbox "Game Installer" "Installing \"${game}\", please wait..." diff --git a/.install/Slay the Spire.sh b/.install/Slay the Spire.sh index 2b00ee8..7adc970 100644 --- a/.install/Slay the Spire.sh +++ b/.install/Slay the Spire.sh @@ -1,24 +1,21 @@ check_architecture x86_64 alert -dialog --backtitle "Linux Game manager" \ - --msgbox \ - "Please note this requires the game to be available either in your Steam library\nor as the installer purchased from gog.com.\nIf using the gog.com installer, please use the default path when prompted." -1 -1 --stdout -dialog --backtitle "Linux Game Manager" \ - --yes-label "GOG" \ - --no-label "Steam" \ - --yesno "Select installation method" -1 -1 --stdout -installationMethod=$? +ui_msgbox "Game Installer" "Game Installer" "Please note this requires the game to be available either in your Steam library or as the installer purchased from gog.com.\n\nIf using the gog.com installer, please use the default path when prompted." +installMethod=$(ui_menu "Installation Method" "Installation Method" "Select installation method" "gog" "GOG" "steam" "Steam") +if [[ "$installMethod" == "steam" ]]; then + installationMethod=1 +else + installationMethod=0 +fi appId="646570" gogFileName="slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh" if [[ $installMethod -eq 1 ]]; then # Steam Installation check_dependencies steamcmd - echo "Please enter Steam user name:" - read -er steamUser + steamUser=$(ui_inputbox "Game Installer" "Game Installer" "Please enter Steam user name:" "") steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit if [[ $? -ne 0 ]]; then - dialog --backtitle "Linux Game Manager" \ - --msgbox "Error installing game through Steam." -1 -1 --stdout + ui_msgbox "Game Installer" "Game Installer" "Error installing game through Steam." exit 1 fi else @@ -28,20 +25,17 @@ else DISPLAY="" find ~/Desktop -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \; if [[ $? -eq 0 ]]; then ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" || - { dialog --backtitle "Linux Game Manager" \ - --msgbox "Error creating link to game directory." -1 -1 --stdout + { ui_msgbox "Game Installer" "Game Installer" "Error creating link to game directory." exit 1; } else - dialog --backtitle "Linux Game Manager" \ - --msgbox "Error installing game from GOG installer." -1 -1 --stdout + ui_msgbox "Game Installer" "Game Installer" "Error installing game from GOG installer." exit 1 fi fi # Move files into place mkdir -p "${HOME}/.config/ModTheSpire" if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then - dialog --backtitle "Linux Game manager" \ - --yesno "Existing mod_lists.json file found. Would you like to replace it?" -1 -1 --stdout && + ui_yesno "Game Installer" "Game Installer" "Existing mod_lists.json file found. Would you like to replace it?" && cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json" else cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json" @@ -62,8 +56,7 @@ for modId in ${modsMap[@]} ; do done steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit if [[ $? -ne 0 ]]; then - dialog --backtitle "Linux Game Manager" \ - --msgbox "Error installing required mods. Some accessibility features may not be available." -1 -1 --stdout + ui_msgbox "Game Installer" "Game Installer" "Error installing required mods. Some accessibility features may not be available." exit 1 fi mkdir -p "$HOME/.local/games/SlayTheSpire/mods" @@ -74,8 +67,7 @@ for modName in "${!modsMap[@]}" ; do ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/mods/" fi if [[ $? -ne 0 ]] && [[ "$modName" == "say the spire" ]]; then - dialog --backtitle "Linux Game Manager" \ - --msgbox "Error installing SayTheSpire mod. Screen reader support will not be available." -1 -1 --stdout + ui_msgbox "Game Installer" "Game Installer" "Error installing SayTheSpire mod. Screen reader support will not be available." exit 1 fi done diff --git a/.install/Slay the Text.sh b/.install/Slay the Text.sh index 2c41e24..d77aa23 100644 --- a/.install/Slay the Text.sh +++ b/.install/Slay the Text.sh @@ -1,3 +1,3 @@ check_dependencies python-ansimarkup:ansimarkup git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \ - dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 + ui_progressbox "Game Installer" "Installing \"${game}\", please wait..." diff --git a/.install/Stardew Valley.sh b/.install/Stardew Valley.sh index a9a35b9..7a590b3 100644 --- a/.install/Stardew Valley.sh +++ b/.install/Stardew Valley.sh @@ -1,18 +1,17 @@ check_architecture x86_64 DISPLAY="" -echo "Please select the default path when prompted by the installer." alert +ui_msgbox "Game Installer" "Game Installer" "Please select the default path when prompted by the installer." get_installer "stardew_valley_1_5_6_1988831614_53040.sh" "https://www.gog.com/game/stardew_valley" bash "${cache}/stardew_valley_1_5_6_1988831614_53040.sh" || - { echo "Error installing game." + { ui_msgbox "Game Installer" "Game Installer" "Error installing game." exit 1; } smapiVersion="3.18.4" download "https://github.com/Pathoschild/SMAPI/releases/download/${smapiVersion}/SMAPI-${smapiVersion}-installer.zip" "https://stormgames.wolfe.casa/downloads/stardew-valley/Mods.tar.xz" smapiTmp="$(mktemp -d)" unzip "${cache}/SMAPI-${smapiVersion}-installer.zip" -d "$smapiTmp" -echo "Preparing to install mods. Please select the same path as before when prompted." -echo "When it says SMAPI has been installed, press enter to finish installation." alert +ui_msgbox "Game Installer" "Game Installer" "Preparing to install mods. Please select the same path as before when prompted.\n\nWhen it says SMAPI has been installed, press enter to finish installation." bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh" ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley" tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/" diff --git a/.install/StickMUD.sh b/.install/StickMUD.sh index 01b80e9..f786bf3 100644 --- a/.install/StickMUD.sh +++ b/.install/StickMUD.sh @@ -1,3 +1,3 @@ check_dependencies git sox tt++ git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \ - dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 + ui_progressbox "Game Installer" "Installing \"${game}\", please wait..." diff --git a/.install/The Tornado Chicken.sh b/.install/The Tornado Chicken.sh index d53b81e..0712a3b 100644 --- a/.install/The Tornado Chicken.sh +++ b/.install/The Tornado Chicken.sh @@ -2,7 +2,5 @@ check_architecture x86_64 get_installer "Ttc v3.2 linux.zip" "https://renzivan.itch.io/the-tornado-chicken" unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.2 linux.zip" chmod +x "${installPath}/The Tornado Chicken/Ttc" -echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice." -echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher." -echo "You may then press page up to set the music to your liking." alert +ui_msgbox "Game Installer" "Game Installer" "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice.\n\nYou are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher.\n\nYou may then press page up to set the music to your liking." diff --git a/.install/Upheaval Gui.sh b/.install/Upheaval Gui.sh index ab85e49..f577673 100644 --- a/.install/Upheaval Gui.sh +++ b/.install/Upheaval Gui.sh @@ -3,5 +3,5 @@ check_dependencies dmidecode get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval" mkdir -p "${installPath}/Upheaval_Gui" unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip" -echo "To enable accessibility, press shift t when the game starts." alert +ui_msgbox "Game Installer" "Game Installer" "To enable accessibility, press shift t when the game starts." diff --git a/.install/Wheels of Prio.sh b/.install/Wheels of Prio.sh index 82f10ba..0f15495 100644 --- a/.install/Wheels of Prio.sh +++ b/.install/Wheels of Prio.sh @@ -2,7 +2,5 @@ check_architecture x86_64 get_installer "Wp v3.0 linux.zip" "https://psyra-productions.itch.io/wheels-of-prio" unzip -d "${installPath}/Wheels of Prio" "${cache}/Wp v3.0 linux.zip" chmod +x "${installPath}/Wheels of Prio/Wp" -echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice." -echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher." -echo "You may then press page up to set the music to your liking." alert +ui_msgbox "Game Installer" "Game Installer" "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice.\n\nYou are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher.\n\nYou may then press page up to set the music to your liking." diff --git a/.install/Zombowl.sh b/.install/Zombowl.sh index b6efb09..c161e9c 100644 --- a/.install/Zombowl.sh +++ b/.install/Zombowl.sh @@ -4,7 +4,7 @@ if [[ "${architecture}" == "aarch64" ]]; then elif [[ "${architecture}" == "x86_64" ]]; then pkgname="Zombowl-Linux-X86_64.zip" else - echo "Architecture ${architecture} is not supported." + ui_msgbox "Game Installer" "Game Installer" "Architecture ${architecture} is not supported." exit 1 fi get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl" diff --git a/linux-game-manager.sh b/linux-game-manager.sh index 63c497d..5f54f21 100755 --- a/linux-game-manager.sh +++ b/linux-game-manager.sh @@ -572,13 +572,20 @@ help() { help_text+="spd_pitch=\" # set speech-dispatcher speech pitch.\n" help_text+="spd_rate=\" # set speech-dispatcher speech rate.\n" help_text+="spd_voice=\" # set speech-dispatcher voice. Be sure module is correct.\n" - help_text+="spd_volume=\" # set speech-dispatcher speech volume." + help_text+="spd_volume=\" # set speech-dispatcher speech volume.\n\n" + help_text+="INSTALLER SCRIPT DIALOG FUNCTIONS:\n" + help_text+="ui_msgbox \"title\" \"backtitle\" \"message\" - Show information message\n" + help_text+="ui_yesno \"title\" \"backtitle\" \"question\" - Ask yes/no question\n" + help_text+="ui_inputbox \"title\" \"backtitle\" \"prompt\" \"default\" - Get text input\n" + help_text+="ui_menu \"title\" \"backtitle\" \"prompt\" option1 \"desc1\" ... - Show menu\n" + help_text+="ui_progressbox \"title\" \"text\" - Progress dialog for piped commands" ui_msgbox "Linux Game Manager Help" "Linux Game Manager" "$help_text" exit 0 } + # main script