Skip to content

Added a lyrics fetching and display plugin#554

Merged
spiros132 merged 13 commits intonoctalia-dev:mainfrom
Pever3ll:main
Apr 13, 2026
Merged

Added a lyrics fetching and display plugin#554
spiros132 merged 13 commits intonoctalia-dev:mainfrom
Pever3ll:main

Conversation

@Pever3ll
Copy link
Copy Markdown

@Pever3ll Pever3ll commented Apr 3, 2026

The plugin fetches lyrics using MPRIS data from lrclib.net and displays it in the bar.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Manifest Check


File: lyrics-fetch/manifest.json

  • (H) Missing required property repository. For example:
"repository": "https://github.com/noctalia-dev/noctalia-plugins"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (H) Line 273: Do not use hardcoded values, always prefer to use the Style singleton instead
+                spacing: 50
  • (H) Missing required property screen. For example:
property ShellScreen screen
  • (H) Missing required property widgetId. For example:
property string widgetId: ""
  • (H) Missing required property section. For example:
property string section: ""
  • (H) Missing required property sectionWidgetIndex. For example:
property int sectionWidgetIndex: -1
  • (H) Missing required property sectionWidgetsCount. For example:
property int sectionWidgetsCount: 0

File: lyrics-fetch/Settings.qml

  • (H) Line 38: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Font Family"
  • (H) Line 39: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        description: "Select the font for lyrics."
  • (H) Line 53: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Font Size"
  • (H) Line 54: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        description: "Text size in points."
  • (H) Line 76: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Widget Width"
  • (H) Line 93: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Scroll Speed"
  • (H) Line 110: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Scroll Mode"
  • (H) Line 131: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Adapt scroll speed to line"
  • (H) Line 139: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Hide when empty"
  • (H) Line 147: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+        label: "Show display when paused"

@Pever3ll Pever3ll marked this pull request as draft April 3, 2026 03:02
@Pever3ll Pever3ll marked this pull request as ready for review April 3, 2026 03:03
@Pever3ll Pever3ll marked this pull request as draft April 3, 2026 03:09
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Manifest Check


File: lyrics-fetch/manifest.json

+  "repository": "https://github.com/pever3ll/noctalia-plugins"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (L) Line 140: 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.title") || "Settings",

File: lyrics-fetch/Main.qml

  • (L) Line 35: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("lyrics.paused") || "Music paused"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return pluginApi?.tr("lyrics.loading") || "Wait Loading 🪿"

File: lyrics-fetch/Settings.qml

  • (L) Line 38: 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.font.title") || "Font Family"
  • (L) Line 39: 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.font.desc") || "Select the font for lyrics."
  • (L) Line 45: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        placeholder: pluginApi?.tr("settings.font.placeholder") || "Select a font..."
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        searchPlaceholder: pluginApi?.tr("settings.font.search-placeholder") || "Search fonts..."
  • (L) Line 53: 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.font.size") || "Font Size"
  • (L) Line 54: 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.font.size-desc") || "Text size in points."
  • (L) Line 76: 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.width") || "Widget Width"
  • (L) Line 93: 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.scroll.speed") || "Scroll Speed"
  • (L) Line 110: 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.scroll.mode.title") || "Scroll Mode"
  • (L) Line 114: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.always") || "Always Scroll",
  • (L) Line 118: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.hover") || "Scroll on Hover",
  • (L) Line 122: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.never") || "Don't Scroll",
  • (L) Line 131: 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.scroll.adapt") || "Adapt scroll speed to line"
  • (L) Line 132: 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.scroll.adapt-desc") || "Change scroll speed based on length of line"
  • (L) Line 140: 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.hide-when-empty") || "Hide when empty"
  • (L) Line 148: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("show-when-paused") || "Show display when paused"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Manifest Check


File: lyrics-fetch/manifest.json

+  "repository": "https://github.com/pever3ll/noctalia-plugins"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (L) Line 140: 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.title") || "Settings",

File: lyrics-fetch/Main.qml

  • (L) Line 35: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("lyrics.paused") || "Music paused"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return pluginApi?.tr("lyrics.loading") || "Wait Loading 🪿"

File: lyrics-fetch/Settings.qml

  • (L) Line 38: 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.font.title") || "Font Family"
  • (L) Line 39: 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.font.desc") || "Select the font for lyrics."
  • (L) Line 45: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        placeholder: pluginApi?.tr("settings.font.placeholder") || "Select a font..."
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        searchPlaceholder: pluginApi?.tr("settings.font.search-placeholder") || "Search fonts..."
  • (L) Line 53: 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.font.size") || "Font Size"
  • (L) Line 54: 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.font.size-desc") || "Text size in points."
  • (L) Line 76: 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.width") || "Widget Width"
  • (L) Line 93: 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.scroll.speed") || "Scroll Speed"
  • (L) Line 110: 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.scroll.mode.title") || "Scroll Mode"
  • (L) Line 114: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.always") || "Always Scroll",
  • (L) Line 118: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.hover") || "Scroll on Hover",
  • (L) Line 122: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.never") || "Don't Scroll",
  • (L) Line 131: 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.scroll.adapt") || "Adapt scroll speed to line"
  • (L) Line 132: 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.scroll.adapt-desc") || "Change scroll speed based on length of line"
  • (L) Line 140: 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.hide-when-empty") || "Hide when empty"
  • (L) Line 148: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("show-when-paused") || "Show display when paused"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Manifest Check


File: lyrics-fetch/manifest.json

+  "repository": "https://github.com/pever3ll/noctalia-plugins"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (L) Line 140: 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.title") || "Settings",

File: lyrics-fetch/Main.qml

  • (L) Line 35: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("lyrics.paused") || "Music paused"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return pluginApi?.tr("lyrics.loading") || "Wait Loading 🪿"

File: lyrics-fetch/Settings.qml

  • (L) Line 38: 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.font.title") || "Font Family"
  • (L) Line 39: 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.font.desc") || "Select the font for lyrics."
  • (L) Line 45: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        placeholder: pluginApi?.tr("settings.font.placeholder") || "Select a font..."
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        searchPlaceholder: pluginApi?.tr("settings.font.search-placeholder") || "Search fonts..."
  • (L) Line 53: 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.font.size") || "Font Size"
  • (L) Line 54: 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.font.size-desc") || "Text size in points."
  • (L) Line 76: 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.width") || "Widget Width"
  • (L) Line 93: 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.scroll.speed") || "Scroll Speed"
  • (L) Line 110: 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.scroll.mode.title") || "Scroll Mode"
  • (L) Line 114: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.always") || "Always Scroll",
  • (L) Line 118: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.hover") || "Scroll on Hover",
  • (L) Line 122: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.never") || "Don't Scroll",
  • (L) Line 131: 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.scroll.adapt") || "Adapt scroll speed to line"
  • (L) Line 132: 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.scroll.adapt-desc") || "Change scroll speed based on length of line"
  • (L) Line 140: 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.hide-when-empty") || "Hide when empty"
  • (L) Line 148: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("show-when-paused") || "Show display when paused"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Manifest Check


File: lyrics-fetch/manifest.json

+  "repository": "https://github.com/pever3ll/noctalia-plugins"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (L) Line 140: 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.title") || "Settings",

File: lyrics-fetch/Main.qml

  • (L) Line 35: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("lyrics.paused") || "Music paused"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return pluginApi?.tr("lyrics.loading") || "Wait Loading 🪿"

File: lyrics-fetch/Settings.qml

  • (L) Line 38: 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.font.title") || "Font Family"
  • (L) Line 39: 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.font.desc") || "Select the font for lyrics."
  • (L) Line 45: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        placeholder: pluginApi?.tr("settings.font.placeholder") || "Select a font..."
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        searchPlaceholder: pluginApi?.tr("settings.font.search-placeholder") || "Search fonts..."
  • (L) Line 53: 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.font.size") || "Font Size"
  • (L) Line 54: 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.font.size-desc") || "Text size in points."
  • (L) Line 76: 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.width") || "Widget Width"
  • (L) Line 93: 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.scroll.speed") || "Scroll Speed"
  • (L) Line 110: 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.scroll.mode.title") || "Scroll Mode"
  • (L) Line 114: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.always") || "Always Scroll",
  • (L) Line 118: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.hover") || "Scroll on Hover",
  • (L) Line 122: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.never") || "Don't Scroll",
  • (L) Line 131: 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.scroll.adapt") || "Adapt scroll speed to line"
  • (L) Line 132: 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.scroll.adapt-desc") || "Change scroll speed based on length of line"
  • (L) Line 140: 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.hide-when-empty") || "Hide when empty"
  • (L) Line 148: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("show-when-paused") || "Show display when paused"

@Pever3ll Pever3ll marked this pull request as ready for review April 3, 2026 22:53
@Pever3ll Pever3ll closed this Apr 3, 2026
@Pever3ll Pever3ll reopened this Apr 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Manifest Check


File: lyrics-fetch/manifest.json

+  "repository": "https://github.com/pever3ll/noctalia-plugins"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (L) Line 140: 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.title") || "Settings",

File: lyrics-fetch/Main.qml

  • (L) Line 35: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("lyrics.paused") || "Music paused"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return pluginApi?.tr("lyrics.loading") || "Wait Loading 🪿"

