Skip to content

feat(linux-wallpaperengine-controller): release 1.3.0 with panel and runtime improvements#785

Draft
PaloMiku wants to merge 5 commits into
noctalia-dev:mainfrom
PaloMiku:feat/linux-wallpaperengine-controller-1.3.0
Draft

feat(linux-wallpaperengine-controller): release 1.3.0 with panel and runtime improvements#785
PaloMiku wants to merge 5 commits into
noctalia-dev:mainfrom
PaloMiku:feat/linux-wallpaperengine-controller-1.3.0

Conversation

@PaloMiku
Copy link
Copy Markdown
Contributor

Summary

  • Release linux-wallpaperengine-controller 1.3.0 with a stronger focus on panel usability, settings structure, and more reliable wallpaper apply/runtime behavior
  • Add configurable sidebar badges, an optional sidebar description toggle, richer wallpaper scan metadata, and more detailed compatibility/property status feedback
  • Refactor panel, runtime, and shared helper logic to improve maintainability, while also improving wallpaper color sync and cache reuse flows

What Changed

  • Bump plugin version from 1.2.1 to 1.3.0
  • Rework Settings.qml into a tabbed settings layout to avoid unstable window sizing when switching between sections
  • Add a toggle for showing wallpaper descriptions in the sidebar
  • Add badge customization support:
    • enable or disable individual badges
    • reorder badges
    • persist badge order and visibility in plugin settings
  • Increase the default wallpaper scan cache duration from 5 minutes to 10 minutes
  • Normalize default settings definitions for current panel and badge-related configuration
  • Remove the unused assetsDir setting
  • Refactor the panel structure into clearer panel, wallpaper, runtime, and shared components and helpers
  • Replace the older wallpaper grid, preview card, and sidebar components with new shared implementations
  • Consolidate filter handling and add debounced search and property loading for smoother panel interaction
  • Extend wallpaper scan results with richer metadata, including:
    • embedded audio support
    • audio reactive capability
    • approved status
    • description text
  • Improve compatibility/property scan feedback by distinguishing between limited and failed states
  • Improve runtime option application so wallpaper apply and engine restart behavior stay in sync and avoid transient incorrect states
  • Improve wallpaper color screenshot reuse and sync behavior, and add update-noctalia-wallpapers-cache.sh
  • Update README.md
  • Update translations in en, ja, ru, zh-CN, and zh-TW

Why

This update is focused on three things: better stability, better usability, and better maintainability. Alongside visible improvements to filtering, previewing, applying wallpapers, and configuring the plugin, it also cleans up the internal structure so future feature work and fixes are easier to implement.

- Enhanced the zh-TW localization for various UI components, including tooltips, menu items, and panel settings.
- Added new keys for better user experience and clarity in the interface.
- Updated the manifest version to 1.3.0 and adjusted default settings for improved functionality.
- Improved wallpaper scanning scripts to enhance metadata extraction and compatibility checks.
- Introduced a new script to update Noctalia's global wallpaper cache for better performance.
Copilot AI review requested due to automatic review settings April 28, 2026 09:07
@github-actions
Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: linux-wallpaperengine-controller/Settings.qml

  • (H) Line 266: Do not use hardcoded values, always prefer to use the Style singleton instead
+              radius: 1.5
  • (H) Line 278: Do not use hardcoded values, always prefer to use the Style singleton instead
+              border.width: 1
  • (H) Line 330: Do not use hardcoded values, always prefer to use the Style singleton instead
+                  border.width: 1

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Release linux-wallpaperengine-controller v1.3.0, focusing on panel usability (sidebar/preview/badges), richer wallpaper metadata scanning, and runtime/apply reliability improvements.

Changes:

  • Add configurable sidebar badges + optional sidebar description rendering, plus new shared panel/grid/sidebar components.
  • Extend wallpaper scan output with additional metadata (audio/reactive/approved/description) and adjust compatibility scanning statuses.
  • Refactor shared/runtime/panel helper logic; bump default scan cache duration and update translations/docs.

Reviewed changes

Copilot reviewed 36 out of 37 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
linux-wallpaperengine-controller/scripts/update-noctalia-wallpapers-cache.sh New helper script to update Noctalia’s wallpaper cache JSON for a monitor.
linux-wallpaperengine-controller/scripts/scan-wallpapers.sh Reworked scanning to use Python and emit richer metadata columns for the panel.
linux-wallpaperengine-controller/scripts/scan-properties-compatibility.sh Improve compatibility scan results to distinguish limited vs failed.
linux-wallpaperengine-controller/manifest.json Version bump to 1.3.0, remove assetsDir, add defaults for sidebar/badges/pagination and adjust cache duration default.
linux-wallpaperengine-controller/i18n/en.json Update/expand strings for new panel actions, badges, pagination, and settings.
linux-wallpaperengine-controller/i18n/ja.json Translation updates aligned with new panel/settings features.
linux-wallpaperengine-controller/i18n/ru.json Translation updates aligned with new panel/settings features.
linux-wallpaperengine-controller/i18n/zh-CN.json Translation updates aligned with new panel/settings features.
linux-wallpaperengine-controller/i18n/zh-TW.json Translation updates aligned with new panel/settings features.
linux-wallpaperengine-controller/helpers/shared/ColorCacheHelpers.js New shared helpers for cache paths, reuse decisions, formatting, and clear-cache command building.
linux-wallpaperengine-controller/helpers/runtime/WallpaperColorHelpers.js New runtime helpers to normalize color-sync requests and build capture commands.
linux-wallpaperengine-controller/helpers/runtime/EngineHelpers.js New runtime helpers for error summarization and engine command construction.
linux-wallpaperengine-controller/helpers/panel/WallpaperUiHelpers.js New panel helpers for labels/icons for types, sorting, and resolution filters.
linux-wallpaperengine-controller/helpers/panel/WallpaperMetaHelpers.js Remove unused workshop URL helper; simplify resolution filter bucketing.
linux-wallpaperengine-controller/helpers/panel/WallpaperFilterHelpers.js New centralized filtering/sorting/pagination helpers for panel wallpaper lists.
linux-wallpaperengine-controller/helpers/panel/PropertyHelpers.js New panel property parsing/serialization helpers (replacing older shared version).
linux-wallpaperengine-controller/helpers/panel/DescriptionHelpers.js New helper to safely render richer descriptions (BBCode-ish to RichText + URL linking).
linux-wallpaperengine-controller/helpers/panel/BadgeHelpers.js New helpers for badge order/visibility normalization and settings UI labels/icons.
linux-wallpaperengine-controller/helpers/PropertyHelpers.js Remove old property helper implementation (moved to panel helpers).
linux-wallpaperengine-controller/components/wallpaper/Sidebar.qml New sidebar container wiring preview + apply controls + footer close action.
linux-wallpaperengine-controller/components/wallpaper/PropertiesEditor.qml Refactor property editor to consume a consolidated propertyEditorApi and add image preview support.
linux-wallpaperengine-controller/components/wallpaper/PreviewCard.qml New preview card with badges, info rows, and collapsible rich description block.
linux-wallpaperengine-controller/components/wallpaper/GridSection.qml New wallpaper grid section using shared card grid and badge rendering.
linux-wallpaperengine-controller/components/wallpaper/ApplyControls.qml Refactor apply controls; integrate new property editor component and target selection UI tweaks.
linux-wallpaperengine-controller/components/shared/SidebarPanel.qml New shared sidebar panel container with scrollable content and footer slot.
linux-wallpaperengine-controller/components/shared/CardGridSection.qml New shared grid section with empty state and pagination footer.
linux-wallpaperengine-controller/components/panel/RuntimeErrorBanner.qml Add copy-to-clipboard action and update styling for runtime error display.
linux-wallpaperengine-controller/components/panel/PanelHeader.qml Rework header layout: consolidate actions, update filter/sort button behaviors, remove old resolution dropdown.
linux-wallpaperengine-controller/components/panel/PanelDropdowns.qml Consolidate type + resolution filtering into a single dropdown list with separators.
linux-wallpaperengine-controller/components/WallpaperSidebar.qml Remove legacy sidebar component (replaced by new wallpaper components).
linux-wallpaperengine-controller/components/WallpaperPreviewCard.qml Remove legacy preview card (replaced by new shared implementation).
linux-wallpaperengine-controller/components/WallpaperGridSection.qml Remove legacy grid section (replaced by new shared implementation).
linux-wallpaperengine-controller/Settings.qml Major settings UI refactor to tabbed layout and add badge ordering/enabling + sidebar description toggle.
linux-wallpaperengine-controller/README.md Update feature descriptions to match new panel behavior (ID search wording, sidebar badges).
linux-wallpaperengine-controller/BarWidget.qml Safer settings open call (null-safe manifest access).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread linux-wallpaperengine-controller/scripts/scan-wallpapers.sh
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 good, just one small thing :)

except Exception:
pass

print(f"{d}\t{name}\t{thumb}\t{motion}\t{dynamic}\t{id_val}\t{type_val}\t{resolution}\t{embedded_audio}\t{audio_reactive}\t{bytes_val}:{mtime}\t{approved}\t{description}")
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.

Since this is supposed to be a python script, put it in it's own file instead of having it inline like this.

@spiros132 spiros132 marked this pull request as draft May 14, 2026 11:45
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