Commit Graph
5 Commits
Author SHA1 Message Date
jacob-sabella fa742c0e6e chore(w-engine): bump to 1.1.1
Patch release for the startup palette sync fix.
2026-08-04 17:59:08 -05:00
jacob-sabella e677f954c5 fix(w-engine): sync palette when restoring wallpaper on startup
The startup restore relaunched linux-wallpaperengine for the last
selected wallpaper but never re-applied the still that Noctalia derives
its palette from, so colors after login came from whatever wallpaper the
shell restored on its own. Every other path that puts a wallpaper up
pairs launch() with syncPalette(); this one now does too.

Switching wallpapers away and back was the only way to correct it, since
that runs apply().
2026-08-04 17:48:42 -05:00
Jacob SabellaandGitHub 68c64f31b1 feat(w-engine): sync shell palette, cycle wallpapers, expose engine options (#161)
Noctalia derives its color scheme from whatever image is set as the
wallpaper. A live Wallpaper Engine scene is not an image the shell can
read, so the palette stayed pinned to whatever wallpaper came before.
Applying a wallpaper now also hands Noctalia a still of it -- the
Workshop preview, or a decoded frame for video wallpapers when ffmpeg is
present -- so the configured generator, scheme, mode and templates all
run exactly as they do for an ordinary wallpaper. The previous wallpaper
is saved per output and restored on stop. Toggle: sync_colors.

Add multi-select with timed cycling. Selected wallpapers carry a badge
showing their place in the rotation, and play in selection order or
shuffled; random plays a full pass before reshuffling so nothing repeats
back to back. Selection, interval and order are per output.

Add per-wallpaper settings behind a gear on each tile: the
linux-wallpaperengine switches (scaling, clamp, layer, FPS, volume,
mute, particles, mouse, parallax, fullscreen pause), plus the
wallpaper's own properties parsed from project.json and rendered by
declared type, honoring each property's visibility condition.

Move process ownership, the palette sync and the cycle timer into the
service. The panel is now pure UI talking over noctalia.state, so a
cycle keeps running while the panel is closed and one owner holds the
pid files.

Fix three process-handling bugs along the way:

- The running-process check anchored on "^linux-wallpaperengine", but
  packagers ship a wrapper that execs ./linux-wallpaperengine from its
  own directory, so no process ever matched and every apply leaked
  another GPU client onto the same output.
- Current builds ignore both SIGTERM and SIGINT, so the kill never
  landed either. Stopping now escalates to SIGKILL after a grace period.
- The reload sweep used pkill -f, which matches the shell running the
  command itself and killed it part way through, leaving orphans.

Cache a static still per wallpaper for the grid. Workshop previews are
frequently animated GIFs, and the grid decoded and animated all of them
continuously for as long as the panel was open.

plugin_api moves 3 -> 9: tile and control callbacks are Luau closures
rather than named globals, which the host resolves from API 9 onwards.
This is what the plugin already required; the manifest understated it.
2026-07-30 21:09:15 -04:00
Lemmy be0b03d85d chore(i18n): update 2026-07-27 00:39:41 -04:00
Tadomika-AriandGitHub cd80c56409 feat!: add W Engine plugin (#81)
* feat!: add W Engine plugin

* feat!: add en translation

* fix: rm useless line

* feat!: add preview window in a pannel

* fix: rm no dependencies tools

* feat!: update thumbnail with new image

* feat: add screen choose with selector and add id check for warn string command folder

* docs: add dependencies on toml and read me

* fix: rm pkill and use kill

* feat!: add multiple path check, default output, select where set wallpaper

* feat!: rm debug notif

* docs: add new action documentation

* feat!: add new service for good restart (pkill all instance linux-wallpaper and rm all tmp file created by w engine)

* feat!: add check if pid is a linux-wallpaper instance

* docs: add depedencie and new entries

* feat!: support personnal path with json load

* docs: add docs for custom path

* feat!: use new api function for show all wallpaper

* fix: rm useless notify
2026-07-25 20:22:52 -04:00