Skip to content

Asus Control - #945

Closed
peachoff wants to merge 9 commits into
noctalia-dev:mainfrom
peachoff:main
Closed

Asus Control#945
peachoff wants to merge 9 commits into
noctalia-dev:mainfrom
peachoff:main

Conversation

@peachoff

Copy link
Copy Markdown

ASUS laptop control plugin via asusctl. Features:

  • Power profiles — switch between Quiet/Balanced/Performance from bar or panel, auto-detects available profiles
  • Keyboard LED — brightness control (Off/Low/Medium/High) + aura lighting effects, color picker, zone power management
  • Battery — charge limit slider (20–100%) with one-shot charge to 100%
  • Fan curves — view and toggle per-fan curves, reset to defaults
  • Noctalia sync — power profiles sync bidirectionally with Noctalia Shell, keyboard color syncs from theme

@github-actions

Copy link
Copy Markdown
Contributor

Plugin "asus-control" is missing some required files:

  • preview.*

@github-actions

Copy link
Copy Markdown
Contributor

Automatic Manifest Check


File: registry.json

  • (H) Line 8: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 23: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 42: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 61: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 81: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 100: Do not add the 'official' property. It's automatically false and is NOT needed!
+      "official": false,
  • (H) Line 114: The id can only contain small characters [a-z], numbers [0-9] and dashes [-]
       "id": "asus-um5606-fan-state",
  • (H) Line 117: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 133: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 148: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 166: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 184: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 201: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 217: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 232: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 250: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 268: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 285: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 302: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 319: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 349: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 365: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 396: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 412: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 429: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 444: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 462: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 481: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 494: The id can only contain small characters [a-z], numbers [0-9] and dashes [-]
       "id": "ds4-colors",
  • (H) Line 497: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 530: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 546: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 563: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 581: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 599: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 617: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 649: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 665: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 678: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 699: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 716: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 731: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 763: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
       "repository": "https://github.com/WerWolv/noctalia-kde-connect",
  • (H) Line 781: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 798: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 819: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 835: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 853: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 870: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 885: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 902: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 918: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 935: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 951: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 969: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 986: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1004: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1021: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1038: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1058: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
       "repository": "https://github.com/ido50/noctalia-mpd",
  • (H) Line 1075: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1091: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1109: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1126: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1145: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1162: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1179: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1196: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1214: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1232: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1250: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1265: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1282: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1299: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1316: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1333: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1350: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1366: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1383: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1401: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1418: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1434: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1452: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1468: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1484: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1501: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1516: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1549: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1565: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1601: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1618: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1633: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1646: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1662: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1694: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1713: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1731: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1747: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1765: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1781: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1798: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1815: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1832: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1849: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1868: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1881: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1898: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1916: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1932: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1949: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 1966: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2000: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2018: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2033: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2049: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2065: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2082: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2100: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2118: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2134: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2150: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2165: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2181: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2198: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2216: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,
  • (H) Line 2229: Do not add the 'official' property. It's automatically false and is NOT needed!
       "official": false,

@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: asus-control/BarWidget.qml

  • (L) Line 103: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            { "label": pluginApi?.tr("menu.settings") || "Settings", "action": "settings", "icon": "settings" },
  • (L) Line 104: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            { "label": pluginApi?.tr("menu.refresh") || "Refresh", "action": "refresh", "icon": "refresh" }

File: asus-control/Panel.qml

  • (H) Line 77: Do not use hardcoded values, always prefer to use the Style singleton instead
+                    spacing: 2
  • (L) Line 80: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                        text: pluginApi?.tr("panel.title") || "ASUS Control"
  • (L) Line 95: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                        text: pluginApi?.tr("panel.not-available") || "asusctl not found. Install asusctl to use this plugin."
  • (H) Line 142: Do not use hardcoded values, always prefer to use the Style singleton instead
+                    anchors.margins: 2
  • (H) Line 143: Do not use hardcoded values, always prefer to use the Style singleton instead
+                    spacing: 2
  • (L) Line 199: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                        text: pluginApi?.tr("panel.not-available") || "asusctl not found"
  • (L) Line 212: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("panel.profile") || "Power Profile"
  • (H) Line 289: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                spacing: 4
  • (H) Line 292: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                                    text: "AC"
  • (H) Line 307: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                spacing: 4
  • (H) Line 310: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                                    text: "Battery"
  • (L) Line 346: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("panel.not-available") || "asusctl not found"
  • (L) Line 354: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("panel.led") || "Keyboard LED"
  • (L) Line 361: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: (pluginApi?.tr("led.brightness") || "Brightness") + ": " +
  • (L) Line 427: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("panel.aura") || "Aura Lighting"
  • (L) Line 435: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("aura.sync-active") || "Color is synced to Noctalia theme"
  • (H) Line 447: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                                text: "Effect"
  • (L) Line 476: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                                text: pluginApi?.tr("aura.static-color") || "Static color"
  • (L) Line 493: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                                text: pluginApi?.tr("aura.scheme-colors") || "Quick colors"
  • (H) Line 538: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                            text: "Zones"
  • (H) Line 546: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                            text: "No aura zones detected"
  • (H) Line 557: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                spacing: 4
  • (H) Line 605: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                                spacing: 4
  • (L) Line 659: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                        text: pluginApi?.tr("panel.not-available") || "asusctl not found"
  • (L) Line 672: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("panel.battery") || "Battery"
  • (L) Line 683: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                                text: pluginApi?.tr("battery.charge-limit") || "Charge Limit"
  • (H) Line 702: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                                text: "20%"
  • (H) Line 719: Use translations instead of hardcoded text. Instead of: "Example Label". To: pluginApi?.tr("panel.example-label")
+                                text: "100%"
  • (L) Line 734: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("battery.oneshot") || "Charge to 100% Once"
  • (L) Line 754: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                        text: pluginApi?.tr("panel.not-available") || "asusctl not found"
  • (L) Line 770: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                                text: pluginApi?.tr("panel.fan") || "Fan Curves"
  • (L) Line 817: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                                            return state.enabled ? (pluginApi?.tr("fan.enabled") || "Enabled") : (pluginApi?.tr("fan.disabled") || "Disabled");
  • (H) Line 828: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                        radius: 12
  • (H) Line 836: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                            radius: 10
  • (H) Line 866: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                    spacing: 4
  • (L) Line 898: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                            text: pluginApi?.tr("fan.reset-default") || "Reset to Default"

File: asus-control/Settings.qml

  • (L) Line 29: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return pluginApi?.tr("settings.not-available") || "asusctl is not installed or not in PATH.";
  • (L) Line 31: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            return (pluginApi?.tr("settings.detected") || "Detected:") + " " +
  • (L) Line 47: 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.iconColor.label") || "Icon Color"
  • (L) Line 48: 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.iconColor.desc") || "Color of the bar widget icon."
  • (L) Line 62: 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.pollingEnabled.label") || "Polling"
  • (L) Line 63: 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.pollingEnabled.desc") || "Periodically poll asusctl for status updates."
  • (H) Line 73: Do not use hardcoded values, always prefer to use the Style singleton instead
+        spacing: 4
  • (L) Line 76: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+            text: (pluginApi?.tr("settings.pollingInterval.label") || "Polling Interval") + ": " + root.editPollingIntervalMs + "ms"
  • (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.syncPowerProfiles.label") || "Sync Power Profiles"
  • (L) Line 94: 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.syncPowerProfiles.desc") || "When you change an ASUS profile, also switch the Noctalia power profile (and vice versa)."
  • (L) Line 103: 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.syncAuraColor.label") || "Sync Keyboard Color"
  • (L) Line 104: 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.syncAuraColor.desc") || "Automatically set the keyboard aura color from the current Noctalia theme."
  • (L) Line 114: 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.auraColorSource.label") || "Color Source"
  • (L) Line 115: 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.auraColorSource.desc") || "Which Noctalia theme color to apply to the keyboard."

@peachoff peachoff closed this Jul 12, 2026
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