Compare commits

..

31 Commits

Author SHA1 Message Date
Storm Dragon
a38eee08cb Updated map menus for custom mods. 2024-12-26 19:31:39 -05:00
Storm Dragon
6237b20097 Updated Doom hash. 2024-12-26 18:38:32 -05:00
Storm Dragon
b32fe6f227 Actually update the hash for 8.0 so that it downloads the right file... 2024-12-26 17:15:20 -05:00
Storm Dragon
9e708f0bfa Transitional changes for FreeDoom, probably more to come. 2024-12-26 13:22:39 -05:00
Storm Dragon
c8ec64ec52 Fixed removal so it hopefully doesn't offer to remove ~/.local/games any more. 2024-12-26 12:42:27 -05:00
Storm Dragon
97a1ebaeeb Bash gave me a friendly reminder to bash -n before pushing changes. 2024-12-26 12:24:21 -05:00
Storm Dragon
8220cc8742 More updates to yadoom launch. 2024-12-26 12:22:35 -05:00
Storm Dragon
ee0e72fe6d Update path check for yadoom. 2024-12-26 12:08:36 -05:00
Storm Dragon
22b97be40a Fixed another problem with validation. I did all these backwards apparently. lol 2024-12-26 11:46:31 -05:00
Storm Dragon
da13890112 Updated Toby Doom installer and launcher. 2024-12-26 11:37:18 -05:00
549acb3445 Add the tornado chicken 2024-12-24 12:14:12 -08:00
Storm Dragon
5e42a45260 Fixed the desktop file creation function. You will need to recreate your desktop shortcut. 2024-12-24 11:12:36 -05:00
Storm Dragon
e1dd886fab Improvements to the launcher, move fex-emu check to launcher files. 2024-12-23 22:01:09 -05:00
Storm Dragon
ef1c67a116 Removed unneeded pushd. 2024-12-23 21:36:26 -05:00
Storm Dragon
a01f34dd02 One more removal fix. 2024-12-23 20:58:54 -05:00
Storm Dragon
ddb3e751c8 Fixed removal path for games. 2024-12-23 20:54:23 -05:00
Storm Dragon
30f36491f7 Updated the game removal function. 2024-12-23 20:41:51 -05:00
Storm Dragon
81eb291bea All games updated to the new launch system. Game launcher function updated to totally use the new system. Temporary migration function added to make sure everyone gets updated to the new system without having to do it manually. 2024-12-23 17:50:48 -05:00
Storm Dragon
97057bb1f2 Fixed a couple of path problems in custom doom launchers. 2024-12-23 12:55:54 -05:00
Storm Dragon
34e05f47a6 Massive update to launchers and installers. Working toward the new launcher system, things may still be broken but getting better. 2024-12-23 12:52:14 -05:00
Storm Dragon
b3ada38d9b Update Doom launcher to work better with the new launch system. Add some
other launchers for the switch to the new system.
2024-12-23 11:10:42 -05:00
Storm Dragon
af98ded87f Launcher added for Alter Aeon. 2024-12-23 02:35:53 -05:00
Storm Dragon
7c1a408ab2 .gitignore added. 2024-12-21 23:11:40 -05:00
Storm Dragon
abcaf32ec0 Audio Quake mostly working. 2024-12-21 22:03:01 -05:00
Storm Dragon
8258419f7c Audio Quake launcher added. Not working quite right yet. 2024-12-21 21:46:17 -05:00
Storm Dragon
ad0e7e3d7e Audio Quake Installer file created. 2024-12-21 21:02:54 -05:00
Storm Dragon
d29523316d More work on the new launch system. 2024-12-21 13:43:22 -05:00
Storm Dragon
ca2b6df08f Moved launcher files that require installation to a .game extension when installed, simlink it to a .sh when installed. This allows us to update launchers without causing conflicts with git pull. 2024-12-21 12:22:13 -05:00
Storm Dragon
cdfcf7aacf first code for moving to new game launch system, stuff is likely broken. 2024-12-21 12:09:13 -05:00
Storm Dragon
42b40489ce Resolved merge conflict. 2024-12-21 11:08:36 -05:00
Storm Dragon
1052425e70 Add support for fex-emu to launch games. 2024-12-15 20:37:36 -05:00
83 changed files with 319 additions and 176 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
nohup.out
/.launch/*.sh

View File

@ -1,4 +1,3 @@
check_dependencies git sox tt++ check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \ git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-alteraeon/aa.tin"

3
.install/Audio Quake.sh Normal file
View File

@ -0,0 +1,3 @@
check_architecture x86_64
download "https://michaels.world/aq-linux.zip"
unzip -d "${installPath}/AudioQuake" "${cache}/aq-linux.zip"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "Audo-linux-x64.zip" "https://shiftbacktick.itch.io/audo" get_installer "Audo-linux-x64.zip" "https://shiftbacktick.itch.io/audo"
mkdir -p "${installPath}/Audo" mkdir -p "${installPath}/Audo"
unzip -d "${installPath}/Audo" "${cache}/Audo-linux-x64.zip" unzip -d "${installPath}/Audo" "${cache}/Audo-linux-x64.zip"
add_launcher "${installPath}/Audo/Audo"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "Auroboros-linux-x64.zip" "https://shiftbacktick.itch.io/auroboros" get_installer "Auroboros-linux-x64.zip" "https://shiftbacktick.itch.io/auroboros"
mkdir -p "${installPath}/Auroboros" mkdir -p "${installPath}/Auroboros"
unzip -d "${installPath}/Auroboros" "${cache}/Auroboros-linux-x64.zip" unzip -d "${installPath}/Auroboros" "${cache}/Auroboros-linux-x64.zip"
add_launcher "${installPath}/Auroboros/Auroboros"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
download "https://files.sooslandia.ru/BallBouncer/1.2.1/BallBouncer-linux-1.2.1.zip" download "https://files.sooslandia.ru/BallBouncer/1.2.1/BallBouncer-linux-1.2.1.zip"
unzip -d "${installPath}/" "${cache}/BallBouncer-linux-1.2.1.zip" unzip -d "${installPath}/" "${cache}/BallBouncer-linux-1.2.1.zip"
chmod +x "${installPath}/BallBouncer/BallBouncer" chmod +x "${installPath}/BallBouncer/BallBouncer"
add_launcher "${installPath}/BallBouncer/BallBouncer"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "Bladius-linux-x64.zip" "https://shiftbacktick.itch.io/bladius" get_installer "Bladius-linux-x64.zip" "https://shiftbacktick.itch.io/bladius"
mkdir -p "${installPath}/Bladius" mkdir -p "${installPath}/Bladius"
unzip -d "${installPath}/Bladius" "${cache}/Bladius-linux-x64.zip" unzip -d "${installPath}/Bladius" "${cache}/Bladius-linux-x64.zip"
add_launcher "${installPath}/Bladius/Bladius"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "Chimera-linux-x64.zip" "https://shiftbacktick.itch.io/chimera" get_installer "Chimera-linux-x64.zip" "https://shiftbacktick.itch.io/chimera"
mkdir -p "${installPath}/Chimera" mkdir -p "${installPath}/Chimera"
unzip -d "${installPath}/Chimera" "${cache}/Chimera-linux-x64.zip" unzip -d "${installPath}/Chimera" "${cache}/Chimera-linux-x64.zip"
add_launcher "${installPath}/Chimera/Chimera"

View File

@ -4,4 +4,3 @@ mkdir -p "${installPath}/critter-sanctuary"
unzip -d "${installPath}/critter-sanctuary" "${cache}/critter-sanctuary-linux.zip" unzip -d "${installPath}/critter-sanctuary" "${cache}/critter-sanctuary-linux.zip"
mkdir -p "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine" mkdir -p "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine"
cp -v "${installPath}/critter-sanctuary/blind_options.save" "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine/options.save" cp -v "${installPath}/critter-sanctuary/blind_options.save" "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine/options.save"
add_launcher "${installPath}/critter-sanctuary/linux.x86_64"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "EXO-linux-x64.zip" "https://shiftbacktick.itch.io/exo" get_installer "EXO-linux-x64.zip" "https://shiftbacktick.itch.io/exo"
mkdir -p "${installPath}/E.X.O." mkdir -p "${installPath}/E.X.O."
unzip -d "${installPath}/E.X.O." "${cache}/EXO-linux-x64.zip" unzip -d "${installPath}/E.X.O." "${cache}/EXO-linux-x64.zip"
add_launcher "${installPath}/E.X.O./EXO"

View File

@ -3,4 +3,3 @@ get_installer "Echo Command.tar.xz" "https://pancakedev.itch.io/echo-command"
mkdir -p "${installPath}/Echo-Command" mkdir -p "${installPath}/Echo-Command"
tar xf "${cache}/Echo Command.tar.xz" -C "${installPath}/Echo-Command" tar xf "${cache}/Echo Command.tar.xz" -C "${installPath}/Echo-Command"
ln -sr "${installPath}/Echo-Command/Echo Command.x86_64" "${installPath}/Echo-Command/Echo_Command.x86_64" ln -sr "${installPath}/Echo-Command/Echo Command.x86_64" "${installPath}/Echo-Command/Echo_Command.x86_64"
add_launcher "${installPath}/Echo-Command/Echo_Command.x86_64"

View File

@ -1,4 +1,3 @@
check_dependencies git sox tt++ check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \ git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-empiremud/em.tin"

View File

@ -1,4 +1,3 @@
check_dependencies git opusdec sox tt++ check_dependencies git opusdec sox tt++
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \ git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-endoftime/eot.tin"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "FS2_3.0_Linux.zip" "https://drive.google.com/file/d/15Y5nxR1zl9vVNzMilpaXdCSBFhNUIDC9/view" get_installer "FS2_3.0_Linux.zip" "https://drive.google.com/file/d/15Y5nxR1zl9vVNzMilpaXdCSBFhNUIDC9/view"
unzip -d "${installPath}" "${cache}/FS2_3.0_Linux.zip" unzip -d "${installPath}" "${cache}/FS2_3.0_Linux.zip"
chmod +x "${installPath}/FS2_3.0_Linux/fs2.x86_64" chmod +x "${installPath}/FS2_3.0_Linux/fs2.x86_64"
add_launcher "${installPath}/FS2_3.0_Linux/fs2.x86_64" "-ESpeakApplication=espeak-ng"

View File

@ -1,4 +1,4 @@
tobyVersion="7-5" tobyVersion="8-0"
mkdir -p "${installPath}/doom" mkdir -p "${installPath}/doom"
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)" doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
if [[ ${#doomPath} -lt 5 ]]; then if [[ ${#doomPath} -lt 5 ]]; then
@ -37,16 +37,16 @@ dialog --backtitle "Linux Game manager" \
fi fi
# The url breaks the normal download function # The url breaks the normal download function
download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262" download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262"
download "${ipfsGateway}/ipfs/QmRjg1GSBmVCCtPv8GRTZSjNNDMjHEXE2k5hKxoBnYMFKQ?filename=TobyAccessibilityMod_V${tobyVersion}.zip" download "${ipfsGateway}/ipfs/QmT6FEqeGTkf3Uv1dYqQ4LGYeRSjLk1R1FeyaFJwRFBocF?filename=TobyAccessibilityMod_V${tobyVersion}.zip"
[[ -e "${cache}/DoomMetalVol6.wad" ]] && mv "${cache}/DoomMetalVol6.wad" "${installPath}/doom" [[ -e "${cache}/DoomMetalVol6.wad" ]] && mv "${cache}/DoomMetalVol6.wad" "${installPath}/doom"
[[ -e "${cache}/DoomMetalVol7.wad" ]] && mv "${cache}/DoomMetalVol7.wad" "${installPath}/doom" [[ -e "${cache}/DoomMetalVol7.wad" ]] && mv "${cache}/DoomMetalVol7.wad" "${installPath}/doom"
unzip -n -d "${installPath}/doom" "${cache}/TobyAccessibilityMod_V${tobyVersion}.zip" unzip -n -d "${installPath}/doom" "${cache}/TobyAccessibilityMod_V${tobyVersion}.zip"
unzip -n -d "${installPath}/doom" "${cache}/OpMDK_ForV${tobyVersion}.zip" #unzip -n -d "${installPath}/doom" "${cache}/OpMDK_ForV${tobyVersion}.zip"
cp -v "${cache}/keyshare-universal.pk3" "${installPath}/doom" cp -v "${cache}/keyshare-universal.pk3" "${installPath}/doom"
rm -fv "${installPath}/doom/"*.{ahk,bat,exe,dll,ps1} rm -fv "${installPath}/doom/"*.{ahk,bat,exe,dll,ps1}
if [[ -e /usr/share/doom/blasphem.wad ]]; then #if [[ -e /usr/share/doom/blasphem.wad ]]; then
ln -s /usr/share/doom/blasphem.wad "${installPath}/doom/" #ln -s /usr/share/doom/blasphem.wad "${installPath}/doom/"
fi #fi
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom" mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom"
cp "${installPath}/doom/TobyConfig.ini" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini" cp "${installPath}/doom/TobyConfig.ini" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
cp "${installPath}/doom/zcajun/bots.cfg" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/" cp "${installPath}/doom/zcajun/bots.cfg" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/"
@ -56,4 +56,3 @@ cp "${installPath}/doom/zcajun/bots.cfg" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdo
# sed -i 's/Mouse1=+attack/CTRL=+attack/' "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini" # sed -i 's/Mouse1=+attack/CTRL=+attack/' "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
launcherPath="$(readlink -f "$0")" launcherPath="$(readlink -f "$0")"
launcherPath="${launcherPath%/*}" launcherPath="${launcherPath%/*}"
add_launcher "${launcherPath}/.scripts/FreeDoom.sh"

View File

@ -1,3 +1,2 @@
check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/monkeyspank.git git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/monkeyspank.git
add_launcher "${installPath}/monkeyspank/monkeyspank"

View File

@ -1,3 +1,2 @@
check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/numnastics.git git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/numnastics.git
add_launcher "${installPath}/numnastics/numnastics"

View File

@ -3,4 +3,3 @@ get_installer "onslaught.AppImage" "https://lightsoutgames.itch.io/onslaught"
mkdir -p "${installPath}/Onslaught" mkdir -p "${installPath}/Onslaught"
cp -v "${cache}/onslaught.AppImage" "${installPath}/Onslaught/onslaught.AppImage" cp -v "${cache}/onslaught.AppImage" "${installPath}/Onslaught/onslaught.AppImage"
chmod +x "${installPath}/Onslaught/onslaught.AppImage" chmod +x "${installPath}/Onslaught/onslaught.AppImage"
add_launcher "${installPath}/Onslaught/onslaught.AppImage"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "periphery-synthetic-ep-linux-x64.zip" "https://shiftbacktick.itch.io/periphery-synthetic-ep" get_installer "periphery-synthetic-ep-linux-x64.zip" "https://shiftbacktick.itch.io/periphery-synthetic-ep"
mkdir -p "${installPath}/periphery-synthetic-ep" mkdir -p "${installPath}/periphery-synthetic-ep"
unzip -d "${installPath}/periphery-synthetic-ep" "${cache}/periphery-synthetic-ep-linux-x64.zip" unzip -d "${installPath}/periphery-synthetic-ep" "${cache}/periphery-synthetic-ep-linux-x64.zip"
add_launcher "${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "SEA-linux-x64.zip" "https://shiftbacktick.itch.io/sea" get_installer "SEA-linux-x64.zip" "https://shiftbacktick.itch.io/sea"
mkdir -p "${installPath}/S.E.A." mkdir -p "${installPath}/S.E.A."
unzip -d "${installPath}/S.E.A." "${cache}/SEA-linux-x64.zip" unzip -d "${installPath}/S.E.A." "${cache}/SEA-linux-x64.zip"
add_launcher "${installPath}/S.E.A./SEA"

View File

@ -56,4 +56,3 @@ for x in "${!mods[@]}" ; do
done done
launcherPath="$(readlink -f "$0")" launcherPath="$(readlink -f "$0")"
launcherPath="${launcherPath%/*}" launcherPath="${launcherPath%/*}"
add_launcher "${launcherPath}/.scripts/SlayTheSpire.sh"

View File

@ -1,4 +1,3 @@
check_dependencies python-ansimarkup:ansimarkup check_dependencies python-ansimarkup:ansimarkup
git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \ git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/slaythetext/main.py"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "soulblaze-linux-beta.zip" "https://sword-and-quill.itch.io/soulblaze" get_installer "soulblaze-linux-beta.zip" "https://sword-and-quill.itch.io/soulblaze"
mkdir -p "${installPath}/Soulblaze" mkdir -p "${installPath}/Soulblaze"
unzip -d "${installPath}/Soulblaze" "${cache}/soulblaze-linux-beta.zip" unzip -d "${installPath}/Soulblaze" "${cache}/soulblaze-linux-beta.zip"
add_launcher "${installPath}/Soulblaze/Soulblaze.x86_64"

View File

@ -16,4 +16,3 @@ alert
bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh" bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh"
ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley" ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley"
tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/" tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/"
add_launcher "${installPath}/StardewValley/StardewValley"

View File

@ -1,4 +1,3 @@
check_dependencies git sox tt++ check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \ git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1 dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-stickmud/stickmud.tin"

View File

@ -3,4 +3,3 @@ get_installer "system-fault-linux-x86_64.AppImage" "https://lightsoutgames.itch.
mkdir -p "${installPath}/System_Fault" mkdir -p "${installPath}/System_Fault"
cp -v "${cache}/system-fault-linux-x86_64.AppImage" "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage" cp -v "${cache}/system-fault-linux-x86_64.AppImage" "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
chmod +x "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage" chmod +x "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
add_launcher "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"

View File

@ -0,0 +1,8 @@
check_architecture x86_64
get_installer "Ttc v3.0 linux.zip" "https://renzivan.itch.io/the-tornado-chicken"
unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.0 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

View File

@ -3,4 +3,3 @@ check_dependencies dmidecode
get_installer "upheaval-linux-console.zip" "https://leonegaming.itch.io/upheaval" get_installer "upheaval-linux-console.zip" "https://leonegaming.itch.io/upheaval"
mkdir -p "${installPath}/Upheaval_Commandline" mkdir -p "${installPath}/Upheaval_Commandline"
unzip -d "${installPath}/Upheaval_Commandline" "${cache}/upheaval-linux-console.zip" unzip -d "${installPath}/Upheaval_Commandline" "${cache}/upheaval-linux-console.zip"
add_launcher "${installPath}/Upheaval_Commandline/Upheaval_Command_Line"

View File

@ -3,6 +3,5 @@ check_dependencies dmidecode
get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval" get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval"
mkdir -p "${installPath}/Upheaval_Gui" mkdir -p "${installPath}/Upheaval_Gui"
unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip" unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip"
add_launcher "${installPath}/Upheaval_Gui/Upheaval"
echo "To enable accessibility, press shift t when the game starts." echo "To enable accessibility, press shift t when the game starts."
alert alert

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "Wurmus-linux-x64.zip" "https://shiftbacktick.itch.io/wurmus" get_installer "Wurmus-linux-x64.zip" "https://shiftbacktick.itch.io/wurmus"
mkdir -p "${installPath}/Wurmus" mkdir -p "${installPath}/Wurmus"
unzip -d "${installPath}/Wurmus" "${cache}/Wurmus-linux-x64.zip" unzip -d "${installPath}/Wurmus" "${cache}/Wurmus-linux-x64.zip"
add_launcher "${installPath}/Wurmus/Wurmus"

View File

@ -10,4 +10,3 @@ fi
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl" get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
mkdir -p "${installPath}/" mkdir -p "${installPath}/"
unzip -d "${installPath}/" "${cache}/${pkgname}" unzip -d "${installPath}/" "${cache}/${pkgname}"
add_launcher "${installPath}/${pkgname%.*}/Zombowl"

View File

@ -2,4 +2,3 @@ check_architecture x86_64
get_installer "soundStrider-linux-x64.zip" "https://shiftbacktick.itch.io/soundstrider" get_installer "soundStrider-linux-x64.zip" "https://shiftbacktick.itch.io/soundstrider"
mkdir -p "${installPath}/soundStrider" mkdir -p "${installPath}/soundStrider"
unzip -d "${installPath}/soundStrider" "${cache}/soundStrider-linux-x64.zip" unzip -d "${installPath}/soundStrider" "${cache}/soundStrider-linux-x64.zip"
add_launcher "${installPath}/soundStrider/soundStrider"

1
.launch/Aliens.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://files.jantrid.net/aliens/"

9
.launch/Alter Aeon.game Normal file
View File

@ -0,0 +1,9 @@
mudPath="${installPath}/tintin-alteraeon/aa.tin"
pushd "${mudPath%/*}"
git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/}
else
tt++ ${mudPath##*/}
fi

67
.launch/Audio Quake.game Normal file
View File

@ -0,0 +1,67 @@
configure_audio() {
local sudo=$(command -v sudo)
sudo="${sudo:-doas}"
local audioProvider
if pgrep pipewire &> /dev/null ; then
audioProvider="pipewire"
elif pgrep pulse &> /dev/null ; then
audioProvider="pulseaudio"
else
audioProvider="alsa"
fi
lsmod | grep snd_aloop || $sudo modprobe snd_aloop
cardNumber="$(aplay -l |grep -P '^card \d+: Loopback' |head -n1 | cut -d\ -f2 | cut -d: -f1)"
if ! [[ "$cardNumber" =~ ^[0-9]+$ ]] ; then
dialog --backtitle "Linux Game Manager" \
--msgbox "The loopback module card number was not properly set.\nThis could mean that you failed to type your password for root privileges, or something else has gone wrong.\n If you think root privileges were succesfully obtained, please report this to the maintainers. Mention the card value: ${cardNumber}." -1 -1
exit 1
fi
alsaloop -C hw:${cardNumber},1,0 -P default &> /dev/null &
}
configure_webkit() {
local webkitPath
local sudo=$(command -v sudo)
sudo="${sudo:-doas}"
# First check if it's already properly set up
[[ -d /usr/libexec/webkit2gtk-4.0 ]] && return 0
webkitPath=$(find /usr/lib* /usr/local/lib* -type d -name 'webkit2gtk-4.0' 2>/dev/null | head -n1)
if [[ -z "${webkitPath}" ]]; then
dialog --backtitle "Linux Game manager" \
--msgbox "Error: webkit2gtk-4.0 not found. Please install webkit2gtk package for your distribution." -1 -1
exit 1
fi
# Create libexec directory if it doesn't exist
if [[ ! -d /usr/libexec ]]; then
if ! $sudo mkdir -p /usr/libexec; then
echo "Error: Failed to create /usr/libexec directory"
exit 1
fi
fi
if ! $sudo ln -s "${webkitPath}" /usr/libexec/webkit2gtk-4.0; then
echo "Error: Failed to create symlink for webkit2gtk-4.0"
exit 1
fi
}
set_sound_device() {
if ! grep -q 'set s_device' "${installPath}/AudioQuake/data/id1/config.cfg" ; then
echo "set s_device hw:${cardNumber},0,0" >> "${installPath}/AudioQuake/data/id1/config.cfg"
else
sed -E -i 's/set s_device/set s_device hw:${cardNumber},0,0/g' "${installPath}/AudioQuake/data/id1/config.cfg"
fi
if ! grep -q 'set s_device' "${installPath}/AudioQuake/data/oq/config.cfg" ; then
echo "set s_device hw:${cardNumber},0,0" >> "${installPath}/AudioQuake/data/oq/config.cfg"
else
sed -E -i 's/set s_device/set s_device hw:${cardNumber},0,0/g' "${installPath}/AudioQuake/data/oq/config.cfg"
fi
}
trap 'pkill -P $$' EXIT
configure_audio
configure_webkit
set_sound_device
pushd "${installPath}/AudioQuake"
./AudioQuake

