Skip to content

Improve Mihomo Control customization and group ordering - #355

Draft
mdj2812 wants to merge 6 commits into
noctalia-dev:mainfrom
mdj2812:dev/mihomo-group-reordering
Draft

Improve Mihomo Control customization and group ordering#355
mdj2812 wants to merge 6 commits into
noctalia-dev:mainfrom
mdj2812:dev/mihomo-group-reordering

Conversation

@mdj2812

@mdj2812 mdj2812 commented Aug 13, 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

Expands Mihomo Control's presentation and proxy-group management:

  • Persists a user-defined proxy-group display order and supports drag reordering.
  • Offers floating or bar-attached control-panel placement.
  • Replaces status PNG variants with a compact, tintable glyph traced from the bundled Mihomo logo.
  • Adds widget settings for icon size, status/custom colors, and selectable labels: icon-only, mode, traffic rates, connection count, first-group proxy, or first-group latency.
  • Enlarges drag-only insertion targets, lifts the complete source slot, and previews the destination gap before drop.

External dependencies

None. The plugin talks only to the configured Mihomo external-controller HTTP API. The optional glyph generator has development-only OpenCV/fontTools dependencies; its SVG and TTF outputs are committed and no generator dependency is needed at runtime.

Testing

  • Tested on Niri
  • Tested on Hyprland
  • Tested on Sway
  • Tested on another compositor:
  • Noctalia version tested against: noctalia v5.0.0 (v5.0.0-beta.8-50-g713e6caa3ac6)
  • Plugin API level: 9

Screenshots / Videos

TODO: attach compact widget, custom glyph/color, both panel placements, and drag-preview screenshots before marking ready.

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.

Made with Cursor

mdj2812 and others added 6 commits August 12, 2026 22:07
Let users arrange group cards with drag-and-drop while preserving their display order across polling and restarts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Let users choose whether the control panel opens centered or attached to the bar while preserving the existing floating default.

Co-authored-by: Cursor <cursoragent@cursor.com>
Provide a compact mode, scalable status-colored Mihomo glyph, and optional custom color while preserving the recognizable Clash silhouette.

Co-authored-by: Cursor <cursoragent@cursor.com>
Let users choose an icon-only widget, proxy mode, live traffic rates, or connection count without changing the detailed tooltip.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose the selected proxy and best known latency from the first visible group as compact widget label choices.

Co-authored-by: Cursor <cursoragent@cursor.com>
Let card-sized drag targets select the nearest insertion point and lift the full source slot so reordering previews are easier to follow.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

1 participant