Skip to content

macOS 26: Lumen runs but no menu-bar/topbar icon appears, leaving no UI entry point #5

Description

@alexkubica

Summary

After installing lumen-app on macOS, Lumen starts and its daemon is running, but no menu-bar/topbar icon appears. Because both Tauri windows are hidden at startup, this leaves no visible UI entry point: I cannot open the tray popover, main window, or the in-app fault reporter.

A local screenshot (Downloads/lumen-process.png) shows macOS listing Lumen as running with 2 processes and about 150 MB memory, but no Lumen UI/topbar item is visible.

Environment

  • macOS: 26.5.2 (25F84)
  • Architecture: arm64
  • Install method: Homebrew cask
  • Installed package: lumen-app 1.5.0
  • App path: /Applications/Lumen.app
  • Release: v1.5.0, asset Lumen_1.5.0_aarch64.dmg, published 2026-07-30T18:41:01Z
  • Bundle identifier: io.speedata.lumen

What I did

  1. Installed with Homebrew cask (lumen-app).
  2. The app was launched by the cask postflight / login item.
  3. Checked the macOS topbar/menu bar for the Lumen icon.
  4. Searched for the process and app windows.

Expected

A Lumen menu-bar/topbar icon appears. Left-click should open the compact panel and right-click should expose Open Lumen / Quit Lumen, as documented.

Actual

  • No Lumen icon appears in the macOS topbar/menu bar.
  • No main window or panel is visible.
  • macOS process search shows Lumen running.
  • System Events reports the Lumen process is visible but has zero windows.
  • The bundled daemon is running.
  • lumen is not on PATH, so the terminal fault-report path in the docs is not available unless the CLI is installed separately or through the hidden UI.

Observed commands:

$ brew list --versions | rg -i '^lumen|hackpoint|lumen'
lumen-app 1.5.0

$ command -v lumen; lumen --version
zsh:1: command not found: lumen

$ /Applications/Lumen.app/Contents/MacOS/lumen-cli --version
lumen 1.5.0

$ ps aux | rg -i '[l]umen'
... /Applications/Lumen.app/Contents/MacOS/Lumen
... /Applications/Lumen.app/Contents/MacOS/lumen-daemon

$ osascript -e 'tell application "System Events" to tell process "Lumen" to return {frontmost, visible, count of windows, name of windows}'
false, true, 0,

Source-code notes / possible causes

I looked through main to understand the startup path.

  • lumenator/src-tauri/tauri.conf.json defines both main and panel with "visible": false. If tray creation succeeds but the tray item is invisible/not rendered, or if tray creation fails in release without surfacing diagnostics, there is no fallback window.
  • lumenator/src-tauri/src/lib.rs sets tauri::ActivationPolicy::Accessory, then builds the tray via TrayIconBuilder::with_id("lumen-tray"), using a custom transparent 44x44 RGBA icon and .icon_as_template(false).
  • The installed bundle has LSRequiresCarbon = 1, no LSUIElement, and no LSBackgroundOnly:
$ plutil -p /Applications/Lumen.app/Contents/Info.plist
...
"LSRequiresCarbon" => true
...
  • The app is ad-hoc signed and spctl reports the same signature/resource issue documented in the repo's pre-release notes:
$ codesign -dv --verbose=4 /Applications/Lumen.app
Signature=adhoc
Info.plist=not bound
Sealed Resources=none

$ spctl -a -vv /Applications/Lumen.app
/Applications/Lumen.app: code has no resources but signature indicates they must be present
  • macOS unified logs do not show an obvious Lumen panic, and WebKit appears to load resources, but there are repeated startup-time errors around AppIntents/linkd and WebContent sandboxed access to pasteboard/launchservices. I am not sure whether these are causal or normal WebKit noise on macOS 26.

Relevant log excerpts:

Error registering app with intents framework: Error Domain=NSCocoaErrorDomain Code=4097
CONNECT: Attempt to connect to launchservicesd prohibited because kLSServerConnectionStatusProcessIsDaemonMask is set.
WebProcess::markAllLayersVolatile: Failed to mark layers as volatile for webPageID=8

Secondary packaging observation

The login item created on this install is labeled Lumen, not io.speedata.lumen:

$ plutil -p ~/Library/LaunchAgents/Lumen.plist
{
  "Label" => "Lumen"
  "ProgramArguments" => [
    0 => "/Applications/Lumen.app/Contents/MacOS/Lumen"
  ]
  "RunAtLoad" => true
}

But the cask currently has:

uninstall quit:       "io.speedata.lumen",
          launchctl:  "io.speedata.lumen"

zap trash: [
  "~/Library/LaunchAgents/io.speedata.lumen.plist",
]

That may be separate from the missing topbar icon, but it looks like uninstall/zap may miss the actual LaunchAgent from this install.

Why this is hard to self-report from Lumen

The documented fault reporter lives behind the app UI. In this failure mode there is no visible tray icon/window, and lumen is not on PATH, so I cannot reach either the in-app reporter or the documented terminal lumen report --dry-run flow without manually invoking the bundled sidecar binary.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions