#!/bin/bash
# Script to elevate GUI programs while preserving the user's environment.
# Copy-Paste of https://github.com/shundhammer/myrlyn/blob/master/src/attic/myrlyn-run0
# Credits:  Stefan Hundhammer <Stefan.Hundhammer@gmx.de>
# License: GPL V2
# Thank you huha!

#XDG_RUNTIME_DIR=/run/user/$UID

# Environment variables to keep for the 'run0' call,
ENV_KEEP="DISPLAY WAYLAND_DISPLAY XAUTHORITY XDG_RUNTIME_DIR XDG_SEAT \
QT_QPA_PLATFORMTHEME QT_ENABLE_HIGHDPI_SCALING QT_SCALE_FACTOR GTK_THEME \
LANG LC_MESSAGES LC_COLLATE LC_NUMERIC LC_TIME LC_ALL LANGUAGE XDG_CURRENT_DESKTOP"

# Build the environment args for run0 from the above variables:
# --setenv=DISPLAY --setenv=LANG ...

ENV_ARGS=""

for VAR in $ENV_KEEP; do
    # Uncomment for debugging
    # echo "$VAR=${!VAR}"
    ENV_ARGS="$ENV_ARGS --setenv=$VAR"
done

# Prevent changing ownership to root of the user's home files
ENV_ARGS="$ENV_ARGS --setenv=HOME=`realpath ~root`"

# Uncomment for debugging
# echo $ENV_ARGS | tr ' ' '\n'

run0 --background= $ENV_ARGS "$@"
