Repository navigation
Releases: zaolin/traytail
Releases · zaolin/traytail
Release list
v0.1.0
traytail v0.1.0
First release. A minimal Tailscale tray icon for Wayland bars that host the
StatusNotifierItem
protocol — built and tested against ashell.
No GUI toolkit: pure Go, one dependency (github.com/godbus/dbus/v5), no asset files.
Highlights
- Status icon with four states: connected (filled), offline (hollow), exit node in use (green ring), login required / captive portal (amber)
- Exit nodes with a usable UI:
- Full city/country labels from the tailnet's own
Locationdata (no hostname hunting) - Active country hoisted to the top of the Mullvad list,
●/○radio markers everywhere, explicitOffentry - Active nodes matched by Tailscale IP (rename-proof)
- Full city/country labels from the tailnet's own
- Smart auto (replaces native
auto:any): away from home → own exit node, at home → last-used Mullvad node (persisted across restarts). Re-applies on reconnect and profile switch; manual picks always win - Captive portal handling: reads NetworkManager over DBus (no
nmclishell-outs), disconnects tailscale when a Wi-Fi portal hijacks the network, opens the discovered login page in chromium, and reconnects once the portal clears — with minute-level fresh checks, flap protection, and a gateway-fallback login URL - Multiple profiles: switch accounts from the tray; works while disconnected (switch = switch + connect)
- Deselect the own exit node with one click → applies the last-used Mullvad node
Install
sudo make install # build + install to /usr/local/bin
# or without root:
make install PREFIX=$HOME/.localRequirements: Go ≥ 1.24, tailscale CLI in $PATH, tailscaled running, sudo tailscale set --operator=$USER once.
Notes
- Works with any SNI host (ashell, waybar, KDE Plasma) — ashell is the reference and tested host
- For full portal-detection capability, NetworkManager's connectivity check should be enabled (some distros ship it off) and the binary benefits from
cap_net_admin(granted bysudo make install) so probes can bypass an active tailscale tunnel
Quality
- Unit + DBus integration tests, run with
-racein CI; ~90% statement coverage