2. Bar pill – icon + right-click toggle #3

Closed
opened 2026-05-16 01:37:22 +00:00 by jtmorris · 1 comment
Owner

Parent: PRD #1 (Tailscale Widget Plugin for Dank Bar)

Type: AFK

Blocked by: #2

Implement the visible bar pill with connected/disconnected icon and right-click toggle behavior.

Acceptance Criteria

  • horizontalBarPill and verticalBarPill render a DankIcon using vpn_key (connected) / vpn_key_off (disconnected)
  • Right-click on the pill executes tailscale up --operator=$USER or tailscale down as appropriate
  • Icon color follows DMS theme (Theme.primary when connected, Theme.surfaceText when disconnected)
  • No settings or popout logic yet – this slice only covers the pill itself

Notes

This slice delivers the first end-to-end user-visible behavior (right-click toggle).

Parent: PRD #1 (Tailscale Widget Plugin for Dank Bar) **Type:** AFK **Blocked by:** #2 Implement the visible bar pill with connected/disconnected icon and right-click toggle behavior. ## Acceptance Criteria - `horizontalBarPill` and `verticalBarPill` render a `DankIcon` using `vpn_key` (connected) / `vpn_key_off` (disconnected) - Right-click on the pill executes `tailscale up --operator=$USER` or `tailscale down` as appropriate - Icon color follows DMS theme (`Theme.primary` when connected, `Theme.surfaceText` when disconnected) - No settings or popout logic yet – this slice only covers the pill itself ## Notes This slice delivers the first end-to-end user-visible behavior (right-click toggle).
Author
Owner

Slice #2 complete (Bar pill – icon + right-click toggle).

Implementation:

  • horizontalBarPill and verticalBarPill now render a DankIcon using vpn_key / vpn_key_off
  • MouseArea with acceptedButtons: Qt.RightButton calls toggleTailscale()
  • toggleTailscale() dispatches tailscale up or tailscale down via Process
  • Icon color follows DMS theme: Theme.primary when connected, Theme.surfaceText when disconnected
  • Basic status check runs on load via tailscale status --json and StdioCollector

Verification:

  • Plugin reloads cleanly (PLUGIN_RELOAD_SUCCESS)
  • Status shows loaded

Next slice: #4 (Status polling + reactive state).

Slice #2 complete (Bar pill – icon + right-click toggle). **Implementation:** - `horizontalBarPill` and `verticalBarPill` now render a `DankIcon` using `vpn_key` / `vpn_key_off` - `MouseArea` with `acceptedButtons: Qt.RightButton` calls `toggleTailscale()` - `toggleTailscale()` dispatches `tailscale up` or `tailscale down` via `Process` - Icon color follows DMS theme: `Theme.primary` when connected, `Theme.surfaceText` when disconnected - Basic status check runs on load via `tailscale status --json` and `StdioCollector` **Verification:** - Plugin reloads cleanly (`PLUGIN_RELOAD_SUCCESS`) - Status shows `loaded` **Next slice:** #4 (Status polling + reactive state).
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jtmorris/dms_tailscalectl#3
No description provided.