Skip to content

feat(monique): add Monique monitor profile switcher plugin#598

Open
ToRvaLDz wants to merge 5 commits intonoctalia-dev:mainfrom
ToRvaLDz:feat/monique
Open

feat(monique): add Monique monitor profile switcher plugin#598
ToRvaLDz wants to merge 5 commits intonoctalia-dev:mainfrom
ToRvaLDz:feat/monique

Conversation

@ToRvaLDz
Copy link
Copy Markdown
Contributor

@ToRvaLDz ToRvaLDz commented Apr 8, 2026

Summary

  • Adds the Monique plugin: switch monitor profiles from the Noctalia bar
  • Shows the active profile as a tooltip on hover (optional label in the bar)
  • Right-click opens a context menu to open Monique or access widget settings
  • Left-click opens the profile switcher panel
  • Supports 8 languages: en, de, es, fr, it, pt, ru, zh-CN

Preview

preview

Dependencies

Requires monique installed and available in $PATH.

Test plan

  • Plugin loads with qs -c noctalia-shell
  • Bar widget shows icon and tooltip with active profile name
  • Left-click opens panel with profile list
  • Clicking a profile switches it and shows a toast notification
  • Right-click → "Open Monique" launches the Monique GUI
  • Right-click → "Widget settings" opens the settings page
  • "Show profile name" toggle shows/hides the label
  • Icon color setting applies correctly
  • Settings persist across restarts
  • Warning shown when monique is not installed

ToRvaLDz added 2 commits April 8, 2026 15:33
Switch monitor profiles from the bar. Shows the active profile
as a tooltip and lets you switch between saved Monique configurations.
Copy link
Copy Markdown
Contributor

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some very minor feedback! :)

@ToRvaLDz
Copy link
Copy Markdown
Contributor Author

Thanks for the feedback!

  • Translation interpolation: updated toast.switched across all i18n files to use {profile} as placeholder (e.g. "Switched to {profile}") and replaced the string concatenation in Main.qml with .replace("{profile}", ...), consistent with how other plugins in the repo handle it (e.g. clipper, catwalk).

  • Installation section: removed from README.md — agreed, it's redundant since the plugin is installed via the registry. The manual symlink approach was only useful during local development.

… section

- Replace string concatenation in toast notification with .replace("{profile}", ...)
- Add {profile} placeholder to toast.switched in all i18n files
- Remove Installation section from README (redundant with registry install)
@github-actions
Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: monique/Main.qml

  • (L) Line 117: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+          (pluginApi?.tr("toast.switched") || "Switched to {profile}").replace("{profile}", switchProcess.profileName),

Copy link
Copy Markdown
Contributor

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

@ItsLemmy

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