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.
* added lrc plugin to display lyrics of playing music
* added a small demonstration
* fixed the readme and added proper thumbnail
* added a demo
* trimmed up some deps and removed the demo
---------
Co-authored-by: shin01221 <mohamed@madin372.com>
* fix(workflow): Re-organized the workflow, put the scripts in their own scripts folder
* fix(workflow): Fixed so that we have a default SELECT selection in the issue templates
* fix(workflow): Added a way to run the issue workflows manually as well
* feat(workflow): Added workflow for closing issues with no selected plugin
* fix(workflow): Changed so that we only use one file for jobs that only care about the plugin folders
* fix(workflows): resolve repository root after script move
---------
Co-authored-by: Lemmy <studio@quadbyte.net>
* feat(workflow): Added a workflow to automatically update the issue title so that it contains the plugin name
* improves matching
---------
Co-authored-by: Lemmy <studio@quadbyte.net>
* feat: add tmux-provider plugin
* fix: invalid thumbnail name
* fix: invalid translation keys
* docs: README updated to include launcher provider entry
Also fixed wording for requirements (validation failed for some reason?)
* feat(workflow): Added notify-plugin-authors for issues
fix(workflow): Should be run correctly now
fix(workflow): Added reopened
fix(workflow): Removed cache
fix(workflow): Added a lot, hope this works
fix(workflow): Increment the i
fix(workflow): Maybe?
debug
print cwd
fix: Maybe now works?
fix: maybe
fix: For sure now
fix: Some last fixes before it's done
fix: Now the workflow adds a comment
fix: Format
A lot of commits in this one squashed together
* fix(workflow): Do not use the provided plugin author name since that can be custom written and be another persons name
* fix(workflow): Added propare caching so that we don't reinstall the dependencies everytime
* fix(workflow): Added check for errors that have a very small chance to happen.
* fix(workflow): Fixed some of the 'bugs', it should be fine now with better error handling
* fix(workflow): Added correct guards for the workflow file
* fix(workflow): Changed the name so that it can be used in the other workflow as well.
* fix(workflow): skip quietly on unparseable plugin field, accept bare plugin name
---------
Co-authored-by: Lemmy <studio@quadbyte.net>
Settings shortcut in the panel header, and a README that names the release a
user can act on instead of an API level.
Co-authored-by: nightwatch75 <nightwatch75@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* feat(nix-monitor): add system stats check mode
* fix(nix-monitor): prevent terminal closing on non-zero exit
* fix(nix-monitor): force system stats check when clicking the Check button (if not off)
* feat(ssh-launcher): add /ssh launcher for SSH config hosts
Provide a launcher provider that reads ~/.ssh/config, lists host aliases
with fuzzy search, and opens an SSH session in the terminal on activate.
* docs(ssh-launcher): update store thumbnail
Replace the plugin card image with the final SSH Launcher artwork,
blur server IP addresses, and fix the displayed category tags.
* fix(ssh-launcher): parse SSH config directives case-insensitively
Match Host, Hostname, and User keywords regardless of casing so
lowercase blocks are included, consistent with OpenSSH behavior.
* feat(audio-switcher): add toggle for notifications on device switch
* feat(audio-switcher): add toggle for actions in tooltip and change appearance of tooltip
* chore(audio-switcher): bump version to 0.2.0
* fix(audio-switcher): add missing translation keys
Settings shortcut in the panel header, and long task text now wraps inside its
own column instead of running under the row buttons.
Co-authored-by: nightwatch75 <nightwatch75@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(anilist): open plugin settings via noctalia.openSettings()
Require plugin API 15 and replace the settings-open plugins shell workaround.
* fix(anilist): Correct author name capitalization
* chore(anilist): bump version