A Dank Material Shell plugin for controlling the user's Tailscale connection.
Find a file
vybe bc864bb9d8 Merge feature_enforce_semicolon_rule into vibes
Semicolon + brace style enforcement is now part of the vibes history for human review.

Written by AI agent working for @jtmorris. Model: grok-build-0.1.
2026-05-23 04:57:51 +00:00
docs/agents docs: add git workflow rules and update AGENTS.md 2026-05-20 08:57:45 +00:00
resources Added screenshot. Added ignore for working files not appropriate for the repo. 2026-05-18 17:16:31 -07:00
tailscalectl style: strictly enforce semicolon termination + curly braces on all JS statements 2026-05-23 04:57:46 +00:00
test style: strictly enforce semicolon termination + curly braces on all JS statements 2026-05-23 04:57:46 +00:00
.gitignore Added screenshot. Added ignore for working files not appropriate for the repo. 2026-05-18 17:16:31 -07:00
AGENTS.md Better scoped semicolon coding style. 2026-05-22 06:06:14 +00:00
LICENSE fix(initialize-project): make AGENTS.md agent-agnostic, add remote prompt, show full drafts 2026-05-15 17:00:46 -07:00
README.md feat: extract UI strings to lib.js; harden clipboard to direct argv, drop clipmanctl (#34, #49) 2026-05-22 06:42:11 +00:00

Tailscale Widget Plugin for Dank Material Shell

A lightweight widget plugin that shows Tailscale connectivity status on the Dank Bar with quick controls for toggling connection, switching exit nodes, and copying peer addresses.

Tailscale Widget v0.1.0

Features

  • Status icon in the bar — vpn_key when connected, vpn_key_off when disconnected
  • Right-click to toggle Tailscale on/off
  • Left-click to open a popout showing:
    • Your current Tailscale IP
    • Active exit node (with clear button)
    • Peer list with hostnames and IPs
  • Click-to-copy any hostname or IP to clipboard
  • Exit node selection — click on any exit-node-capable peer to route through it
  • Auto-refresh — status polls every 5 seconds
  • Toast notifications for all errors

Requirements

  • Dank Material Shell installed and running
  • tailscale CLI available on PATH
  • A clipboard tool (dms or wl-copy)

Installation

  1. Clone or copy this repository so that the tailscalectl/ directory is available:

    git clone <repo-url>
    
  2. Place the tailscalectl/ directory into your DMS plugins directory:

    mv tailscalectl ~/.config/dankmaterialshell/plugins/
    

    The directory must contain:

    tailscalectl/
    ├── plugin.json
    ├── TailscaleWidget.qml
    └── lib.js
    
  3. Reload the plugin:

    dms ipc call plugins reload tailscalectl
    
  4. The Tailscale icon should appear on your Dank Bar. If connected, it shows a filled key icon; if disconnected, an outlined key icon.

Usage

Action How
Toggle connection Right-click the bar icon
Open popout Left-click the bar icon
Copy hostname/IP Click the text in the peer list
Set exit node Click next to an exit-node peer
Clear exit node Click × next to "Exit node: ..." or click on current node

Plugin Manifest

{
  "id": "tailscalectl",
  "name": "Tailscale",
  "description": "Tailscale status and controls on the Dank Bar",
  "version": "0.1.0",
  "author": "John Morris & Vybe (AI Slop... er... Coding Assistant)",
  "icon": "vpn_key",
  "type": "widget",
  "component": "./TailscaleWidget.qml",
  "permissions": ["settings_read", "settings_write", "process"]
}

Testing

node --test test/lib.test.js

License

See LICENSE.