Skip to content

notification center with per-app grouped stacks #2

Description

@0xferrous

wispd should have a notification center for revisiting delivered notifications, similar in spirit to
macOS Notification Center.

Desired behavior

  • show delivered notifications in a dedicated notification center view
  • group notifications from the same app into a single collapsed stack/entry
  • allow expanding/collapsing each app group
  • show the latest notification as the preview when a group is collapsed
  • sort groups by most recent notification
  • allow dismissing:
    • a single notification from the center
    • all notifications from one app/group at once
    • all notifications at once

State model

The live popup stack, notification center, and history should be treated as separate layers:

  • a notification leaving the live popup stack does not automatically remove it from the notification
    center
  • clearing a notification from the notification center does not automatically remove it from history
  • history remains the longer-lived record, subject to retention/persistence policy

Grouping model

Grouping should prefer a stable app identity where possible:

  • desktop_entry when available
  • otherwise app_name

This should avoid unrelated apps being merged just because they share a display name.

UI form

The notification center should likely be implemented as a dedicated layer-shell surface/panel, with
tray/status-notifier integration as a launcher rather than the primary UI container.

Relationship to history

This should build on top of notification history:

  • history stores the delivered notifications and their state
  • notification center provides the browsing/interaction UI over that data

Scope

This issue is about the notification center UI/interaction model.

Storage, persistence, and retention belong primarily to the notification history work.

Likely implementation areas

  • wispd
    • notification center UI
    • grouped/collapsible list behavior
    • bulk dismiss actions
    • show/hide/toggle handling for the center panel
  • wisp-source / shared state
    • APIs/state access needed to query and mutate reviewable notifications/history
  • tray/status-notifier integration
    • launcher for opening the notification center

Acceptance criteria

  • users can open a notification center and review delivered notifications after they leave the live
    stack
  • notifications are grouped by app into collapsible stacks
  • collapsed groups show a useful latest-notification preview
  • users can expand/collapse app groups
  • users can dismiss one notification, one app group, or all notifications from the center
  • live popup dismissal, center clearing, and history retention are modeled as separate states/actions

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