mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-01-09 12:45:05 +00:00
eeb93f9700
These changes effectively make the structure similar to bluefin. bazzite now serves as a base for desktop configurations and now bazzite-deck has been introduced to add changes specific to the Steam Deck and Steam Deck-alike configurations. Also: - Introduce images built from main for non-Nvidia systems - Consolidate structure (remove duplicates, merge Containerfiles)
54 lines
1.6 KiB
Bash
Executable File
54 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
die() { echo >&2 "!! $*"; exit 1; }
|
|
|
|
SENTINEL_FILE="steamos-session-select"
|
|
SENTINEL_VALUE="x11"
|
|
|
|
# If we proceed, execute this
|
|
CHAINED_SESSION="/usr/bin/startplasma-x11"
|
|
# If we decide the sentinel is consumed, execute this command instead and fail
|
|
RESTORE_SESSION=(steamos-session-select) # No arguments restores the session
|
|
|
|
# Find or check config sentinel
|
|
function check_sentinel()
|
|
{
|
|
if [[ -z ${HOME+x} ]]; then
|
|
echo >&2 "$0: No \$HOME variable!"
|
|
# Rather than break we'll just launch plasma and hope for the best?
|
|
return 0
|
|
fi
|
|
|
|
local config_dir="${XDG_CONF_DIR:-"$HOME/.config"}"
|
|
(
|
|
cd "$HOME"
|
|
cd "$config_dir"
|
|
sentinel_value="$(cat "$SENTINEL_FILE")"
|
|
if [[ "$sentinel_value" == "wayland" ]]; then
|
|
echo "/usr/bin/startplasma-wayland"
|
|
elif [[ "$sentinel_value" == "x11" ]]; then
|
|
echo "/usr/bin/startplasma-x11"
|
|
else
|
|
return 1
|
|
fi
|
|
rm "$SENTINEL_FILE"
|
|
|
|
) || return 1 # If we couldn't read the value or it wasn't what we wanted
|
|
|
|
# Found value and removed it, we're good to continue
|
|
return 0
|
|
}
|
|
|
|
if CONFIGURED_CHAINED_SESSION=$(check_sentinel); then
|
|
# We found and consumed the oneshot sentinel, proceed to launch plasma
|
|
echo >&2 "$0: Found and removed sentinel file for one-shot plasma, proceeding to launch"
|
|
exec "$CONFIGURED_CHAINED_SESSION"
|
|
else
|
|
echo >&2 "$0: Sentinel value not found, executing session-select to restore session"
|
|
"${RESTORE_SESSION[@]}" || echo >&2 "$0: !! Failed to restore previous session, executing chained session"
|
|
# Session restore should've stopped us, if it is broken at least let plasma continue to open
|
|
exec "$CHAINED_SESSION"
|
|
fi
|