Skip to content

Linux: tray / StatusNotifierItem contract (tracking the documented honest gap) #118

Description

@turinglambdaai

Tracking issue for the Linux tray gap documented in platform/linux/host/README.md ("Honest gaps") and absent from rivet/system on Linux (Windows Shell_NotifyIconW and macOS NSStatusItem both have first-party support).

Evidence from dogfooding: 3 of 4 app rewrites currently in flight (movebit, brainfuel, syncpilot) are tray-resident apps on their primary platforms; on Linux they can only fall back to single-instance activation to reopen a window today.

Proposal sketch (compositor caveats acknowledged):

  • Host-side: a rivet::system::Tray adapter over StatusNotifierItem (org.kde.StatusNotifierItem) — KDE/native support, GNOME via AppIndicator extension, with documented behavior when no host is present (like Notifications today: capability probe, no-op fallback).
  • Backend-side: mirror the existing set-tray-menu! Racket API on the Linux adapter so apps get the same contract as Win/macOS.
  • Define the fallback story when no StatusNotifierItemHost exists (GNOME without extensions): single-instance activation as the reopen path (already first-party).

Happy to contribute the PR against platform/linux/system if the contract shape sounds right.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions