Skip to content

Instantly share code, notes, and snippets.

@maddymeows
Last active May 24, 2025 09:51
Show Gist options
  • Save maddymeows/6af1a5d5a870c13b7b159c4463edee70 to your computer and use it in GitHub Desktop.
Save maddymeows/6af1a5d5a870c13b7b159c4463edee70 to your computer and use it in GitHub Desktop.
#!/bin/sh -e
XDG_DATA_HOME="${XDG_DATA_HOME:-"$HOME/.local/share"}"
branch="${1:-stable}"
case "$branch" in
stable)
name=Discord
;;
ptb)
name=DiscordPTB
;;
canary)
name=DiscordCanary
;;
development)
name=DiscordDevelopment
;;
*)
printf 'Bad branch name: %s\n' "$branch" >&2
exit 1
;;
esac
dashed_name='discord'
if test "$branch" != stable
then
dashed_name="discord-$branch"
fi
if test -d "$XDG_DATA_HOME/$name"
then
rm -rf "$XDG_DATA_HOME/$name-old"
mv "$XDG_DATA_HOME/$name" "$XDG_DATA_HOME/$name-old"
fi
archive="$(mktemp)"
curl -fSLo "$archive" -- "https://discord.com/api/download/$branch?platform=linux&format=tar.gz"
tar -xzf "$archive" -C "$XDG_DATA_HOME"
mkdir -p "$XDG_DATA_HOME/applications" "$XDG_DATA_HOME/icons/hicolor/256x256/apps"
touch "$XDG_DATA_HOME/icons/hicolor"
cp "$XDG_DATA_HOME/$name/discord.png" "$XDG_DATA_HOME/icons/hicolor/256x256/apps/com.discord.$name.png"
cp "$XDG_DATA_HOME/$name/$dashed_name.desktop" "$XDG_DATA_HOME/applications/com.discord.$name.desktop"
sed -i~ "s@^StartupWMClass=.*@StartupWMClass=$dashed_name@" "$XDG_DATA_HOME/applications/com.discord.$name.desktop"
sed -i~ "s@^Exec=.*@Exec=$XDG_DATA_HOME/$name/$name@" "$XDG_DATA_HOME/applications/com.discord.$name.desktop"
sed -i~ "s@^Icon=.*@Icon=com.discord.$name@" "$XDG_DATA_HOME/applications/com.discord.$name.desktop"
rm "$XDG_DATA_HOME/applications/com.discord.$name.desktop~"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment