Skip to content

Dev/mihomo control - #339

Merged
ItsLemmy merged 8 commits into
noctalia-dev:mainfrom
mdj2812:dev/mihomo-control
Aug 12, 2026
Merged

Dev/mihomo control#339
ItsLemmy merged 8 commits into
noctalia-dev:mainfrom
mdj2812:dev/mihomo-control

Conversation

@mdj2812

@mdj2812 mdj2812 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Plugin

  • Id: mdj2812/mihomo-control
  • New plugin
  • Update to an existing plugin (version bumped in plugin.toml)

What it does

Monitor and control a Mihomo (Clash Meta) external controller from the Noctalia bar and a control panel:

  • Live traffic graph streamed from GET /traffic, with current up/down rates.
  • Proxy mode switch (rule / global / direct) and core restart (POST /restart).
  • Proxy-group management: collapsible member lists with per-proxy latency (health checks + GET /group/<name>/delay), click-to-select, per-group overall latency, and a "Test all" button.
  • Connection status with version and endpoint; works locally (127.0.0.1) or remotely via host / port / secret / HTTPS settings.
  • Widget tooltip with status, mode, rates, connections and per-group selections; control-center shortcut toggling rule/global.

External dependencies

None. Self-contained Luau speaking HTTP to the configured external controller: GET /version /configs /connections /proxies /traffic /group/<name>/delay, PATCH /configs, PUT /proxies/<name>, POST /restart, DELETE /connections. It spawns no processes and writes no files.

Testing

  • Tested on Niri
  • Tested on Hyprland
  • Tested on Sway
  • Tested on another compositor:
  • Noctalia version tested against: v5 (beta)
  • Plugin API level: 9

Screenshots / Videos

image image image

Checklist

  • The directory name matches the part of id after the / in plugin.toml exactly.
  • It ships plugin.toml, README.md, thumbnail.webp, and translations/en.json.
  • README.md follows the
    README template, documents
    every entry id and dependency, and includes exact panel IPC commands and launcher prefixes where applicable.
  • I created thumbnail.webp with the thumbnail generator.
  • version follows semver and is bumped in this PR; plugin_api is the oldest API level this plugin requires.
  • Every non-English translation in this PR uses a locale supported by Noctalia core, and I can read, write, and
    understand that language well enough to review and maintain it (no unreviewed machine/LLM translations).
  • I did not edit catalog.toml; CI generates it.
  • This PR touches exactly one plugin directory.

Code review attestation

Plugins run as trusted, unsandboxed Luau in the user's session. Confirm:

  • The code is readable and not obfuscated, minified, or generated.
  • It does not download and execute remote code.
  • Every network call, filesystem write, and spawned process is something the description above accounts for.
  • I have the right to publish this code under the license declared in plugin.toml.

Monitor and control a Mihomo (Clash Meta) external controller from the
bar: live traffic graph, proxy mode, proxy-group management with latency
tests, and core restart. Works locally (127.0.0.1) or remotely via
host/port/secret settings.
Adds a Test all button next to the Proxy groups heading that runs latency
tests on every group sequentially, with a single summary notification.
Give both sections the same card look: muted medium-weight heading on the
left, secondary info on the right, and proxy-group cards restyled as
bordered sub-cards inside the section.
Show the selected proxy next to the bold group name (ECS > ecs-proxy),
move the expand chevron to the type/members row where the list opens,
and drop the list glyph from the card header.
Keep each card in a two-column row at its natural height instead of
stretching the neighbor when one is expanded.
Use theme roles for traffic and latency colors so they stay readable in
light mode, and keep the status chip's green/amber/red identity with
darker light-mode shades.
@mdj2812
mdj2812 force-pushed the dev/mihomo-control branch from f4dfaf1 to 7331fba Compare August 12, 2026 00:26
@ItsLemmy
ItsLemmy merged commit 222fec4 into noctalia-dev:main Aug 12, 2026
1 check passed
@mdj2812
mdj2812 deleted the dev/mihomo-control branch August 12, 2026 13:43
@NONPLAYT

Copy link
Copy Markdown

For people who like minimalism, I think it's worth adding a setting that will make the icon for the plugin small, that is, it will remove the rule/global display, and also add the ability to change the color of the mihomo icon itself

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants