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)
95 lines
2.2 KiB
Bash
Executable File
95 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
die() { echo >&2 "!! $*"; exit 1; }
|
|
|
|
# FIXME Purge old files and use this one
|
|
|
|
# File this script will modify, in addition to (potentially) the per-user sentinel file
|
|
CONF_FILE="/etc/sddm.conf.d/zz-steamos-autologin.conf"
|
|
|
|
SENTINEL_FILE="steamos-session-select"
|
|
|
|
# For sanity this shipped file must be present, to ensure we're still on a normal-looking steamos setup.
|
|
CHECK_FILE="/etc/sddm.conf.d/steamos.conf"
|
|
|
|
session="${1:-gamescope}"
|
|
session_type="x11"
|
|
|
|
session_launcher=""
|
|
create_sentinel=""
|
|
|
|
if [[ "$2" == "--sentinel-created" ]]; then
|
|
SENTINEL_CREATED=1
|
|
if [[ "$3" == "x11" ]]; then
|
|
session_type="x11"
|
|
elif [[ "$3" == "wayland" ]]; then
|
|
session_type="wayland"
|
|
fi
|
|
fi
|
|
|
|
# Update config sentinel
|
|
if [[ -z $SENTINEL_CREATED ]]; then
|
|
[[ $EUID == 0 ]] && die "Running $0 as root is not allowed"
|
|
|
|
[[ -n ${HOME+x} ]] || die "No \$HOME variable"
|
|
config_dir="${XDG_CONF_DIR:-"$HOME/.config"}"
|
|
session_type=$(
|
|
cd "$HOME"
|
|
mkdir -p "$config_dir"
|
|
cd "$config_dir"
|
|
if [[ -f "steamos-session-type" ]]; then
|
|
cp steamos-session-type "$SENTINEL_FILE"
|
|
else
|
|
echo "x11" > "$SENTINEL_FILE"
|
|
fi
|
|
cat "$SENTINEL_FILE"
|
|
)
|
|
|
|
# If we were executed as a session user and then re-execute as root below, we don't want to set root's sentinel too
|
|
export SENTINEL_CREATED=1
|
|
fi
|
|
|
|
case "$session" in
|
|
plasma-wayland-persistent)
|
|
session_launcher="plasmawayland.desktop"
|
|
;;
|
|
plasma-x11-persistent)
|
|
session_launcher="plasma.desktop"
|
|
;;
|
|
plasma)
|
|
if [[ "$session_type" == "x11" ]]; then
|
|
session_launcher="plasma-steamos-oneshot.desktop"
|
|
else
|
|
session_launcher="plasma-steamos-wayland-oneshot.desktop"
|
|
fi
|
|
create_sentinel=1
|
|
;;
|
|
gamescope)
|
|
session_launcher="gamescope-wayland.desktop"
|
|
;;
|
|
*)
|
|
echo >&2 "!! Unrecognized session '$session'"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo "Updated user selected session to $session_launcher"
|
|
|
|
# Become root
|
|
if [[ $EUID != 0 ]]; then
|
|
exec pkexec "$(realpath $0)" "$session" --sentinel-created "$session_type"
|
|
exit 1
|
|
fi
|
|
|
|
{
|
|
echo "[Autologin]"
|
|
echo "Session=$session_launcher"
|
|
} > "$CONF_FILE"
|
|
|
|
echo "Updated system autologin session to $session_launcher"
|
|
systemctl reset-failed sddm
|
|
systemctl restart sddm
|
|
echo "Restarted SDDM"
|