Files
faugus-launcher/faugus-session
T
2025-05-26 17:01:40 -05:00

55 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
FAUGUS_LAUNCHER_DIR="$CONFIG_DIR/faugus-launcher"
SESSION_FILE="$FAUGUS_LAUNCHER_DIR/session.ini"
get_session_value() {
grep -i -m 1 "^[[:space:]]*${1}[[:space:]]*=" "$SESSION_FILE" | cut -d'=' -f2- | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/[[:space:]]*#.*$//'
}
SCREEN_WIDTH=$(get_session_value "SCREEN_WIDTH")
SCREEN_HEIGHT=$(get_session_value "SCREEN_HEIGHT")
INTERNAL_WIDTH=$(get_session_value "INTERNAL_WIDTH")
INTERNAL_HEIGHT=$(get_session_value "INTERNAL_HEIGHT")
REFRESH_RATE=$(get_session_value "REFRESH_RATE")
ADAPTIVE_SYNC=$(get_session_value "ADAPTIVE_SYNC")
HDR_SUPPORT=$(get_session_value "HDR_SUPPORT")
PREFER_OUTPUT=$(get_session_value "PREFER_OUTPUT")
GAMESCOPE_PARAMS=""
if [ -n "$SCREEN_WIDTH" ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS -W $SCREEN_WIDTH"
fi
if [ -n "$SCREEN_HEIGHT" ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS -H $SCREEN_HEIGHT"
fi
if [ -n "$INTERNAL_WIDTH" ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS -w $INTERNAL_WIDTH"
fi
if [ -n "$INTERNAL_HEIGHT" ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS -h $INTERNAL_HEIGHT"
fi
if [ -n "$REFRESH_RATE" ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS -r $REFRESH_RATE"
fi
if [ -n "$PREFER_OUTPUT" ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS --prefer-output $PREFER_OUTPUT"
fi
if [ "$ADAPTIVE_SYNC" == 1 ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS --adaptive-sync"
fi
if [ "$HDR_SUPPORT" == 1 ]; then
GAMESCOPE_PARAMS="$GAMESCOPE_PARAMS --hdr-enabled"
fi
gamescope $GAMESCOPE_PARAMS -- faugus-launcher --session