#!/sbin/openrc-run description="Create runtime directories (XDG_RUNTIME_DIR, X11 socket dir..)" NESTRI_UID="${NESTRI_UID:-1000}" NESTRI_USER="${NESTRI_USER:-nestri}" depend() { need localmount before dbus pipewire } start() { ebegin "Preparing runtime directories" if ! getent passwd "${NESTRI_USER}" >/dev/null 2>&1; then eerror "User ${NESTRI_USER} does not exist" return 1 fi # Per-user XDG runtime dir mkdir -p "/run/user/${NESTRI_UID}" chown "${NESTRI_USER}:${NESTRI_USER}" "/run/user/${NESTRI_UID}" chmod 0700 "/run/user/${NESTRI_UID}" # X11 socket dir (Xwayland + any X clients expect this) mkdir -p /tmp/.X11-unix chown root:root /tmp/.X11-unix chmod 1777 /tmp/.X11-unix # ICE socket dir - some toolkits look for it mkdir -p /tmp/.ICE-unix chown root:root /tmp/.ICE-unix chmod 1777 /tmp/.ICE-unix eend $? } stop() { ebegin "Removing runtime directories" rm -rf "/run/user/${NESTRI_UID}" # Don't rm /tmp/.X11-unix on stop - other things may be using it eend 0 }