- Colour the IP / DNS subtitle under each machine with the logo yellow
(#FAE204, sampled as the dominant opaque colour of offscale-logo.png).
Stock draws that line through `dim` = Qt.darker(foreground, 1.55), which
on yellow shifts the hue to olive (#A19203) rather than quietening it, so
it takes the flat accent instead. Everything else keeps the themed
foreground: section headers, machine names, account names and all the
iconography.
- Add OffscaleToggle.qml so the switch reads white when on. The stock
ToggleSwitch resolves its checked colours through
Style.selectedStateColor / selectedFillFor, which read [controls]
selected-color; Ethereal sets that to a literal "#ffcead" and
Style.resolveStateColor returns literals verbatim, ignoring the
foreground and accent properties entirely. No property on the stock
switch can reach it, and overriding the token globally would recolour
every selected state in the shell. The copy differs only in the checked
state and needs an explicit `import qs.Ui`, which the original gets
implicitly by living inside that module.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Regenerated from OfficerIcons/NewBrief/OffscaleLogo3.png with the same
pipeline as before: trim the transparent margin, pad back to square so it
centres, scale to 256x256 (1.08 MB -> 78 KB).
One asset, two render sites — OffscaleIcon.qml loads it and is
instantiated both in the bar and in the panel hero, so this covers both.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Forked from omarchy.tailscale at the packaged commit (omarchy-dev
4.0.0.r1744.gf002044). The `tailscale` branch holds the pristine upstream
subtree history so upstream changes can still be merged in; `master` is
this fork.
- Rename the plugin to pastilhas.offscale: manifest id/name, moduleName
and ipcTarget, and display strings. Deliberately NOT renamed: the
lowercase "tailscale" CLI invocations, the TailscaleIPs/TailscaleIPv6
JSON fields from `tailscale status --json`, and
authorizeTailscaleOperator. Renaming those loads fine but silently
breaks peer parsing.
- TailscaleIcon.qml -> OffscaleIcon.qml, now rendering offscale-logo.png
instead of the 3x3 dot grid, keeping the crossed/warning states.
- Add OffscaleHero.qml: a copy of qs.Ui.PanelHero with a titleComponent
slot, so the wordmark (offscale-text.png) can replace the title text.
Otherwise byte-identical to the original, so it stays diffable.
- Drop the cycling hero phrases entirely - the array, the 2.8s timer and
the metaOpacity fade.
- Show the local machine as a PeerRow of its own, so it gets the same
layout and copy menu as tailnet peers. Adds `navigable` to PeerRow so
that row stays out of the peers keyboard cursor.
- Enlarge the bar icon: BarIconButton pins its icon to opticalCanvas, so
opticalSize/slotSize are overridden alongside iconSize.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>