Addresses the three non-blocking notes from #292:
- README's plugin_api requirement was stale (22) vs the manifest's real
minimum (17, the onExit lifecycle addition) — corrected, and pinned the
noctalia version floor to beta.7 (the first tagged release plugin_api
actually reaches 17 in).
- apply()'s privilege path ran the whole discovery+mutate script through
`priv sh -c '...'`, which the documented sudoers rule (NOPASSWD:
/usr/bin/nmcli) never covers — sudo -n always failed. Now the privilege
prefix is applied to each of the two mutating nmcli calls individually,
never to a wrapping shell.
- Regenerated thumbnail.webp.
Co-authored-by: nightwatch75 <nightwatch75@users.noreply.github.com>
Switch the system DNS between popular providers, custom servers, or the ISP
default, from a panel on the bar — no reconnect, no captive-portal re-run.
Detection reads the active connection's own ipv4.dns/ipv4.ignore-auto-dns
instead of guessing, so a manually configured resolver (LAN ones included)
shows as its provider and DHCP-assigned DNS shows as Default (ISP). A
singleton service entry owns detection/apply so multiple bars share one
engine.
Every bar gesture (left/right/scroll) is a manifest [widget.actions] default,
resolved through noctalia's own IPC registry, so any of them can be remapped
from the bar's own gesture settings without touching the plugin. The panel
also carries a DNS lookup tester: resolve a name against the active
provider's own address with dig/nslookup, to confirm a switch took effect or
that a provider blocks a domain.
Co-authored-by: nightwatch75 <nightwatch75@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>