Skip to content

feat: add mpv plugin#911

Open
aglairdev wants to merge 7 commits into
noctalia-dev:mainfrom
aglairdev:mpv
Open

feat: add mpv plugin#911
aglairdev wants to merge 7 commits into
noctalia-dev:mainfrom
aglairdev:mpv

Conversation

@aglairdev

Copy link
Copy Markdown

Adds a bar widget and hover panel for controlling mpv via its IPC socket.

Based on noctalia-mpd by Ido Perlmuter.

Adapted for mpv users who play local files, streams, or youTube via yt-x/yt-dlp, with youTube thumbnail support in the hover panel.

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Automatic Manifest Check


File: mpv/manifest.json

+  "repository": "https://github.com/aglairdev/noctalia-plugins/tree/mpv/mpv",

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: mpv/Panel.qml

  • (H) Line 157: Do not use hardcoded values, always prefer to use the Style singleton instead
+          spacing: 4

File: mpv/Settings.qml

  • (H) Line 45: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      label: "Left click"
  • (H) Line 46: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      description: "Action when left-clicking the widget"
  • (H) Line 53: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      label: "Right click"
  • (H) Line 54: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      description: "Action when right-clicking the widget"
  • (H) Line 61: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      label: "Middle click"
  • (H) Line 62: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      description: "Action when middle-clicking the widget"
  • (H) Line 69: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      label: "Stop playback when disabling shuffle"
  • (H) Line 70: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+      description: "When toggling ashuffle off, also send mpc stop. Only applies to the \"Toggle ashuffle\" action."

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: mpv/Settings.qml

  • (L) Line 32: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      label: pluginApi?.tr("settings.left-click") ?? "Left click"
  • (L) Line 33: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      description: pluginApi?.tr("settings.left-click-desc") ?? "Action when left-clicking the widget"
  • (L) Line 39: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      label: pluginApi?.tr("settings.right-click") ?? "Right click"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      description: pluginApi?.tr("settings.right-click-desc") ?? "Action when right-clicking the widget"
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      label: pluginApi?.tr("settings.middle-click") ?? "Middle click"
  • (L) Line 47: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      description: pluginApi?.tr("settings.middle-click-desc") ?? "Action when middle-clicking the widget"

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: mpv/Settings.qml

  • (L) Line 32: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      label: pluginApi?.tr("settings.left-click") ?? "Left click"
  • (L) Line 33: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      description: pluginApi?.tr("settings.left-click-desc") ?? "Action when left-clicking the widget"
  • (L) Line 39: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      label: pluginApi?.tr("settings.right-click") ?? "Right click"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      description: pluginApi?.tr("settings.right-click-desc") ?? "Action when right-clicking the widget"
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      label: pluginApi?.tr("settings.middle-click") ?? "Middle click"
  • (L) Line 47: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+      description: pluginApi?.tr("settings.middle-click-desc") ?? "Action when middle-clicking the widget"

@spiros132 spiros132 marked this pull request as draft June 5, 2026 23:05
@aglairdev aglairdev marked this pull request as ready for review June 8, 2026 01:09
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