Changelog

New features, fixes and the work behind Drape, from the first commit onward. Browse daily highlights, then expand a day to see every commit.

108 commits since . History through 4d4a813. View the latest Git history.

Update your install

Live wallpapers on more desktops and colorful audio visualizations

  • Add MATE/X11 live wallpapers while keeping Caja’s icons and desktop input. Present frames through its shared background and restore the exact original pixels on Stop, Quit or loss of the player connection; preserve externally changed wallpapers. Use software X11 video at 30 FPS to avoid uncaptured hardware overlays. Verify video, animations and audio on three-monitor MATE/Compiz, and video plus animations on Marco with and without compositing.
  • Update the website homepage with a dedicated live-wallpaper guide, previews of all nine audio visualizers, source requirements, playback controls and current desktop support.
  • Add a GNOME/X11 host for local videos, XScreenSaver animations and audio visualizations, verified on GNOME 48.7 across three monitors. Keep wallpaper surfaces behind ordinary windows and existing icon hosts, use GNOME’s screen-lock service, and allow playback to continue with the main window hidden even without a tray extension. Reopen Drape for controls or use the new Quit Drape action. GNOME/Wayland remains unsupported.
  • Expand live audio wallpapers to nine styles with mirrored spectrum, circular wave, layered ribbons, orbiting lights and spectrum spiral. Add seven color modes, including custom two-color gradients and Rainbow, Aurora, Sunset, Fire & gold and Ocean palettes. Preview the palette and cycle colors smoothly at three speeds; changes apply live and persist. Pause freezes animation, silence avoids continuous repainting, and older preferences load with compatible defaults.
View 4 commits
  1. 4d4a813feat: add MATE X11 live wallpaper support
  2. dd2873cdocs: describe live wallpaper sources and GNOME support
  3. 0c1fe8dfeat: add live wallpaper sources and GNOME X11 support
  4. 521152ffix: keep update notifications in the header

Cinnamon video wallpapers and clearer theme compatibility

  • Switch live-wallpaper selections and controls automatically during playback while preserving a manual pause. Add per-animation XScreenSaver settings dialogs from installed metadata, save choices independently, and offer Apply, Cancel and Restore defaults without changing the screensaver daemon configuration.
  • Add XScreenSaver animations and audio visualizations as live-wallpaper sources, with shared tray and pause/stop controls. Audio offers bars, curves, rings and blocks, color selection, and independent Desktop audio / Microphone checkboxes. Confirm optional package installation, keep capture local and shared across monitors, and separate desktop hosting from rendering for future GNOME, MATE and Xfce support. The first host remains Cinnamon/X11.
  • Show available Drape updates only in the persistent header button; remove the duplicate banner action.
  • Fix 4K wallpaper crashes at loop boundaries on NVIDIA by using copy-mode hardware decoding, OpenGL output and bounded decoder threads. Recover from player exits or startup timeouts through two bounded software fallbacks, preserve pause and icon layering, and retain capped per-monitor logs instead of discarding diagnostics.
  • Add local video wallpapers for Cinnamon on X11. Remember MP4, WebM and other local videos, loop silently on all monitors, choose Fill or Fit, pause while locked and restore the static wallpaper with Stop. Keep desktop icons visible and clickable above the video; other desktops and Wayland remain unsupported in this first version.
  • Keep Drape in the system tray after enabling video playback, using Drape’s own logo. Closing the main window hides it; tray actions reopen Drape, pause or resume, stop the wallpaper, and quit with player cleanup. Existing menu and login-startup entries are left unchanged.
  • Treat missing Cinnamon dialog selectors as cosmetic warnings. Keep these styles visible and offer Install anyway before copying, or Apply anyway for existing installations. Remember per-component consent across restarts, theme packs and saved configurations; terminal installs use y/n. Cancel preserves files and appearance, confirmation reuses the current download, and raw compatibility evidence remains unchanged.
  • Recognize quoted and unquoted Cinnamon CSS imports, avoiding false unverified results for styles with valid imported dialog rules. Recheck older unknown Cinnamon evidence while retaining unaffected archive caches.
  • Explain why a detected Cinnamon component cannot apply: missing dialog styles for the current Cinnamon release, unreadable stylesheet imports or an unknown version. Show specific feedback on cards, Apply tooltips and rejection messages instead of implying a theme component is absent.
  • When a catalog download contains no recognized theme components, try its next download variant. Explicitly selected files still report their own failure; transport and extraction errors retain their original handling.
View 10 commits
  1. 23510d2docs: describe video playback recovery and diagnostics
  2. 8546fe8test: use a valid Cinnamon stylesheet in theme pack fixture
  3. 2f1ea6afix: recover video wallpapers from graphics driver failures
  4. 36a39bddocs: document video wallpapers and tray behavior
  5. e258324feat: add Cinnamon video wallpapers and tray controls
  6. 69a49d9docs: describe explicit Cinnamon style overrides
  7. aa5abeffeat: allow incomplete Cinnamon styles with explicit consent
  8. 40f6366docs: document Cinnamon import checks and variant fallback
  9. 97d4ceafix: try another variant when a download contains no theme
  10. 8406e24fix: resolve Cinnamon CSS imports and explain rejected styles

Clear theme engines and reversible Qt appearance

  • Resolve each archive download gateway once per compatibility inspection, then reuse the storage URL for ZIP range reads and expanded tar prefixes. This avoids repeatedly consuming Pling gateway requests for the same file; signed storage links remain temporary and are never exported.
  • Persist server rate-limit cooldowns across worker cancellation and Drape restarts. New remote checks wait through the saved deadline without recording incompatibility, while cached evidence and offline inspections remain available. The app also honors a scanner cooldown for manual downloads from the same host.
  • Keep a persistent Update available action in the app header so theme notifications cannot hide it. Check shortly after each launch and hourly while open, respect the automatic-check preference, and offer review plus Update and restart after explicit confirmation. Updates wait for ongoing theme configuration operations.
  • Add Collections → My configurations to save currently selected appearance components as named personal theme combinations. Review current-to-saved changes before applying selected components, with missing-file and desktop compatibility checks, rename/delete actions and durable local records with backups.
  • Give hovered cards immediate compatibility inspection priority, including card labels and controls. Hover skips the scroll-idle wait while preserving a running check, cached evidence, job spacing and server cooldowns.
  • Continue inspecting visible theme cards when Drape loses window focus. Hidden sections and off-screen cards remain excluded, and leaving the viewport still cancels a check.
  • Shortened the idle compatibility scanner’s gap between theme checks from fifteen to ten seconds. Requests within a check remain paced at ten seconds, and server Retry-After cooldowns continue to take priority.
  • Prevent one visible theme with many distro/color downloads from monopolizing compatibility checks. Automatic checks stop when useful cached contents are available, yield between cards, cap unrecognized-file attempts and increase pacing to ten seconds between requests and fifteen seconds between jobs. Rate-limit delays remain honored; exhaustive variant checks stay available in the explicit worker.
  • Reuse unchanged installed-theme evidence across launches after a small metadata fingerprint check, instead of rereading theme trees every time. Changed download metadata, engine structure, Cinnamon style metadata or inspection rules trigger a local rescan; the startup summary distinguishes reused and inspected themes.
  • Show known contents from cached alternative downloads on cards, even when the preferred download is still uninspected. Component absence is only claimed after every variant has complete evidence. Cards distinguish pending or unrecognized contents, and scanner status explicitly reports inactive-window pauses rather than implying every visible theme is cached.
  • Fixed cached preview completion running inside a GTK draw callback, where removing an overlay spinner could invalidate GTK’s drawing child list. Preview delivery and scanner indicator updates now wait for the main-loop idle phase; queued results still skip destroyed widgets. Added cached-preview scrolling and callback-lifecycle regressions while retaining immediate off-screen worker cancellation.
  • Added visible compatibility scanner status in the main window and uploader profiles, per-card activity spinners and a count-based progress bar for saved-theme indexing. Rate-limit countdowns, scrolling waits, cancellations and failures are explicit; local progress reaches 100% only after the worker exits successfully.
  • Clarified native GNOME theme refresh instructions: current GNOME/X11 draws non-GTK app title bars, including Kitty’s, through a shared GTK 4/libadwaita frame renderer. Logout/login refreshes that renderer; restarting Kitty only refreshes Kitty.
  • Inspect downloaded archives locally during installation and cache all discovered components before desktop filtering. An immediate bounded offline startup worker backfills existing installations, retaining partial evidence without claiming the original archive lacked discarded components. Cache failures cannot break installation, and local installed subsets are kept out of community exports.
  • Added idle checks for visible theme cards in browsing and uploader profiles. One bounded worker runs outside GTK, paces requests and cancels when its card leaves view or the section closes. Rate limits pause the queue without saving incompatibility. Complete evidence persists across launches until the download revision or inspection rules change; partial listings are cached for a day. Automatic checks have a menu toggle.
  • Fixed GTK 4 themes that import styles and assets from gtk.gresource. Drape now prepares bounded, content-addressed local resource files and rewrites CSS resource URLs before validation and application, so native GNOME apps do not need to register the theme bundle. Missing bundles and invalid GTK 4 syntax still fail safely.
  • Added a dedicated GNOME/libadwaita section for GTK 4 styles, plus native GNOME setup and restoration. Apply validates CSS in an isolated GTK 4 process, confirms the user stylesheet replacement and preserves the original file or symlink across theme switches. Native GTK 4-only themes can install and appear in Installed; GTK 3-only downloads are rejected from this section. Dark-mode imports follow GNOME's preference at apply time. Native apps need a restart, and GTK 4 files alone do not guarantee coverage of every libadwaita widget.
  • Grouped navigation by theme engine and scope: GTK applications, Qt/Kvantum applications, desktop shells, window decorations, shared assets and startup/login screens. Added catalog explanations, including GNOME Files/Settings libadwaita limitations, and replaced ambiguous Controls labels with GTK applications. Filtering and saved page IDs are preserved.
  • Added visible theme type explanations to uploader profile cards, including GTK controls, Kvantum Qt widgets, desktop styles and window borders. Catalog labels are kept separate from compatibility evidence, with a clear fallback for unrecognized uploads.
  • Fixed Qt and cursor setup for SDDM sessions using zsh or a separate bash login profile. Appearance exports now cover the active shell and X session startup files, preserving other login setup.
  • Made the Qt appearance page show saved setup status and the selected theme, refreshing immediately after enabling or restoring defaults.
  • Replaced the temporary OpenSnitch relaunch control with generic session-wide Qt setup and desktop activation status. Settings distinguish saved configuration from the current launcher's environment and explain when logout/login is required.
  • Added Restore previous Qt appearance with an original-settings backup retained across theme switches. Restoration preserves unrelated edits, refuses conflicting changes and explains the limits of older setups without backups. Qt setup leaves menu entries and autostart commands untouched; any future launcher edits require an exact-change confirmation and undo.
View 34 commits
  1. fbe4b91docs: explain archive request reuse and persistent cooldowns
  2. 7d521cbfix: preserve compatibility cooldowns across app restarts
  3. 822854afix: reuse resolved storage URLs during archive inspection
  4. ebfb68fdocs: describe personal configurations and persistent update notices
  5. 6bce565feat: keep update availability visible and check while open
  6. aedd7f2feat: save and apply personal appearance configurations
  7. ff02daadocs: explain hover priority and background compatibility checks
  8. 44170c6feat: prioritize hovered cards for compatibility inspection
  9. 91c139cfix: keep visible compatibility checks running without focus
  10. 0823832perf: shorten pauses between visible theme checks
  11. 64ac7dadocs: describe reusable cache and conservative visible inspection
  12. 88db8adfix: share visible checks fairly and show cached variant contents
  13. f30c875fix: reuse unchanged installed-theme inspection evidence
  14. 2910423docs: record GTK scrolling crash fix
  15. a78efc1fix: defer cached preview and scanner updates outside GTK drawing
  16. c2c1f54docs: describe scanner status and GNOME frame styling
  17. 0c1d4affix: explain GNOME X11 title-bar theme refresh
  18. ce70d98feat: show compatibility scanner activity and saved-theme progress
  19. 52e405bdocs: explain offline theme compatibility indexing
  20. 3177d25feat: cache downloaded theme evidence and backfill local installs
  21. 5c34263docs: explain visible-card inspection and persistent evidence
  22. ac00e6ffeat: inspect idle visible cards with cancellable cached workers
  23. a2d6c5adocs: explain GTK resource-packed theme support
  24. b258ef3fix: resolve bundled GTK resources for native GNOME styles
  25. d59a8c5docs: explain native GNOME GTK 4 themes and restoration
  26. fb6810efeat: add reversible native GNOME and libadwaita styling
  27. 512a235docs: explain theme engines and GNOME appearance limits
  28. 74db8c8feat: organize theme navigation by engine and scope
  29. 193dc2adocs: record profile theme type explanations
  30. 05182acfeat: explain theme types in uploader profile listings
  31. 09d798ddocs: explain session-wide Qt setup and restoration
  32. 6c82cf9feat: make session-wide Qt appearance reversible
  33. 457dfd3docs: explain repaired Qt activation and OpenSnitch integration
  34. ab5de22fix: activate Qt appearance in shell-specific sessions and OpenSnitch

Theme packs, compatibility and reliable browsing

  • Made cursor application consistent for non-GTK apps such as Kitty by publishing Xcursor defaults, X11 resources and cursor launch settings, while preserving unrelated profile, Qt and font settings. Applying a cursor now explains when an app restart is needed.
  • Added Qt application themes through Kvantum on any desktop. Qt appearance settings detect Qt 5/6 plugins, offer repository installation and can enable or remove the session style override. Theme packs include Qt companions; first setup explains the required logout/login.
  • Added a Theme packs category for downloadable bundles that contain usable components for the current desktop. Multi-component installs offer to apply everything, apply the current section or apply later.
  • Expanded compatibility filtering across desktops, window managers and Cinnamon versions. Background archive checks build a local SQLite index with import/export support while cards load immediately.
  • Added smooth card transitions. Off-screen cards wait until they re-enter the viewport before disappearing, preserving the rows currently in view.
  • Remembered scroll positions across launches for browsing, Installed categories and settings. Added uploader profiles with normal theme cards, ratings, pagination and an expanded view.
  • Made large Installed collections load on demand: only the selected category builds cards, and expensive previews and controls wait until a card enters the viewport. Shared compatibility checks across categories and removed repeated full-record reads while building Apply controls. Actions still read fresh records, and bulk selection and saved scroll positions are preserved.
  • Moved archive compatibility scanning out of the app into an independent headless worker with bounded reads, decompression and process memory. Browsing now uses existing local/imported evidence and keeps unknown themes visible. Added portable snapshot generation and explicit HTTPS snapshot imports for future shared hosting.
  • Discarded asynchronous preview callbacks after their GTK widget is destroyed, avoiding updates to cards removed during section changes.
  • Added prompts to install missing dependencies, app update notifications and Update and restart. Fresh Arch/CachyOS sessions can refresh missing package databases after the user agrees to a full system upgrade.
  • Kept rate-limited checks pending without saving incompatibility evidence. One retry queue per host waits through the cooldown and runs checks sequentially; leaving a page cancels waiting checks. Refused download links are refreshed once rather than on every retry.
  • Separated failed requests from genuine empty inspections, bounded Retry-After delays and fixed rate limits hidden inside ZIP errors. Background archive reads fail fast on server errors; cards retain known component information during deferred checks.
  • Formatted the Python codebase and clarified ambiguous sections. Updated installation, update and compatibility documentation.
View 22 commits
  1. a4686c5docs: record cursor consistency fix
  2. 732a1affix: publish cursor themes for non-GTK applications
  3. d571129docs: publish Qt support and setup instructions
  4. d1f3943feat: theme Qt widget applications with Kvantum
  5. bcdcf5adocs: record compatibility worker and safer section switching
  6. 089c50cfix: discard preview callbacks after widget destruction
  7. 16a1aa8fix: browse from local evidence without in-app archive scanning
  8. fdb5387feat: build portable compatibility evidence in a headless worker
  9. 01c46f7docs: record Installed-page loading improvements in changelog
  10. b8dcf66fix: load installed categories and card content on demand
  11. 6219f35docs: add website changelog covering the full project history
  12. e708e23fix: queue rate-limited checks per host and refresh links only when refused
  13. 0e9be18fix: separate inspection failures and stagger fresh-link retries
  14. c7bb6c5fix: keep rate-limited themes pending and respect retry delays
  15. d21ed5efix: defer off-screen card removal until viewport re-entry
  16. edcf09cfeat: browse uploader profiles in expandable catalog views
  17. e6dd950feat: remember scroll positions across app launches
  18. 8a75e47feat: choose all or current-section components after installing
  19. b61abeafeat: filter theme compatibility with persistent local evidence
  20. 74bcf70fix: refresh missing pacman databases during dependency setup
  21. 8c6b36fstyle: format Python modules and clarify code sections
  22. 3c2f94aAdd theme packs, compatibility filters and app updates

Keep installed themes recorded

  • Fixed installation records being lost when installs or metadata updates overlap. Theme operations and record updates now use thread and process locks.
  • Added durable atomic saves and a previous-version backup. Unreadable records are reported instead of silently replaced, and failed saves preserve existing records.
View 1 commit
  1. d67b7d6Fix concurrent installation record loss

KDE, Xfce and clearer installation progress

  • Added KDE Plasma support and desktop-aware catalog selection, including Plasma styles, global themes, color schemes and Aurorae window borders.
  • Added Xfce appearance controls and panel presets with Undo, along with wallpaper handling and Xfwm previews. Added bulk removal of installed wallpapers and theme packs.
  • Hid unsupported theme sections for the current desktop and window manager. Installation progress now includes downloading, extraction, copying, caching and saving records.
  • Split the GTK interface into focused modules and refreshed the website, README and screenshots.
