Skip to content

Instantly share code, notes, and snippets.

@sqwxl
Last active March 20, 2025 13:13
Show Gist options
  • Save sqwxl/6a695e1a59e54eddd7740cc908b593aa to your computer and use it in GitHub Desktop.
Save sqwxl/6a695e1a59e54eddd7740cc908b593aa to your computer and use it in GitHub Desktop.
Setup Playdate SDK (v2.6.2) on Fedora atomic OS (ostree, silverblue, sericea, kinoite)
#!/bin/bash
set -e
case $(uname -m) in
x86_64)
#supported
;;
*)
echo -e "System not supported.\nAn x86_64 OS is required. Please request support for your platform."
exit 1
;;
esac
if [ $(id -u) -ne 0 ]; then
echo "Please run this script with sudo."
exit 1
fi
YELLOW='\033[33;1m'
BLUE='\033[0;34m'
BBLUE="\033[1;34m"
NC='\033[0m' #No Color
SDKRoot=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
#delete old desktop file in /var/usrlocal/local/share/applications/
if test -f "/var/usrlocal/share/applications/date.play.simulator.desktop"; then
rm -f /var/usrlocal/share/applications/date.play.simulator.desktop
fi
echo "Creating desktop files..."
mkdir -p /var/usrlocal/share/icons/hicolor/scalable/apps/ && cp "$SDKRoot/Resources/date.play.simulator.svg" /var/usrlocal/share/icons/hicolor/scalable/apps/
SDKEscaped=$(printf %q "$SDKRoot")
cat <<-EOF >/tmp/date.play.simulator.desktop
[Desktop Entry]
Name=Playdate Simulator
Exec=$SDKEscaped/bin/PlaydateSimulator %u
Icon=/var/usrlocal/share/icons/hicolor/scalable/apps/date.play.simulator.svg
Terminal=false
Type=Application
MimeType=application/x-playdate-game;x-scheme-handler/playdate-simulator
StartupWMClass=PlaydateSimulator
Categories=Development;
StartupNotify=true
EOF
desktop-file-install --dir /var/usrlocal/share/applications /tmp/date.play.simulator.desktop --delete-original
echo "Creating mime info..."
#install mime info in /var/usrlocal/share/mime/packages
xdg-mime install --mode user "$SDKRoot/Resources/playdate-types.xml"
#install icons into /var/usrlocal/share/icons/hicolor/
IconRoot=$SDKRoot/Resources/file-icon
xdg-icon-resource install --mode user --context mimetypes --size 16 "$IconRoot/data-16.png" application-x-playdate
xdg-icon-resource install --mode user --context mimetypes --size 32 "$IconRoot/data-32.png" application-x-playdate
xdg-icon-resource install --mode user --context mimetypes --size 48 "$IconRoot/data-48.png" application-x-playdate
xdg-icon-resource install --mode user --context mimetypes --size 512 "$IconRoot/data-512.png" application-x-playdate
update-desktop-database
echo "Setting udev rule..."
cp "$SDKRoot/Resources/50-playdate.rules" /etc/udev/rules.d/
udevadm control --reload-rules
udevadm trigger
mkdir --p /var/usrlocal/share/mime/packages/ && cp "$SDKRoot/Resources/playdate-types.xml" /var/usrlocal/share/mime/packages/
update-mime-database /var/usrlocal/share/mime
echo -e "\n${YELLOW}Tip:${BLUE}\nMake sure ${BBLUE}\`PLAYDATE_SDK_PATH\`${BLUE} env value is set to the SDK path for development."
echo -e "See the \e]8;;https://sdk.play.date\\aInside Playdate documentation\e]8;;\a for more details.${NC}"
echo -e "\nDone."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment