Menu ▾ ▴

#19 Recent-conversations Dock/tray menu (macOS)

closed
nobody
2026-07-04
2026-06-28
Anonymous
No

Originally created by: kristofferR

Recent-conversations Dock/tray menu (macOS)

Right-click the Dock icon (or the tray icon) to get a list of recent conversations and jump straight to one. This is Caprine's "Quick access to conversations from Dock menu" feature.

Behaviour

  • Dock menu (macOS) and/or the tray context menu list the most recent N threads (name → click opens that thread, raising the window).
  • Updates as the conversation list changes.

Implementation notes

This one spans the page→Rust boundary, so it's more work than the inject-only features:

  • Scrape the chat list in src-tauri/inject/messenger.js (reuse/extend the chatRows() helper to also grab each thread's display name + /t/ href), and push the list to Rust via an event — e.g. plugin:event|emit with carrier:recent-threads, on a MutationObserver + debounce.
  • Receive it in src-tauri/src/lib.rs (app.listen_any, like the existing carrier:unread / carrier:open-settings handlers) and rebuild the Dock menu (set_dock_menu on macOS) / tray menu from the payload.
  • On click, navigate the focused Messenger window to the thread URL (window.eval("location.href = …") via target_window) or post an event the inject script handles by clicking the row.

Notes / caveats

  • macOS-first (matches Caprine). The tray-menu variant could also work on Windows/Linux as a stretch.
  • Keep the scraped data in-memory only; don't persist conversation names/IDs to disk.
  • Lower priority than the privacy features — nice-to-have, more plumbing.

Related

Tickets: #44
Tickets: #56

Discussion

  • Anonymous

    Anonymous - 2026-07-04

    Originally posted by: kristofferR

    Done in [#44] (merged): recent conversations in the macOS Dock menu and the tray menu, scraped from the chat list, with names hidden while Hide Names & Avatars is on. Windows jump-list parity is tracked separately in [#56].

     

    Related

    Tickets: #44
    Tickets: #56

  • Anonymous

    Anonymous - 2026-07-04

    Ticket changed by: kristofferR

    • status: open --> closed
     

Log in to post a comment.