#!/usr/bin/bash

set -eu

# Remove the performance overlay, it meddles with some tasks
unset LD_PRELOAD

function cleanup()
{
    # Flush fuse mounts beneath here
    umount --recursive $NEW_XDG_RUNTIME_DIR  || true
    rm -Rf $NEW_XDG_RUNTIME_DIR
}

# Create a new XDG_RUNTIME_DIR
NEW_XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR/nested_plasma
trap cleanup EXIT

cleanup
mkdir $NEW_XDG_RUNTIME_DIR --mode 0700

# Some things are (currently) shared, pulseaudio socket needs to be connected to the main session
mkdir $NEW_XDG_RUNTIME_DIR/pulse --mode 0700
ln -s $XDG_RUNTIME_DIR/pulse/native $NEW_XDG_RUNTIME_DIR/pulse/native
ln -s $XDG_RUNTIME_DIR/pipewire* $NEW_XDG_RUNTIME_DIR/.

## Shadow kwin_wayland_wrapper so that we can pass args to kwin wrapper
## whilst being launched by plasma-session
mkdir $NEW_XDG_RUNTIME_DIR/bin
cat <<EOF > $NEW_XDG_RUNTIME_DIR/bin/kwin_wayland_wrapper
#!/usr/bin/bash
if [ -z "${STEAMOS_NESTED_DESKTOP_WIDTH:-}" ] && [ -z "${STEAMOS_NESTED_DESKTOP_HEIGHT:-}" ]; then
    source /etc/default/steamos-nested-desktop
fi
/usr/bin/kwin_wayland_wrapper --width ${STEAMOS_NESTED_DESKTOP_WIDTH:-1280} --height ${STEAMOS_NESTED_DESKTOP_HEIGHT:-800} --no-lockscreen \$@
EOF
chmod a+x $NEW_XDG_RUNTIME_DIR/bin/kwin_wayland_wrapper
export PATH=$NEW_XDG_RUNTIME_DIR/bin:$PATH

export XDG_RUNTIME_DIR=$NEW_XDG_RUNTIME_DIR

dbus-run-session startplasma-wayland

