#!/usr/bin/env sh set -eu if [ -z "${DISPLAY:-}" ]; then printf 'Error: DISPLAY is not set; cannot launch gufw under Xwayland.\n' >&2 exit 1 fi if ! command -v xhost >/dev/null 2>&1; then printf 'Error: xhost is required to launch gufw from a Wayland session.\n' >&2 exit 1 fi cleanup() { xhost -si:localuser:root >/dev/null 2>&1 || true } trap cleanup EXIT INT TERM HUP xhost si:localuser:root >/dev/null exec gufw "$@"