mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-04-21 05:13:14 +02:00
52 lines
No EOL
1.7 KiB
Bash
Executable file
52 lines
No EOL
1.7 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
SCRIPT_DIR=$(dirname "$(realpath "$0")")
|
|
|
|
if [ -f "$SCRIPT_DIR/Ryujinx.Headless.SDL2" ]; then
|
|
RYUJINX_BIN="Ryujinx.Headless.SDL2"
|
|
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
|
|
|
|
# Check if user already has a manual Avalonia scaling override or session type is x11
|
|
if [[ -n "${AVALONIA_GLOBAL_SCALE_FACTOR-}" || "$(echo "$XDG_SESSION_TYPE")" == "x11" ]]; then
|
|
echo "Scaling: Performed by environment, skipping." >&2
|
|
else
|
|
# Attempt to get desktop scaling from environment (GNOME)
|
|
if [[ "$(echo "$XDG_CURRENT_DESKTOP")" == "GNOME" ]] && command -v gsettings >/dev/null; then
|
|
echo -n 'Scaling: GNOME desktop scaling query...' >&2
|
|
SCALING="$(gsettings get org.gnome.desktop.interface scaling-factor)"
|
|
SCALING="${SCALING##* }"
|
|
echo "found! Factor: ${SCALING}" >&2
|
|
|
|
# Attempt to get desktop scaling from X Query (Others)
|
|
elif command -v xrdb >/dev/null && command -v bc >/dev/null; then
|
|
echo -n 'Scaling: X FreeType DPI scaling query...' >&2
|
|
dpi="$(xrdb -get Xft.dpi)"
|
|
if [[ -n "${dpi}" ]]; then
|
|
SCALING=$(echo "scale=2; ${dpi}/96" | bc)
|
|
echo "found! Factor: ${SCALING}" >&2
|
|
fi
|
|
fi
|
|
|
|
if [[ -z "${SCALING-}" || "${SCALING-}" == "0" ]]; then
|
|
echo 'Scaling: Unset scaling value, using default scaling.' >&2
|
|
SCALING="1"
|
|
fi
|
|
|
|
COMMAND="$COMMAND AVALONIA_GLOBAL_SCALE_FACTOR=$SCALING"
|
|
fi
|
|
|
|
exec $COMMAND "$SCRIPT_DIR/$RYUJINX_BIN" "$@" |