2
.launch/Audo.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
${installPath}/Audo/Audo

2
.launch/Auroboros.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Auroboros/Auroboros"

View File

@ -0,0 +1,3 @@
check_architecture x86_64
pushd "${installPath}/BallBouncer"
${fex}./BallBouncer

1
.launch/Battle Weary.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://lonespelunker.itch.io/battle-weary"

2
.launch/Bladius.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Bladius/Bladius"

1
.launch/Cacophony.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://tianmaru.itch.io/cacophony"

2
.launch/Chimera.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Chimera/Chimera"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/critter-sanctuary/linux.x86_64"

1
.launch/Donate.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://ko-fi.com/stormux"

2
.launch/E.X.O..game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/E.X.O./EXO"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Echo-Command/Echo_Command.x86_64"

9
.launch/EmpireMUD.game Normal file
View File

@ -0,0 +1,9 @@
mudPath="${installPath}/tintin-empiremud/em.tin"
pushd "${mudPath%/*}"
git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/}
else
tt++ ${mudPath##*/}
fi

9
.launch/End of Time.game Normal file
View File

@ -0,0 +1,9 @@
mudPath="${installPath}/tintin-endoftime/eot.tin"
pushd "${mudPath%/*}"
git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/}
else
tt++ ${mudPath##*/}
fi

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/FS2_3.0_Linux/fs2.x86_64" "-ESpeakApplication=espeak-ng"

View File

@ -1,7 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
launch_game() { launch_game() {
pushd "${doomPath}" pushd "${gamePath}"
#echo "exec stdbuf -oL ${gzdoom} ${@} | speak"
exec stdbuf -oL ${gzdoom} ${@} | speak exec stdbuf -oL ${gzdoom} ${@} | speak
popd popd
} }
@ -42,38 +43,46 @@ export gamePath=~/.local/games/doom
export doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)" export doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)"
# Path to gzdoom or yadoom. # Path to gzdoom or yadoom.
if [[ -x "yadoom" ]]; then if [[ -x "${BASH_SOURCE[0]%/*}/yadoom" ]]; then
export gzdoom=$(readlink -f "yadoom") export gzdoom="$(readlink -f "${BASH_SOURCE[0]%/*}/yadoom")"
else else
export gzdoom="$(command -v gzdoom)" export gzdoom="$(command -v gzdoom)"
fi fi
# Version of the accessibility mod # Version of the accessibility mod
export tobyVersion="7-5" export tobyVersion="8-0"
# Doom Addons # Doom Addons
mapfile -t doomAddons < <(find "$gamePath/Addons/DOOM/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3" mapfile -t doomAddons < <(find "$gamePath/Addons/DOOM/" -type f -name "Toby*.pk3"
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3" find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
) )
# Heretic Addons # Heretic Addons
mapfile -t hereticAddons < <(find "$gamePath/Addons/HERETIC/" -type f -name "TobyHeretic*.pk3" mapfile -t hereticAddons < <(find "$gamePath/Addons/HERETIC/" -type f -name "TobyHeretic*.pk3"
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3" find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
)
# Hexen Addons
mapfile -t hexenAddons < <(find "$gamePath/Addons/HEXEN/" -type f -name "TobyHexen*.pk3"
find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
) )
doomGames=( doomGames=(
# Toby demo map # Toby demo map
"TobyAccMod_V${tobyVersion}.pk3 Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map"
# Unmodified Doom with accessibility. # Unmodified Doom with accessibility.
"TobyAccMod_V${tobyVersion}.pk3 ${doomAddons[*]}" "Freedoom" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${doomAddons[*]}" "Freedoom"
# Toby accessibility mods # Toby accessibility mods
"TobyAccMod_V${tobyVersion}.pk3 TobyDoomLevels.wad Toby-Doom-Level-Music-Renamer.pk3 ${doomAddons[*]}" "Freedoom Toby Delux Map Pack" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyDoomLevels.wad ${doomAddons[*]}" "Freedoom Toby Delux Map Pack"
# OperationMDK # OperationMDK
"TobyAccMod_V${tobyVersion}.pk3 OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK"
# Unmodified Heretic with accessibility # Unmodified Heretic with accessibility
"TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic"
# Heretic accessibility mods # Heretic accessibility mods
"TobyAccMod_V${tobyVersion}.pk3 TobyHereticLevels.wad ${hereticAddons[*]}" "Toby Heretic" "${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyHereticLevels.wad ${hereticAddons[*]}" "Toby Heretic"
# Unmodified Hexen with accessibility
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${hexenAddons[*]}" "Classic Hexen"
# Heretic accessibility mods
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyHexen.pk3 ${hexenAddons[*]}" "Toby Hexen"
"custom_game" "Custom Game" "custom_game" "Custom Game"
) )
@ -90,6 +99,8 @@ export antiGrepStrings=(
'-e' 'key card' '-e' 'key card'
'-e' '^New PDA Entry:' '-e' '^New PDA Entry:'
'-e' "^(As |Computer Voice:|Holy|I |I've|Monorail|Sector |Ugh|What|Where)" '-e' "^(As |Computer Voice:|Holy|I |I've|Monorail|Sector |Ugh|What|Where)"
'-e' 'Script warning, "'
'-e' 'Tried to define'
) )
export sedStrings=('-E' export sedStrings=('-E'
@ -144,7 +155,7 @@ translate_text() {
custom_game() { custom_game() {
mapfile -t customGames < <(find "${0%/*}/TobyCustom/" -type f -iname '*.sh') mapfile -t customGames < <(find "${BASH_SOURCE[0]%/*}/TobyCustom/" -type f -iname '*.sh')
declare -a customMenu declare -a customMenu
for i in "${customGames[@]}" ; do for i in "${customGames[@]}" ; do
customMenu+=("$i") customMenu+=("$i")
@ -190,7 +201,7 @@ case ${buttonCode} in
1) 1)
# Death match setup # Death match setup
# Ignore the choice of map made above # Ignore the choice of map made above
gameOption="${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/TobyDeathArena_V1-0.wad ""$gamePath/Addons/TobyV${tobVersion%%-*}_"* gameOption="${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyDeathArena_V1-5.wad ""$gamePath/Addons/DOOM/TobyV*_"*
ipAddress="$(dialog --backtitle "Deathmatch Options" \ ipAddress="$(dialog --backtitle "Deathmatch Options" \
--clear \ --clear \
--no-tags \ --no-tags \
@ -217,7 +228,9 @@ case ${buttonCode} in
"5" "Ocean Fortress (2-4 players)" "5" "Ocean Fortress (2-4 players)"
"6" "Water Treatment Facility (2-4 players)" "6" "Water Treatment Facility (2-4 players)"
"7" "Phobos Base Site 4 (2-4 players)" "7" "Phobos Base Site 4 (2-4 players)"
"8" "Hangar Bay 18 (2-4 players)") "8" "Hangar Bay 18 (2-4 players)"
"9" "Garden of Demon (2-4 players)"
"10" "Outpost 69 (2-4 players)")
# Array of how many players a given map supports in dialog rangebox syntax # Array of how many players a given map supports in dialog rangebox syntax
declare -a mapPlayers=( declare -a mapPlayers=(
[1]="2 4" [1]="2 4"
@ -227,7 +240,9 @@ case ${buttonCode} in
[5]="2 4" [5]="2 4"
[6]="2 4" [6]="2 4"
[7]="2 4" [7]="2 4"
[8]="2 4") [8]="2 4"
[9]="2 4"
[10]="2 4")
map="$(dialog --backtitle "Select Map" \ map="$(dialog --backtitle "Select Map" \
--clear \ --clear \
--no-tags \ --no-tags \
@ -325,7 +340,7 @@ case ${buttonCode} in
'-extratic' '-dup' '3' '-extratic' '-dup' '3'
) )
fi fi
pushd "${doomPath}" pushd "${gamePath}"
launch_game ${gameOption} "${flags[@]}" launch_game ${gameOption} "${flags[@]}"
;; ;;
0) 0)

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/monkeyspank/monkeyspank"

2
.launch/Numnastics.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/numnastics/numnastics"

2
.launch/Onslaught.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Onslaught/onslaught.AppImage"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"

View File

@ -0,0 +1 @@
open_url "https://qcsalon.net/"

2
.launch/S.E.A..game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/S.E.A./SEA"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${launcherPath}/.scripts/SlayTheSpire.sh"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/slaythetext/main.py"

2
.launch/Soulblaze.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Soulblaze/Soulblaze.x86_64"

0
.launch/SoundRTS.game Normal file
View File

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/StardewValley/StardewValley"

10
.launch/StickMUD.game Normal file
View File

@ -0,0 +1,10 @@
pushd "${installPath}"
mudPath="${installPath}/tintin-stickmud/stickmud.tin"
pushd "${mudPath%/*}"
git pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${mudPath##*/}
else
tt++ ${mudPath##*/}
fi

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"

View File

@ -0,0 +1,3 @@
check_architecture x86_64
pushd "${installPath}/The Tornado Chicken"
${fex}./Ttc

View File

@ -1,8 +1,8 @@
# Choice of maps # Choice of maps
mapList=( mapList=(
"${gamePath}/OpMDK.wad" "${gamePath}/OpMDK.wad"
"${gamePath}/TobyDoomLevels.wad" "${gamePath}/Addons/MAPS/TobyDoomLevels.wad"
"${gamePath}/Toby-Demo-Level.wad" "${gamePath}/Addons/MAPS/Toby-Demo-Level.wad"
) )
declare -a mapMenu=('none' 'None') declare -a mapMenu=('none' 'None')

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check for required wad. # check for required wad.
source ${0%/*}/TobyCustom/.dependencies source ${BASH_SOURCE[0]%/*}/.dependencies
check_dependencies "${gamePath}/aoddoom1.wad" "https://www.moddb.com/mods/army-of-darkness-total-conversion/addons/army-of-darkness-doom-wad" "Place \"aoddoom1.wad\" in \"${gamePath}\"." check_dependencies "${gamePath}/aoddoom1.wad" "https://www.moddb.com/mods/army-of-darkness-total-conversion/addons/army-of-darkness-doom-wad" "Place \"aoddoom1.wad\" in \"${gamePath}\"."
@ -20,4 +20,4 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
gameOption+=("${gamePath}/DoomMetalVol6.wad") gameOption+=("${gamePath}/DoomMetalVol6.wad")
fi fi
source ${0%/*}/TobyCustom/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check for required pk3. # check for required pk3.
source ${0%/*}/TobyCustom/.dependencies source ${BASH_SOURCE[0]%/*}/.dependencies
check_dependencies "${gamePath}/GMOTA_V.1.5.2.pk3" \ check_dependencies "${gamePath}/GMOTA_V.1.5.2.pk3" \
"https://combine-kegan.itch.io/gmota" \ "https://combine-kegan.itch.io/gmota" \
"Place the file in ${gamePath}" "Place the file in ${gamePath}"
@ -15,7 +15,7 @@ gameOption=(
) )
source ${0%/*}/TobyCustom/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=( flags=(
# Key bindings # Key bindings
'+bind Alt +altattack' '+bind Alt +altattack'

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check for required pk3. # check for required pk3.
source ${0%/*}/TobyCustom/.dependencies source ${BASH_SOURCE[0]%/*}/.dependencies
check_dependencies "${gamePath}/Project_Brutality.pk3" \ check_dependencies "${gamePath}/Project_Brutality.pk3" \
"https://www.moddb.com/mods/project-brutality" \ "https://www.moddb.com/mods/project-brutality" \
"This should be included by default." \ "This should be included by default." \
@ -24,7 +24,7 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
gameOption+=("${gamePath}/DoomMetalVol6.wad") gameOption+=("${gamePath}/DoomMetalVol6.wad")
fi fi
source ${0%/*}/TobyCustom/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=( flags=(
# Key bindings # Key bindings
'+bind Alt +altattack' '+bind Alt +altattack'

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check for required pk3. # check for required pk3.
source ${0%/*}/TobyCustom/.dependencies source ${BASH_SOURCE[0]%/*}/.dependencies
check_dependencies "${gamePath}/Project_Brutality-Latest.pk3" \ check_dependencies "${gamePath}/Project_Brutality-Latest.pk3" \
"https://www.moddb.com/mods/project-brutality" \ "https://www.moddb.com/mods/project-brutality" \
"This should be included by default." \ "This should be included by default." \
@ -23,7 +23,7 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
gameOption+=("${gamePath}/DoomMetalVol6.wad") gameOption+=("${gamePath}/DoomMetalVol6.wad")
fi fi
source ${0%/*}/TobyCustom/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=( flags=(
# Key bindings # Key bindings
'+bind Alt +altattack' '+bind Alt +altattack'

View File

@ -10,4 +10,4 @@ gameOption=(
"$gamePath/Addons/STARWARS/"* "$gamePath/Addons/STARWARS/"*
) )
source ${0%/*}/TobyCustom/.mapmenu source ${BASH_SOURCE[0]%/*}/.mapmenu

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check for required pk3. # check for required pk3.
source ${0%/*}/TobyCustom/.dependencies source ${BASH_SOURCE[0]%/*}/.dependencies
check_dependencies "${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" \ check_dependencies "${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" \
"https://www.moddb.com/mods/wolfendoom/downloads/wolfendoom-enhanced" \ "https://www.moddb.com/mods/wolfendoom/downloads/wolfendoom-enhanced" \
"mkdir -p ${gamePath}/Addons/WOLFENDOOM/" \ "mkdir -p ${gamePath}/Addons/WOLFENDOOM/" \

1
.launch/Trigaea.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://ryngm.itch.io/trigaea"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Upheaval_Commandline/Upheaval_Command_Line"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Upheaval_Gui/Upheaval"

2
.launch/Wurmus.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Wurmus/Wurmus"

2
.launch/Zombowl.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/${pkgname%.*}/Zombowl"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/soundStrider/soundStrider"

View File

@ -48,7 +48,7 @@ export DIALOGOPTS='--no-lines --visit-items'
# Check for updates # Check for updates
check_update() { check_update() {
local url="$(git ls-remote --get-url)" local url="$(git ls-remote --get-url)"
if [[ "$url" =~ ^ssh://|git@ ]] || [[ -z "$url" ]]; then if [[ "$url" =~ ^[[:alnum:]]+@ ]] || [[ -z "$url" ]]; then
return return
fi fi
git remote update > /dev/null 2>&1 git remote update > /dev/null 2>&1
@ -72,6 +72,7 @@ check_update() {
# Check architecture compatibility # Check architecture compatibility
check_architecture() { check_architecture() {
if command -v FEXLoader &> /dev/null ; then if command -v FEXLoader &> /dev/null ; then
export fex="FEXLoader -- "
return return
fi fi
local architecture="$(uname -m)" local architecture="$(uname -m)"
@ -151,7 +152,7 @@ desktop_launcher() {
'Name=Linux game manager' 'Name=Linux game manager'
'GenericName=Linux game Manager' 'GenericName=Linux game Manager'
'Comment=Install and launch games that are accessible to the blind' 'Comment=Install and launch games that are accessible to the blind'
"Exec=${terminal} -t \"Linux Game Manager\" -e \"/usr/bin/bash -c 'nohup $(readlink -e "$0") 2> /dev/null'\"" "Exec=${terminal} -t \"Linux Game Manager\" -e \"/usr/bin/bash -c 'pushd $(readlink -e "${0%/*}");nohup ./"${0##*/}" 2> /dev/null'\""
'Terminal=false' 'Terminal=false'
'Type=Application' 'Type=Application'
'StartupNotify=false' 'StartupNotify=false'
@ -232,19 +233,18 @@ download() {
fi fi
;; ;;
"wad") "wad")
if [[ "$(file -b --mime-type "${cache}/${dest}")" != "application/octet-stream" ]]; then if [[ "$(file -b --mime-type "${cache}/${dest}")" == "application/octet-stream" ]]; then
downloadError=0 downloadError=0
fi fi
;; ;;
*) *)
# Add HTML check for other file types # Add HTML check for other file types
if file -b "${cache}/${dest}" | grep -q "HTML document" ; then if file -b "${cache}/${dest}" | grep -q "HTML document" ; then
echo "File not found: \"$i\" (HTML document probably 404)" downloadError=1
downloadError=0
fi fi
;; ;;
esac esac
if [[ $downloadError -eq 0 ]]; then if [[ $downloadError -ne 0 ]]; then
rm -fv "${cache}/${dest}" rm -fv "${cache}/${dest}"
dialog --backtitle "Linux Game Manager" \ dialog --backtitle "Linux Game Manager" \
--infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout --infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout
@ -332,19 +332,9 @@ help() {
# main script # main script
add_launcher() {
local launchSettings="${game}|${*}"
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
echo "${launchSettings}" >> "${configFile}"
sort -o "${configFile}" "${configFile}"
fi
}
# Install games # Install games
game_installer() { game_installer() {
# Get list of installed games from config file
mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f1)
# Create the menu of available games by reading from .install directory # Create the menu of available games by reading from .install directory
declare -a menuList declare -a menuList
# Get all .sh files from .install directory, excluding those starting with #, and sort them # Get all .sh files from .install directory, excluding those starting with #, and sort them
@ -398,53 +388,66 @@ game_installer() {
exit 1 exit 1
fi fi
fi fi
if [[ -e "${0%/*}/.launch/${game}.game" ]] && ! [[ -L "${0%/*}/.launch/${game}.sh" ]]; then
ln -srf "${0%/*}/.launch/${game}.game" "${0%/*}/.launch/${game}.sh"
fi
exit 0 exit 0
} }
# remove games # remove games
game_removal() { game_removal() {
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null) # Initialize array for menu construction
if [[ ${#lines} -eq 0 ]]; then mapfile -t menuList < <(
echo "No games found." if [[ -d ".launch" ]]; then
find -L "${0%/*}/.launch" -maxdepth 1 -type f -iname "*.sh" -print0 | sort -z | xargs -0 bash -c '
for f; do
name="${f##*/}"
echo "$f"
echo "${name%.sh}"
done' _
fi
)
if [[ ${#menuList} -eq 0 ]]; then
dialog --backtitle "Linux Game Manager" \
--msgbox "No games found." -1 -1
exit 0 exit 0
fi fi
# Create the menu of installed games # Create the menu of installed games
declare -a menuList local selectedGame
for i in "${lines[@]}" ; do selectedGame=$(dialog --backtitle "Linux Game Manager" \
menuList+=("${i#*|}" "${i%|*}")
done
menuList+=("Donate" "Donate")
menuList+=("Become a Patron" "Become a Patron")
local game="$(dialog --backtitle "Audio Game Removal" \
--clear \ --clear \
--no-tags \ --no-tags \
--menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)" --menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)
if [[ ${#game} -gt 0 ]]; then exitCode=$?
if [[ "$game" == "Donate" ]]; then [[ $exitCode -ne 0 ]] && exit 0
open_url "https://ko-fi.com/stormux" # Get the actual game file paths
exit 0 local gameName="${selectedGame##*/}"
fi gameName="${gameName%.sh}"
if [[ "$game" == "Become a Patron" ]]; then local gameFile="$(readlink -f "${0%/*}/.launch/${gameName}.sh")"
open_url "https://2mb.games/product/2mb-patron/" # Get the actual installation path from the .game file
exit 0 local gameInstallPath
fi gameInstallPath="$(grep -F "installPath" "$gameFile" | grep -v 'pushd' | head -n1)"
fi gameInstallPath="${gameInstallPath#*/}"
local launcherPath="$(readlink -f "$0")" gameInstallPath="${installPath}/${gameInstallPath%/*}"
launcherPath="${launcherPath%/*}" if [[ -z "$gameInstallPath" ]] || [[ "${gameInstallPath%%/}" == "$installPath" ]]; then
local noRemove="no" # No install path found, just remove from list
if [[ "${game%/*}" =~ ^$launcherPath ]] ; then
# The launcher is actually a script under lgm, do not remove.
noRemove="yes"
dialog --backtitle "Linux Game Manager" \ dialog --backtitle "Linux Game Manager" \
--yesno "This will remove the game from your game list, but will not remove any files. Do you want to continue?." -1 -1 --stdout || exit 0 --yesno "This will remove the game from your game list, but will not remove any files. Do you want to continue?" -1 -1 || exit 0
# Remove only the .sh symlink
rm -fv "${0%/*}/.launch/${gameName}.sh" | \
dialog --backtitle "Linux Game Manager" \
--progressbox "Removing game from list..." -1 -1
else else
# Found install path, can remove game files
dialog --backtitle "Linux Game Manager" \ dialog --backtitle "Linux Game Manager" \
--yesno "This will remove the directory \"${game%/*}\" and all of its contents. Do you want to continue?." -1 -1 --stdout || exit 0 --yesno "This will remove the directory \"${gameInstallPath}\" and all of its contents. Do you want to continue?" -1 -1 || exit 0
# Remove the game directory and symlink
{ rm -rfv "${gameInstallPath}"
rm -fv "${0%/*}/.launch/${gameName}.sh";
} | dialog --backtitle "Linux Game Manager" \
--progressbox "Removing game..." -1 -1
fi fi
export noRemove
{ [ "$noRemove" == "no" ] && rm -rfv "${game%/*}";
sed -i "/${game//\//\\/}/d" "$configFile"; } | dialog --backtitle "Linux Game Manager" --progressbox "Removing game..." -1 -1
exit 0 exit 0
} }
@ -485,20 +488,25 @@ game_update() {
# launch games that are installed # launch games that are installed
game_launcher() { game_launcher() {
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null) # Initialize array for menu construction
# Create the menu of installed games mapfile -t menuList < <(
declare -a menuList if [[ -d ".launch" ]]; then
for i in "${lines[@]}" ; do find -L "${0%/*}/.launch" -maxdepth 1 -type f -iname "*.sh" -print0 | sort -z | xargs -0 bash -c '
menuList+=("${i#*|}" "${i%|*}") for f; do
done [[ $(head -n1 "$f") =~ ^#$ ]] && continue
# Web based games and donation name="${f##*/}"
menuList+=("Aliens" "Aliens") echo "$f"
menuList+=("Cacophony" "Cacophony") echo "${name%.sh}"
menuList+=("Battle Weary" "Battle Weary") done' _
menuList+=("QuentinC Play Room" "QuentinC Play Room") fi
menuList+=("Trigaea" "Trigaea") )
menuList+=("Donate" "Donate") if [[ ${#menuList} -eq 0 ]]; then
game="$(dialog --backtitle "Linux Game Launcher" \ dialog --backtitle "Linux Game Manager" \
--msgbox "No games found." 5 20
exit 0
fi
# Create the menu of all games
selectedGame="$(dialog --backtitle "Linux Game Launcher" \
--clear \ --clear \
--no-tags \ --no-tags \
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)" --menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
@ -506,59 +514,32 @@ game_launcher() {
if [[ $menuCode -eq 1 ]]; then if [[ $menuCode -eq 1 ]]; then
exit 0 exit 0
fi fi
# Remove any trailing | from game variable. . "${selectedGame}"
game="${game%|}"
case "${game}" in
"Aliens")
open_url "https://files.jantrid.net/aliens/"
;;
"Battle Weary")
open_url "https://lonespelunker.itch.io/battle-weary"
;;
"Cacophony")
open_url "https://tianmaru.itch.io/cacophony"
;;
"QuentinC Play Room")
open_url "https://qcsalon.net/"
;;
"Trigaea")
open_url "https://ryngm.itch.io/trigaea"
;;
"Donate")
open_url "https://ko-fi.com/stormux"
;;
*".tin")
git -C "${game%/*}" pull | \
dialog --progressbox "Checking for updates, please wait..." -1 -1
if [[ -n "${COLORTERM}" ]]; then
terminal_emulator tt++ ${game##*/}
else
pushd "${game%/*}"
exec tt++ ${game##*/}
fi
;;
*"main.py")
pushd "${game%/*}"
git pull -q | dialog --progressbox "Checking for updates, please wait..." -1 -1
python3 ${game}
;;
*)
pushd "${game%/*}"
if file "${game##*/}" | grep -q "ELF.*x86-64"; then
if [[ "$(uname -m)" != "x86_64" ]]; then
exec FEXLoader -- ${game}
else
exec ${game}
fi
else
exec ${game}
fi
;;
esac
exit 0 exit 0
} }
migrate_launcher() {
# Check if config file exists
[[ -f "${configFile}" ]] || return
# Process each line of the config file
while IFS= read -r line; do
# Skip empty lines
[[ -z "${line}" ]] && continue
# Extract game name and path
gameName="${line%|*}"
# Create launcher script if it doesn't exist
if [[ ! -L "${0%/*}/.launch/${gameName}.sh" ]]; then
ln -srf "${0%/*}/.launch/${gameName}.game" "${0%/*}/.launch/${gameName}.sh"
fi
done < <(sed '/^$/d' "${configFile}")
# Move the old config file and notify user
mv "${configFile}" "${configFile}.bak"
dialog --backtitle "Linux Game manager" --msgbox \
"Games have been converted to the new launch system.\nThe old game launch information has been moved to ${configFile}.bak\nIf everything works like you expect, feel free to delete ${configFile}" -1 -1
}
# If display isn't set assume we are launching from console and an X environment is running using display :0 # If display isn't set assume we are launching from console and an X environment is running using display :0
# Warning, launching games from console is not recommended. # Warning, launching games from console is not recommended.
if [[ -z "$DISPLAY" ]]; then if [[ -z "$DISPLAY" ]]; then
@ -583,6 +564,7 @@ export spd_rate="${spd_rate:+ -r ${spd_rate}}"
export spd_voice="${spd_voice:+ -y ${spd_voice}}" export spd_voice="${spd_voice:+ -y ${spd_voice}}"
export spd_volume="${spd_volume:+ -i ${spd_volume}}" export spd_volume="${spd_volume:+ -i ${spd_volume}}"
mkdir -p "${installPath}" mkdir -p "${installPath}"
migrate_launcher
# Check for required packages # Check for required packages