View 7 commits
  1. 1c0ae6cInclude every installation stage in overall progress
  2. 98349b6Hide unsupported theme sections and show installation stages
  3. e667c1bRefactor GTK interface into focused UI modules
  4. e6ebfaaMerge remote-tracking branch 'origin/main'
  5. 1bed9aeAdd Xfce appearance controls and bulk removal with refreshed screenshots
  6. f19c0e0README and website: cover the Sep 26 features
  7. 4904da2Support KDE and desktop-aware theme selection

Faster browsing and a clearer view of your desktop

  • Added cached catalog results, smaller previews, background loading and infinite scroll. Fixed hidden tabs starving visible previews and reduced animated-preview CPU use with automatic and hover-only playback.
  • Added an In use view with previews of every active theme component, including themes installed outside Drape. Cards show component glyphs based on archive contents and warn about misplaced uploads.
  • Flagged Cinnamon themes using pre-5.4 dialog styles and warned before applying them. Added a sample window and an optional check showing which open apps use window-manager borders.
  • Added a Window manager settings page with Compiz installation, embedded settings, live package progress and removal of packages Drape installed. Cinnamon gets a separate Compiz login session; MATE and Xfce can switch live.
  • Added replacement of conflicting theme names, including active boot and login themes. Improved the layout for small screens, separated settings in the sidebar and added Drape's application icon.
View 18 commits
  1. 1775d80Replacing the boot splash (or login theme) in use with a same-named one
  2. d086c71Compiz: real progress bar for installs, and a way to remove it again
  3. 101de6eGlyphs on cards showing what a download really contains
  4. 88b9872Window manager page follows installs and removals made outside drape
  5. f0ad386Window manager settings page with Compiz and ccsm built in
  6. 16de61cWindow borders help: note and buttons on one row to save height
  7. c076238Window borders: sample window, and an opt-in check of open windows
  8. adc4aeaExplain which apps window borders affect
  9. e81309fInstalled: 'In use' tab showing every part of the current look
  10. b87eaf1Offer to replace an installed item when theme names clash
  11. 172671aFit small screens: minimum width 1487 px -> ~600 px
  12. 9169f0cApp icon: the drape mark from the website
  13. 694f589Animated previews that watch their CPU cost; idle CPU 21% -> 4%
  14. 7528b93Fix previews stalling: hidden tabs no longer infinite-scroll forever
  15. f894e07Load faster on slow connections, show progress, infinite scroll
  16. cba3a12Sidebar: 'Settings' divider between theme pages and settings pages
  17. 1b90b37Faster browsing, animated previews, screenshots without placeholders
  18. 3052688Warn about Desktop themes made for Cinnamon before 5.4

Drape begins

  • Introduced a per-component Linux theme manager backed by GNOME-Look: browse, install and apply icons, cursors, GTK controls, window borders, Cinnamon themes and wallpapers. Added command-line commands and support for catalog install links.
  • Verified downloads, unpacked nested archives, classified theme contents and tracked installs for updates and removal. Added conversion of Windows cursor packs to Linux Xcursor themes and improved download selection.
  • Built the Installed picture grid with category tabs, previews, individual wallpaper removal and an installed-files viewer. Added a variant picker with live previews drawn from theme files.
  • Added boot splash, login screen and lock screen support, including Plymouth, SDDM and LightDM themes. A privileged helper applies system changes with administrator authentication and tracks files Drape owns.
  • Launched the project website, published screenshots and documentation, and added the GPL-3.0 license.
View 12 commits
  1. 3b85c6bWebsite and README: boot/login/lock, variant previews, files view
  2. 33a25a8Count links to folders in installed file lists
  3. 57acf66Show installed files from the installed theme grid
  4. 7cfbe50Boot splash, login screen and lock screen support
  5. eea9628Recognise webkit greeter themes; don't mistake web assets for wallpapers
  6. d0d92c0Detect login manager, greeter and Plymouth; stage system themes
  7. a25e28fAdd privileged helper for boot splash and login screen themes
  8. da95b27Variant picker with live previews
  9. ad7601dInstalled page: tabs and picture grid, like browsing
  10. b562f14Fix cursors: convert Windows cursor packs, pick the right download
  11. a4f50dbAdd thumbnails to Installed page, project website and license
  12. ccdfcaadrape: per-component theme manager backed by gnome-look.org