Skip to content

About

DankMaterialShell plugin to manage your Tailscale network from the bar — devices, exit nodes, routes, DNS, accounts, and Taildrop

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

Repository files navigation

Dankscale

A DankMaterialShell (Quickshell) plugin that manages your Tailscale network from the bar — a Linux stand-in for the macOS menu-bar app and settings utility.

Dankscale

Features

Bar widget — Tailscale icon showing connection state, with a shield badge when an exit node is active and an error badge when login is required or tailscaled is down.

Drop-down (click the bar icon)

  • Connect / disconnect toggle
  • Current account, one-click switch to the next account
  • Exit node settings dropdown for LAN access and advertising this device as an exit node
  • Device list — click any device to copy its Tailscale IP (or MagicDNS name) to the clipboard, or hover and hit the send button to share files via Taildrop
  • Click a device's exit node badge to select it as your exit node; click its active badge to stop using an exit node
  • Check-for-incoming-files button (when auto-accept is off)
  • "Open Manager" button

Manager (popup)

  • Devices — filterable list of every device on the tailnet with online status, OS, owner, subnet/exit-node badges; click to copy address, or use the send button to share files via Taildrop
  • Click an exit node badge to select that device without switching tabs; click its active badge to stop using an exit node
  • Exit Nodes — pick or clear the exit node, allow-LAN-access toggle, advertise this device as an exit node
  • Routes — accept-routes toggle, advertise subnet routes from this device, list of subnet routers on the tailnet
  • DNS — "Use Tailscale DNS" toggle, current DNS configuration (MagicDNS state, suffix, this device's DNS name, search domains, split-DNS routes), and a DNS lookup tool that resolves names through the tailnet resolver
  • Accounts — switch between logged-in accounts, add a new account (opens browser sign-in)

Manager

Taildrop (file transfer)

  • Send — hover any online device (in the drop-down or the Manager's Devices tab) and click the send button; a dialog lets you add files and send them with tailscale file cp
  • Receive — turn on Auto-accept incoming files to save arriving files to your download folder automatically, or leave it off and use the drop-down's check-for-files button to pull them on demand
  • Requires Taildrop to be enabled for your tailnet in the Tailscale admin console — it's an alpha, off-by-default feature. Until it's on, the send/receive controls stay hidden.

Control center tile — Tailscale toggle in the DMS control center.

Requirements

  • DankMaterialShell ≥ 1.4.0

  • tailscale CLI on DMS's PATH, with tailscaled running

  • Your user set as the Tailscale operator for routine controls. Use Grant operator in the widget, or run:

    sudo tailscale set --operator=$USER

Operator setup troubleshooting

NixOS and custom installations: Grant operator discovers Tailscale's absolute path on each click and sets TS_BE_CLI=1 to handle NixOS's combined CLI/daemon package. It requires pkexec, /usr/bin/env, and a working polkit authentication agent.

If Tailscale works in a terminal but the widget cannot find it, add its directory to the PATH of the desktop session or service that launches DMS, then restart DMS. A terminal-only alias or shell configuration is not enough.

Custom polkit rules: No policy changes are needed with normal administrator authentication. Rules matching the Tailscale executable may no longer apply to Grant operator, because polkit now authorizes env. Use the normal password prompt or the manual command below. Do not change a passwordless Tailscale rule to allow env; that would permit arbitrary commands. See the pkexec authorization documentation.

Manual fallback: Run command -v tailscale in your terminal and substitute its absolute path below:

sudo /usr/bin/env TS_BE_CLI=1 /absolute/path/to/tailscale set --operator="$USER"

Install

From the plugin browser — search for Dankscale in DMS Settings → Plugins and install it.

Manually — clone into your DMS plugins directory:

git clone https://github.com/dwright134/dms-dankscale ~/.config/DankMaterialShell/plugins/Dankscale

Then enable Dankscale under Settings → Plugins.

Settings

  • Refresh interval — how often tailscale status is polled (default 5 s)
  • Click copies — Tailscale IPv4 (default) or MagicDNS name
  • Show offline devices — include offline devices in the drop-down list
  • Auto-accept incoming files — receive Taildrop files in the background (default off)
  • Download folder — where received files are saved; blank uses your ~/Downloads

How it works

Everything is driven by the tailscale CLI — no daemons, no external helpers:

  • tailscale status --json — device list, connection state, exit node
  • tailscale debug prefs — accept-routes, advertised routes, exit-node and accept-dns prefs
  • tailscale dns status --json — MagicDNS state, suffix, search domains, split-DNS routes
  • tailscale dns query <name> [type] — DNS lookup tool
  • tailscale switch --list / tailscale switch <account> — accounts
  • tailscale up / down — connect / disconnect
  • tailscale set --exit-node=… --accept-routes=… --advertise-routes=… --accept-dns=… — settings
  • tailscale login — add account (auth URL opens in your browser automatically)
  • tailscale file cp <files> <device>: — send files with Taildrop
  • tailscale file get [--loop] <dir> — receive Taildrop files (auto-accept runs it with --loop)

With the popout and Manager closed, only tailscale status --json is polled at the configured refresh interval. Preferences, accounts, and DNS details are loaded at startup, when either UI opens, after actions, and when status detects a connection or account change. While either UI is open, those details also refresh at the configured interval.

License

MIT

About

DankMaterialShell plugin to manage your Tailscale network from the bar — devices, exit nodes, routes, DNS, accounts, and Taildrop

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages