Skip to content

feat: add hdmi-toggle plugin - #108

Draft
rael2pac wants to merge 2 commits into
noctalia-dev:mainfrom
rael2pac:add-hdmi-toggle
Draft

feat: add hdmi-toggle plugin#108
rael2pac wants to merge 2 commits into
noctalia-dev:mainfrom
rael2pac:add-hdmi-toggle

Conversation

@rael2pac

Copy link
Copy Markdown

Plugin

  • Id: rael2pac/hdmi-toggle
  • New plugin

What it does

Bar widget and panel for listing and toggling connected monitors on and off. Click the bar widget to open a panel with each monitor listed and a toggle button.

External dependencies

  • wlr-randr or niri msg for monitor control

Testing

  • Tested on Niri
  • Tested on Hyprland
  • Tested on Sway
  • Noctalia version tested against: v5 latest
  • Plugin API level: 3

Screenshots / Videos

Checklist

  • Directory name matches the part of id after / in plugin.toml exactly.
  • Ships plugin.toml, README.md, thumbnail.webp, and translations/en.json.
  • README.md follows the README template.
  • Created thumbnail.webp with the thumbnail generator. (TODO)
  • version follows semver; plugin_api is the oldest API level required.
  • Did not edit catalog.toml.
  • 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 accounted for above.
  • I have the right to publish this code under the license declared in plugin.toml.

rael2pac added 2 commits July 26, 2026 01:28
- Bar widget and panel for listing and toggling connected monitors
- Uses wlr-randr or niri msg for monitor control
- Works on Wayland compositors
@ItsLemmy

Copy link
Copy Markdown
Contributor

• 1. blocking - hdmi-toggle/plugin.toml:1

The required dependencies field is absent even though the plugin executes niri. This causes validator failure and leaves the runtime dependency undeclared.

  1. blocking - hdmi-toggle/plugin.toml:30

The translation paths contain uppercase characters, and hdmi-toggle/translations/en.json:2 uses dotted root keys instead of nested objects. The validator rejects all three entries.

  1. blocking - hdmi-toggle/README.md:28

The plugin advertises wlr-randr, Sway, and Hyprland support, but hdmi-toggle/service.luau:29 and hdmi-toggle/panel.luau:37 only execute niri commands.
Discovery and toggling therefore fail on the other advertised compositors. Implement the fallback or document the plugin as Niri-only.

  1. non-blocking - hdmi-toggle/panel.luau:69

Panel fallback text and status labels are Portuguese, while the English translation only contains setting labels. English users will see untranslated Portuguese text.

@ItsLemmy
ItsLemmy marked this pull request as draft July 26, 2026 12:51
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.

2 participants