39 lines
918 B
Bash
Executable file
39 lines
918 B
Bash
Executable file
#!/bin/bash
|
|
|
|
OUT="/run/BastionGuard.env"
|
|
rm -f "$OUT"
|
|
|
|
# Trova la sessione grafica attiva
|
|
SESSION=$(loginctl list-sessions --no-legend | awk '$3 ~ /tty|wayland|x11/ {print $1; exit}')
|
|
|
|
if [ -z "$SESSION" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
USER=$(loginctl show-session "$SESSION" -p Name --value)
|
|
UID=$(id -u "$USER")
|
|
RUNTIME="/run/user/$UID"
|
|
|
|
# DISPLAY
|
|
DISPLAY=$(loginctl show-session "$SESSION" -p Display --value)
|
|
|
|
# Se non c'è DISPLAY, prova Wayland
|
|
if [ -z "$DISPLAY" ] && [ -e "$RUNTIME/wayland-0" ]; then
|
|
DISPLAY=""
|
|
WAYLAND_DISPLAY="wayland-0"
|
|
fi
|
|
|
|
# DBus session bus
|
|
BUS="unix:path=$RUNTIME/bus"
|
|
|
|
# Scrivi l'ambiente
|
|
{
|
|
echo "BastionGuard_USER=$USER"
|
|
echo "BastionGuard_UID=$UID"
|
|
echo "XDG_RUNTIME_DIR=$RUNTIME"
|
|
echo "DBUS_SESSION_BUS_ADDRESS=$BUS"
|
|
[ -n "$DISPLAY" ] && echo "DISPLAY=$DISPLAY"
|
|
[ -n "$WAYLAND_DISPLAY" ] && echo "WAYLAND_DISPLAY=$WAYLAND_DISPLAY"
|
|
} > "$OUT"
|
|
|
|
chmod 644 "$OUT"
|