Skip to content

add Mango Displays plugin - #659

Merged
ItsLemmy merged 1 commit into
noctalia-dev:mainfrom
prponkshe:feat/mango-displays
Sep 7, 2026
Merged

add Mango Displays plugin#659
ItsLemmy merged 1 commit into
noctalia-dev:mainfrom
prponkshe:feat/mango-displays

Conversation

@prponkshe

@prponkshe prponkshe commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Plugin

  • Id: prponkshe/mango-displays
  • New plugin
  • Update to an existing plugin (version bumped in plugin.toml)

What it does

Configures MangoWC output resolution, refresh rate, scale, enabled state, and persistent monitor rules from a Noctalia panel. It can also mirror one connected display to another through a supervised wl-mirror process.

External dependencies

  • mmsg: queries MangoWC state, applies output changes, reloads configuration, moves the mirror window, and watches monitor events.
  • wlr-randr: reads supported modes and stable monitor identity fields. Read-only, no setting ops through wlr-randr.
  • wdisplays: opens the graphical output arrangement tool from the bar widget. Optional, can be removed, reviewer please suggest.
  • wl-mirror: mirrors one output to another because MangoWC does not provide native cloning.

The plugin writes generated monitorrule entries to the configured monitor_rules_path and a private process ID file under its Noctalia plugin data directory. It makes no network calls.

Testing

Tested the local source on MangoWC with Noctalia 5.0.1. Confirmed that all four entries load, both services start, the bar widget and panel render with two displays, output modes are read correctly, and wl-mirror starts, maps, and stops cleanly through plugin IPC.

  • Tested on Niri
  • Tested on Hyprland
  • Tested on Sway
  • Tested on another compositor: MangoWC
  • Noctalia version tested against: 5.0.1
  • Plugin API level: 22

Screenshots / Videos

Mango Displays

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.
  • thumbnail.webp is present and relevant; for a new plugin I created it with the thumbnail generator, and for an update I regenerated it with the generator if the visual identity or user-facing appearance changed.
  • 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

  • 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.

@Noctalia-CI
Noctalia-CI marked this pull request as draft September 7, 2026 14:46
@Noctalia-CI

Noctalia-CI commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

The description now contains the required template structure.

@prponkshe
prponkshe marked this pull request as ready for review September 7, 2026 15:00
@ItsLemmy
ItsLemmy merged commit 4bb8571 into noctalia-dev:main Sep 7, 2026
4 of 5 checks passed
@prponkshe
prponkshe deleted the feat/mango-displays branch September 8, 2026 15:10
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