Docs Reference

Platform notifications

How LumaSync emits OS-level notifications for connection, stream, and update events — the one-time permission banner, and the open_log_dir command.

From v1.4, LumaSync emits OS-level notifications for runtime events so you don’t have to keep the main window open. Implementation is tauri-plugin-notification + tauri-plugin-process, wired end-to-end.

Permission banner

The first time LumaSync wants to notify (typically on first USB connect or first Hue pair), a permission banner appears in the app asking for OS notification rights. Click Allow once; the decision persists per OS rules:

  • macOS · Settings → Notifications → LumaSync
  • Windows · Settings → System → Notifications → LumaSync
  • Linux · your desktop environment’s notification settings

If you deny, the event flow degrades gracefully — in-app status pills still update, only the OS toast goes away.

Events that emit a toast

EventWhenSeverity
connection.okSerial port opens and handshake returns HEALTHYInfo
connection.lostSerial port closes mid-session or PING_TIMEOUT firesWarning
stream.startedHue Entertainment stream armed, first frame acknowledgedInfo
stream.stoppedMode switched to Off or the target went awayInfo
wled.connectedWLED /json/info returned a non-zero LED count and Test acknowledgedInfo
update.availableAuto-updater found a newer release at startupInfo
update.installedUpdate verified and applied; restart on next launchInfo
update.errorMinisign verification failed or the download errored outError
window.closed-to-tray (v1.5.2, one-shot)First time the user closes the main window — confirms LumaSync is still running in the trayInfo

All toasts are local to the OS — nothing goes to a cloud push service. No Apple Push, no FCM, no third-party relay.

macOS tray template image

From v1.5.2 the macOS tray icon ships as a template image (monochrome silhouette), so the OS renders it at the correct size and respects Dark / Light menu bar mode automatically. If you saw a coloured bitmap-shaped tray on older builds, this is the fix.

Frontend log bridge

From v1.5.2 every webview console.log / console.warn / console.error call is bridged into the platform log file alongside the Rust log::* entries. The same lines that appear in DevTools also appear in ~/Library/Logs/com.lumasync.app/ (or your platform’s equivalent), so debugging a runtime issue no longer requires a DevTools window to be open. Each bridged record is prefixed [webview] to keep it distinguishable from the Rust side.

The open_log_dir command

LumaSync exposes an open_log_dir Tauri command that reveals the log directory in Finder / Explorer / your file manager. Triggered from:

  • Settings → About → Open log directory
  • Update modal error state → Show logs
  • Global ErrorBoundary fallback card → Show logs

Log location per OS:

OSPath
macOS~/Library/Logs/com.lumasync.app/
Windows%LOCALAPPDATA%\com.lumasync.app\logs\
Linux~/.local/share/com.lumasync.app/logs/

See Telemetry → Logs for what the log files actually contain.

Disabling notifications

There is no in-app toggle — notifications are on-by-default once OS permission is granted. To silence them, revoke at the OS level using the paths under Permission banner above. LumaSync respects the OS-level setting without needing a restart.

Type to search. Up and down arrows to navigate, Enter to open.