File: lyrics-fetch/Settings.qml

  • (L) Line 38: 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.font.title") || "Font Family"
  • (L) Line 39: 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.font.desc") || "Select the font for lyrics."
  • (L) Line 45: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        placeholder: pluginApi?.tr("settings.font.placeholder") || "Select a font..."
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        searchPlaceholder: pluginApi?.tr("settings.font.search-placeholder") || "Search fonts..."
  • (L) Line 53: 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.font.size") || "Font Size"
  • (L) Line 54: 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.font.size-desc") || "Text size in points."
  • (L) Line 76: 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.width") || "Widget Width"
  • (L) Line 93: 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.scroll.speed") || "Scroll Speed"
  • (L) Line 110: 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.scroll.mode.title") || "Scroll Mode"
  • (L) Line 114: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.always") || "Always Scroll",
  • (L) Line 118: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.hover") || "Scroll on Hover",
  • (L) Line 122: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.never") || "Don't Scroll",
  • (L) Line 131: 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.scroll.adapt") || "Adapt scroll speed to line"
  • (L) Line 132: 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.scroll.adapt-desc") || "Change scroll speed based on length of line"
  • (L) Line 140: 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.hide-when-empty") || "Hide when empty"
  • (L) Line 148: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("show-when-paused") || "Show display when paused"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Automatic Code Quality Review


File: lyrics-fetch/BarWidget.qml

  • (L) Line 140: 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.title") || "Settings",

File: lyrics-fetch/Main.qml

  • (L) Line 35: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("lyrics.paused") || "Music paused"
  • (L) Line 40: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return pluginApi?.tr("lyrics.loading") || "Wait Loading 🪿"

File: lyrics-fetch/Settings.qml

  • (L) Line 38: 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.font.title") || "Font Family"
  • (L) Line 39: 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.font.desc") || "Select the font for lyrics."
  • (L) Line 45: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        placeholder: pluginApi?.tr("settings.font.placeholder") || "Select a font..."
  • (L) Line 46: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        searchPlaceholder: pluginApi?.tr("settings.font.search-placeholder") || "Search fonts..."
  • (L) Line 53: 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.font.size") || "Font Size"
  • (L) Line 54: 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.font.size-desc") || "Text size in points."
  • (L) Line 76: 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.width") || "Widget Width"
  • (L) Line 93: 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.scroll.speed") || "Scroll Speed"
  • (L) Line 110: 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.scroll.mode.title") || "Scroll Mode"
  • (L) Line 114: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.always") || "Always Scroll",
  • (L) Line 118: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.hover") || "Scroll on Hover",
  • (L) Line 122: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                name: pluginApi?.tr("settings.scroll.mode.never") || "Don't Scroll",
  • (L) Line 131: 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.scroll.adapt") || "Adapt scroll speed to line"
  • (L) Line 132: 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.scroll.adapt-desc") || "Change scroll speed based on length of line"
  • (L) Line 140: 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.hide-when-empty") || "Hide when empty"
  • (L) Line 148: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("show-when-paused") || "Show display when paused"

@spiros132
Copy link
Copy Markdown
Collaborator

Is this PR ready for review? :)

@Pever3ll
Copy link
Copy Markdown
Author

Pever3ll commented Apr 9, 2026

Is this PR ready for review? :)

yes!

Copy link
Copy Markdown
Collaborator

@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 minor feedback about the PR, otherwise ready to be merged :)

Comment thread lyrics-fetch/Main.qml Outdated
// Logger.d("songSeekProc", "playing:", data === "Playing")
// Logger.d("songSeekProc", "wasPlaying:", songSeekProc.lastState === "Playing")
if (data === "Playing" && songSeekProc.lastState === "Playing") {
Logger.d("songSeekProc", "seeked")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I would suggest using the plugin name here. For example instead of using the songSeekProc, use LyricsFetch

Comment thread lyrics-fetch/Main.qml Outdated
try {
lyrics = JSON.parse(output)?.syncedLyrics?.toString() || ""
} catch (e) {
Logger.e("fetchLyricProc", "Error parsing JSON:", e)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Here as well, prefer for the first argument to be the plugin name, and maybe then describe where you are in the code. For example: `Logger.e("LyricsFetch", "Fetching Lyrics Process | Error parsing JSON:", e)

Comment thread lyrics-fetch/Main.qml Outdated
Logger.e("fetchLyricProc", "Error parsing JSON:", e)
}
if (!lyrics) {
Logger.e("fetchLyricProc", "No synced lyrics")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Here as well, use your plugins name.

@Pever3ll
Copy link
Copy Markdown
Author

Pever3ll commented Apr 9, 2026

Done!

Copy link
Copy Markdown
Collaborator

@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! Thank you so much for the PR! :D

@ItsLemmy

@spiros132 spiros132 merged commit 5042466 into noctalia-dev:main Apr 13, 2026
2 checks passed
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