From 303256d646601f3459c3a54e7c1c0833426fa564 Mon Sep 17 00:00:00 2001 From: vybe Date: Mon, 18 May 2026 21:17:54 +0000 Subject: [PATCH] Write README with install instructions and update author --- README.md | 88 ++++++++++++++++++++++++++++++++++++++++ tailscalectl/plugin.json | 2 +- 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e69de29..4f9a5fa 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,88 @@ +# 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. + +## 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`, `wl-copy`, or `clipmanctl`) + +## Installation + +1. Clone or copy this repository so that the `tailscalectl/` directory is available: + + ``` + git clone + ``` + +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 + +```json +{ + "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 + +```bash +node --test test/lib.test.js +``` + +## License + +See [LICENSE](LICENSE). diff --git a/tailscalectl/plugin.json b/tailscalectl/plugin.json index b972a2f..4a4e032 100644 --- a/tailscalectl/plugin.json +++ b/tailscalectl/plugin.json @@ -3,7 +3,7 @@ "name": "Tailscale", "description": "Tailscale status and controls on the Dank Bar", "version": "0.1.0", - "author": "John Morris", + "author": "John Morris & Vybe (AI Slop... er... Coding Assistant)", "icon": "vpn_key", "type": "widget", "component": "./TailscaleWidget.qml",