From 451fa42fbd054d804016e765486740c1139b5ddb Mon Sep 17 00:00:00 2001 From: riccardom Date: Wed, 29 Jul 2026 14:21:44 +0200 Subject: [PATCH] Start the UI only on behalf of a valid logged user or avoid running it Wails already does this: the GUI is started by a per-user LaunchAgent. So starting the GUI assumes there is a user that is logging in to refer to. We are aligning the auto-update to this model here. IF there is a user, restart the GUI otherwise wait for a login. WHY it didn't happen before 0.75: cause the Fyne GUI never wrote any ui_preferences.json file or any other in users $HOME folder. So it's a problem related to the new GUI and has nothing to do with MDM. --- release_files/darwin_pkg/postinstall | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/release_files/darwin_pkg/postinstall b/release_files/darwin_pkg/postinstall index 33fa4bfee..431ff48d2 100755 --- a/release_files/darwin_pkg/postinstall +++ b/release_files/darwin_pkg/postinstall @@ -30,7 +30,21 @@ mkdir -p /usr/local/bin/ $AGENT service install || true $AGENT service start || true - open $APP + # Launch the GUI as the logged-in console user, NOT as the installer's + # (root) context. When there is no active GUI session + # (unattended MDM install, login window), there is nobody to launch as, skip it; + + console_user=$(stat -f%Su /dev/console 2>/dev/null) + case "$console_user" in + ""|root|loginwindow|_mbsetupuser) + echo "No active GUI user session (console user: '${console_user:-none}'); skipping UI launch." + ;; + *) + uid=$(id -u "$console_user") + echo "Launching NetBird UI as console user $console_user (uid $uid)." + launchctl asuser "$uid" open "$APP" || true + ;; + esac echo "Finished Netbird installation successfully" exit 0 # all good