advance shell integration and session support
This commit is contained in:
1 parent
0420242350
commit
e85fc1e032
27 files changed
+1165
-201
No files matched your search
@@ -0,0 +1,41 @@
|
||||
#!/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
|
||||
export PATH="$release_dir:$PATH"
|
||||
unset WAYLAND_SOCKET
|
||||
if [[ $backend == drm ]]; then
|
||||
unset DISPLAY WAYLAND_DISPLAY
|
||||
fi
|
||||
|
||||
command=("$release_dir/ferese" --backend "$backend" --grant-effects
|
||||
--grant-shell-control -- "$release_dir/ferese-shell")
|
||||
if [[ -z ${DBUS_SESSION_BUS_ADDRESS:-} ]]; then
|
||||
exec dbus-run-session -- "${command[@]}"
|
||||
else
|
||||
exec "${command[@]}"
|
||||
fi
|
||||
Reference in new issue
Block a user