Files
omarchycn/shell/plugins/panels/tailscale
David Heinemeier HanssonandClaude Opus 4.8 228b5ac3ba Give every hero toggle a keyboard focus ring
Each panel's hero on/off toggle (Tailscale, Dropbox Wi-Fi, Bluetooth,
network, audio mute) now has a reachable "header" cursor section, a focus
ring around the hero icon, Enter/Space activation, a letter shortcut, and
hover parity. The hero is inset by heroRingPad so the ring stays inside
the Flickable/ScrollView clip box instead of being cut off.

Bluetooth and audio get a virtual "header" section above their device
sections, so the adapter/mute can be toggled by keyboard even when no
device rows exist. Network repurposes its previously dead header section.

For the PanelHero-based panels (Tailscale, Dropbox), route panel state
through the wrapper's `header` id: inside a PanelHero iconComponent `root`
resolves to PanelHero, not the Panel, so `root.headerHasCursor` and
`root.setHeaderCursor()` silently referenced the wrong object.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-20 15:50:05 -07:00
..
2026-07-18 12:56:46 -07:00

Tailscale Omarchy Widget

Native Omarchy bar widget for Tailscale.

Features

  • Shows Tailscale connection state in the bar
  • Left click opens a keyboard-friendly panel
  • Right click toggles Tailscale on/off
  • Switch between available Tailscale connections when multiple are available
  • Browse machines from tailscale status --json
  • Copy a machine's Tailscale IP, host name, or DNS name

Keyboard shortcuts

Inside the panel:

  • j / k or arrows: move cursor
  • enter / space: activate current row
  • c: copy selected peer IP
  • n: copy selected peer name
  • d: copy selected peer DNS name
  • t: toggle Tailscale
  • r: refresh status
  • esc: close

Requirements

  • tailscale CLI on PATH
  • wl-copy for clipboard copy actions

Icon

Renders the Tailscale mark natively as a theme-colored 3×3 dot grid, matching the official SVG silhouette while avoiding tiny-SVG rendering quirks in the bar.

Add to the bar

This widget ships as first-party plugin omarchy.tailscale. Add it with omarchy bar plugin add omarchy.tailscale, or add an entry such as { "id": "omarchy.tailscale" } to one of the bar.layout sections in ~/.config/omarchy/shell.json; the shell reloads shell.json automatically.