diff --git a/distribution/linux/Ryujinx.sh b/distribution/linux/Ryujinx.sh index 5793f8359..460b9a068 100755 --- a/distribution/linux/Ryujinx.sh +++ b/distribution/linux/Ryujinx.sh @@ -1,23 +1,11 @@ -#!/bin/sh +#!/usr/bin/env sh SCRIPT_DIR=$(dirname "$(realpath "$0")") -if [ -f "$SCRIPT_DIR/Ryujinx.Headless.SDL3" ]; then - RYUJINX_BIN="Ryujinx.Headless.SDL3" -fi - -if [ -f "$SCRIPT_DIR/Ryujinx" ]; then - RYUJINX_BIN="Ryujinx" -fi - -if [ -z "$RYUJINX_BIN" ]; then - exit 1 -fi - COMMAND="env LANG=C.UTF-8 DOTNET_EnableAlternateStackCheck=1" if command -v gamemoderun > /dev/null 2>&1; then COMMAND="$COMMAND gamemoderun" fi -exec $COMMAND "$SCRIPT_DIR/$RYUJINX_BIN" "$@" +exec $COMMAND "$SCRIPT_DIR/Ryujinx" "$@" diff --git a/distribution/linux/Ryujinx.desktop b/distribution/linux/app.ryujinx.Ryujinx.desktop similarity index 76% rename from distribution/linux/Ryujinx.desktop rename to distribution/linux/app.ryujinx.Ryujinx.desktop index 44f05bf3f..87cf349f1 100644 --- a/distribution/linux/Ryujinx.desktop +++ b/distribution/linux/app.ryujinx.Ryujinx.desktop @@ -1,14 +1,12 @@ [Desktop Entry] -Version=1.0 +Version=1.5 Name=Ryujinx Type=Application -Icon=Ryujinx +Icon=app.ryujinx.Ryujinx Exec=Ryujinx.sh %f -Comment=A Nintendo Switch Emulator GenericName=Nintendo Switch Emulator Terminal=false Categories=Game;Emulator; MimeType=application/x-nx-nca;application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci; -Keywords=Switch;Nintendo;Emulator; StartupWMClass=Ryujinx PrefersNonDefaultGPU=true diff --git a/distribution/linux/appimage/AppRun b/distribution/linux/appimage/AppRun deleted file mode 100755 index adbb70a0a..000000000 --- a/distribution/linux/appimage/AppRun +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -CURRENTDIR="$(readlink -f "$(dirname "$0")")" -exec "$CURRENTDIR"/usr/bin/Ryujinx.sh "$@" diff --git a/distribution/linux/appimage/app.ryujinx.Ryujinx.appdata.xml b/distribution/linux/appimage/app.ryujinx.Ryujinx.appdata.xml new file mode 100644 index 000000000..3cbbacc1f --- /dev/null +++ b/distribution/linux/appimage/app.ryujinx.Ryujinx.appdata.xml @@ -0,0 +1,25 @@ + + + app.ryujinx.Ryujinx + MIT + MIT + Ryujinx + Nintendo Switch 1 emulator written in C# + + Ryujinx is an open-source Nintendo Switch emulator, originally created by gdkchan, written in C#. + + app.ryujinx.Ryujinx.desktop + https://ryujinx.app/ + + Ryubing + + + + https://git.ryujinx.app/projects/Ryubing/raw/branch/master/docs/shell.png + + + + app.ryujinx.Ryujinx.desktop + + + diff --git a/distribution/linux/appimage/build-appimage.sh b/distribution/linux/appimage/build-appimage.sh index b6eb394d8..23925703c 100755 --- a/distribution/linux/appimage/build-appimage.sh +++ b/distribution/linux/appimage/build-appimage.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env sh set -eu ROOTDIR="$(readlink -f "$(dirname "$0")")"/../../../ @@ -7,20 +7,33 @@ cd "$ROOTDIR" BUILDDIR=${BUILDDIR:-publish} OUTDIR=${OUTDIR:-publish_appimage} +# AppStream + rm -rf AppDir -mkdir -p AppDir/usr/bin +mkdir -p AppDir/usr/lib AppDir/usr/bin +mkdir -p AppDir/usr/share/metainfo AppDir/usr/share/applications +mkdir -p AppDir/usr/share/icons/hicolor/256x256/apps/ -cp distribution/linux/Ryujinx.desktop AppDir/Ryujinx.desktop -cp distribution/linux/appimage/AppRun AppDir/AppRun -cp distribution/misc/Logo.svg AppDir/Ryujinx.svg +cp -r "$BUILDDIR"/* AppDir/usr/lib/ +cp distribution/linux/appimage/app.ryujinx.Ryujinx.appdata.xml AppDir/usr/share/metainfo/app.ryujinx.Ryujinx.appdata.xml +cp distribution/linux/app.ryujinx.Ryujinx.desktop AppDir/usr/share/applications/app.ryujinx.Ryujinx.desktop +cp distribution/misc/Logo.png AppDir/usr/share/icons/hicolor/256x256/apps/app.ryujinx.Ryujinx.png +ln -s ../lib/Ryujinx AppDir/usr/bin/Ryujinx -cp -r "$BUILDDIR"/* AppDir/usr/bin/ +# AppImage Root + +ln -s ./usr/share/applications/app.ryujinx.Ryujinx.desktop AppDir/app.ryujinx.Ryujinx.desktop +ln -s ./usr/share/icons/hicolor/256x256/apps/app.ryujinx.Ryujinx.png AppDir/.DirIcon +ln -s ./usr/share/icons/hicolor/256x256/apps/app.ryujinx.Ryujinx.png AppDir/app.ryujinx.Ryujinx.png +ln -s ./usr/lib/Ryujinx.sh AppDir/AppRun # Ensure necessary bins are set as executable chmod +x AppDir/AppRun AppDir/usr/bin/Ryujinx* mkdir -p "$OUTDIR" +# The "-n" flag removes the appstream checks during build, in case the main website is down. +# Run "appstreamcli validate --explain AppDir/usr/share/metainfo/app.ryujinx.Ryujinx.appdata.xml" to check manually appimagetool --appimage-extract-and-run -n --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 21 \ - AppDir "$OUTDIR"/Ryujinx.AppImage \ No newline at end of file + AppDir "$OUTDIR"/Ryujinx.AppImage diff --git a/distribution/misc/Logo.png b/distribution/misc/Logo.png new file mode 100644 index 000000000..20d41fae9 Binary files /dev/null and b/distribution/misc/Logo.png differ diff --git a/distribution/misc/Logo.svg b/distribution/misc/Logo.svg deleted file mode 100644 index 00bba42f0..000000000 --- a/distribution/misc/Logo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Ryujinx is an open-source Nintendo Switch emulator, originally created by gdkchan, written in C#.