| 1234567891011121314151617181920212223242526272829303132333435 |
- #!/bin/sh
- # mjdev desktop wayland session
- # started by the display manager via /usr/share/wayland-sessions/mjdev.desktop
- export XDG_CURRENT_DESKTOP=mjdev
- export XDG_SESSION_TYPE=wayland
- export MOZ_ENABLE_WAYLAND=1
- export QT_QPA_PLATFORM="wayland;xcb"
- export _JAVA_AWT_WM_NONREPARENTING=1
- # desktop shell binary - deb/appimage install location, gradle dev fallback
- SHELL_CMD="/opt/mjdev-desktop/bin/mjdev-desktop"
- if [ ! -x "$SHELL_CMD" ]; then
- SHELL_CMD="$HOME/.local/bin/mjdev-desktop"
- fi
- # compositor binary - /usr/bin (deb) or /usr/local/bin (manual install)
- MJDEVC="$(command -v mjdevc 2>/dev/null)"
- if [ -z "$MJDEVC" ]; then
- MJDEVC="/usr/bin/mjdevc"
- fi
- # clean up the activation environment the compositor exported into the
- # persistent systemd --user manager. with KillUserProcesses=no (the distro
- # default) that manager survives logout, so leaving a stale WAYLAND_DISPLAY /
- # DISPLAY behind poisons the next login - of any session, not just ours.
- # run on every exit path (normal exit, crash, signal) - no exec, so we get here.
- cleanup() {
- systemctl --user unset-environment \
- WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE \
- 2>/dev/null || true
- }
- trap cleanup EXIT HUP INT TERM
- "$MJDEVC" --session --shell-cmd "$SHELL_CMD"
|