Bound IPC transport deadlines while preserving portal leases, supervise desktop helper and agent recovery, and reserve final floating window geometry during placement. Stabilize CLI output and isolated tests, expand workspace CI, resolve formatting and lint failures, and bundle the MIT license with installer compatibility.
51 lines
1.5 KiB
Bash
51 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
umask 077
|
|
|
|
backend=drm
|
|
if [[ ${1:-} == --nested ]]; then
|
|
backend=nested
|
|
shift
|
|
fi
|
|
if (($#)); then
|
|
echo 'usage: ferese-session [--nested]' >&2
|
|
exit 2
|
|
fi
|
|
: "${XDG_RUNTIME_DIR:?A login session with XDG_RUNTIME_DIR is required}"
|
|
|
|
# Resolve once, so upgrading current cannot mix compositor and shell versions.
|
|
release_dir=$(dirname -- "$(readlink -f -- "$0")")
|
|
state_dir=${XDG_STATE_HOME:-$HOME/.local/state}/ferese
|
|
mkdir -p -- "$state_dir"
|
|
log_file=$state_dir/session-$(date -u +%Y%m%dT%H%M%SZ)-$$.log
|
|
echo "Ferese session log: $log_file" >&2
|
|
exec >>"$log_file" 2>&1
|
|
|
|
export XDG_CURRENT_DESKTOP=Ferese
|
|
export XDG_SESSION_DESKTOP=ferese
|
|
export XDG_SESSION_TYPE=wayland
|
|
export MOZ_ENABLE_WAYLAND=1
|
|
export QT_QPA_PLATFORM=wayland
|
|
# Used by the area screenshot shortcut; explicitly set 0 to disable capture.
|
|
export FERESE_ENABLE_SCREENCOPY=${FERESE_ENABLE_SCREENCOPY:-1}
|
|
export PATH="$release_dir:$PATH"
|
|
unset WAYLAND_SOCKET
|
|
if [[ $backend == drm ]]; then
|
|
unset DISPLAY WAYLAND_DISPLAY
|
|
export FERESE_SESSION_IMPORT_ENV=1
|
|
else
|
|
export FERESE_SESSION_IMPORT_ENV=0
|
|
fi
|
|
|
|
if [[ $backend == drm ]] && command -v systemctl >/dev/null; then
|
|
systemctl --user stop swaync.service 2>/dev/null || true
|
|
fi
|
|
|
|
command=("$release_dir/ferese" --backend "$backend" --supervise-client --grant-effects
|
|
--grant-shell-control -- "$release_dir/ferese-session-shell")
|
|
if [[ -z ${DBUS_SESSION_BUS_ADDRESS:-} ]]; then
|
|
exec dbus-run-session -- "${command[@]}"
|
|
else
|
|
exec "${command[@]}"
|
|
fi
|