Skip to content

Releases: LGFae/swww

v0.8.2

15 Jan 12:51
Compare
Choose a tag to compare

ATTENTION PACKAGE MAINTAINERS

I've changed my git username from Horus645 to LGFae. This means you will have to update the remote url to https://github.com/LGFae/swww. Anyone who also has direct links to the old address should update them. The old links should still work for some time.

I've done this because mostly to make it more professional looking. I've considered using two github accounts instead, but that would involve setting up multiple ssh keys on my machine and included other complications. I deeply apologize for the inconvenience.

Changes:

  • update MSRV in README.md, by @micielski
  • implemented a --no-cache flag for swww init
  • fixes to the build script, by @m4rch3n1ng
  • client waits for daemon to be ready on swww init
  • more accurate image fit implementation
  • added MSRV to Cargo.toml, by @Akida31
  • fix some documentation typos and inacuracies
  • fix timings for transition frames
  • fix capacity of Vec in image_pad function, by @MichaelOultram
  • implement animated WebP Support, by @MichaelOultram
  • some other memory optimizations, by @MichaelOultram
  • implement clear-cache command
  • we also automatically clear the cache from old swww versions now!

Also, we have udpdated all crates versions so that they all match. This should help some package maintainers that were having difficulty setting swww up for e.g. Debian, I believe.

v0.8.1

12 Jul 21:09
b7cde38
Compare
Choose a tag to compare

Pretty a much a near-exclusive bug fix release:

  • Fixed swww clear causing the daemon to exit
  • The cache is once again being correctly loaded during swww init
  • Fixed glitches happening to animated gifs (frames were being loaded in the wrong order)
  • Fixed swww-daemon sometimes not drawing to the whole screen (forgot to set the exclusive zone to -1)
  • Fixed an issue where the daemon would hang if multiple images were sent in quick succession

Additions:

  • --transition-type none, which is an alias to --trasition-type simple --transition-step 255

I'd like to thank everyone who took the time to use v0.8.0 (that was just out yesterday!) and submitted bug reports and the like! v0.8.0 was a huge rewrite, so this is somewhat expected, and I tried to fix everything asap.

I apologize for any inconveniences that might have caused.

v0.8.0

11 Jul 18:57
11129a3
Compare
Choose a tag to compare

0.8.0

BREAKING CHANGE: CACHE HAS CHANGED:

I have changed the way we are caching the images / animations. I would recommend users delete the previous cache directory once they install this new version:

rm -r $XDG_CACHE_HOME/swww # OR
rm -r $HOME/.cache/swww

BREAKING CHANGE: NUKED --sync flag:

We now sync everything automatically, every time. So we've eliminated that flag.

Update to sctk 0.17:

Updating to sctk 0.17 unlocked many, many improvements:

  • We managed to ditch an extra clone when calculating the transitions
  • We now draw the images directly into the wayland buffer, instead of having to send an intermediary buffer through a channel.
  • Because of the above, we can now send from the client a bgr image, instead of a bgra one. This lets us seriailize and write roughly 3/4 of what we were doing previously.

Moving from serde to rkyv:

We have changed our serialization strategy from serde to rkyv. This lead to even further memory usage reductions, since rkyv does not use an intermidate buffer to deserialize its structures.

Aditions:

We have reworked the way we do synchronization between monitors. It should sync all monitors animations automatically.

  • New transition, fade, that is essentially simple with beziers (@flick0)
  • invert_y flag (@flick0)
  • New option to resize to fit, padding only what was left (@SignalWalker)
  • @RiedleroD fixed a type :)

Summary:

With all of the changes above, I've managed to reduce memory consumption almost by a factor of 3. The price to pay was a full rewrite of the wayland implementation part of the daemon, a partial rewrite of the way we do ipc, and all the code adaptions necessary to make all that work.

Unfortunately, because I had to rewrite so much stuff, it is possible that old bugs will resurface. I've tried my best to test and validate it with every thing that blew up in the past, but it is probably inevitable that some stuff slipped by. Apologies in advance, and keep this in mind when upgrading.

v0.7.3

19 Apr 20:04
Compare
Choose a tag to compare

Fixes:

  • Missing / when using $HOME/.cache/swww, by @max-ishere
  • --transition-step with simple has saner defaults
  • correctly splitting outputs argument with ',', by @potatoattack

Improvements:

  • we only send the image after we've finished processing the whole animation.
    This diminishes the weird lag that can sometimes happen when sending a large
    gif.
  • sending a status update to systemd when daemon has been initialized, by @B3NJ4M1N

Internals:

  • we have benchmarks for our compression functions! This will be useful later once I start poking things to see if I can make them more efficient.

Unfortunately, there are a few bugs people have reported that I still haven't been able to fix. Sorry about that.

In any case, the immediate plan for the future is actually to update sctk to version 0.17.0. I am actually studying the possibility of using sctk with wgpu, since that should bring many improvements (most noticeably, we would be able to store an rgb vector, instead of rgba, so we could potentially cut memory usage by 3/4. In theory, of course, I still have to actually measure it to see if there's any difference. It will probably still take a while).

v0.7.2

17 Feb 15:10
9df72ca
Compare
Choose a tag to compare

Improvements:

  • Images (and animations) are now cached at $XDG_CACHE_HOME #65
  • We now have man-pages! They must be installed manually in your system by moving the files in doc/generated to the appropriate location. Typically, you can figure out where that is by running manpath. The script doc/gen.sh will create the above directory and all the relevant manpages. Note that the script depends on scdoc being installed in the system. Have a look at it for more details.
  • We now also have automated spell checking. This let us fix a number in typos in our documentation, both internal and user-oriented.
  • New option for swww-img: --sync. This syncs the animations in all your monitors. Note that all monitors must be displaying animations in order for it to work.

Internal:

  • Integration tests are not run by default. You must now use cargo test -- --ignored to run them. This will make it possible for some
    people (like the ones trying to package swww at Nix) to run some of the tests in a sandboxed environment where they don't have access to the wayland server. If anyone is interested in running all tests, they can do that with cargo test -- --include-ignored.

I will start being very busy very soon, so I will probably only have time to publish minor bug fixes and/or update the dependencies for a while. Expect to wait a long-ish time until the next release, unless there's some awful bug in this release I failed to notice.

v0.7.1

05 Feb 13:57
25f0e8e
Compare
Choose a tag to compare

Mostly a bug fix release.

Improvements:

  • you can now use absolute screen coordinates with --transition-pos (by @flick0)

Fixes:

  • swww query not returing the image being displayed
  • document --no_resize and --fill_color options for swww img
  • reading img from stdin was failing (now with a proper integration test to make sure it doesn't happen again) (#42)

Internal:

  • fixed tests/integration_tests.rs calling the wrong swww-daemon binary

v0.7.0

29 Jan 15:07
63075f3
Compare
Choose a tag to compare

BREAKING CHANGES

  • ATTENTION, PACKAGE MAINTAINERS - swww is now composed of two separate binaries: swww and swww-daemon. Both must be installed on the user's system in order for swww to work correctly. Doing this allowed for major improvements in terms of overall memory usage, among other things (#52).

Improvements:

  • separate client and daemon (see above).
  • we don't try to animate gif files that have only one frame
  • we can read images from stdin (not this does not work for animated gifs; we simply display the image's first frame) (#42)
  • --no-resize option (pads the outer part of the image with fill-color) (#37)
  • new transition: wave, by @flick0
  • reading image format properly (instead of using file extension) (#74)

Fixes:

  • fixed panic with on gif that had identical frames (#68)
  • fixed panic with fractional-scaling (#73) (by @thedmm)

Non-breaking Changes:

  • @flick0 changed the default transition-step

Internal:

  • Many improvements to the README.md (@aouerfelli and @flick0)

v0.6.0

30 Nov 22:15
21eddb2
Compare
Choose a tag to compare

BREAKING CHANGES

  • transition-speed no longer exists. Now, speed is controlled through a bezier curve (--transition-bezier), and duration (--transition-duration) flags (note this also applies to the env var, SWWW_TRANSITION_SPEED). A warning was added when we detect the presence of the SWWW_TRANSITION_SPEED environment variable. This warning will go away in the next release, it is only there as a means of making sure everyone knows the variable has been superseeded, and having it in your configs no longer does anything.

Improvements:

  • New grow transition. grow and outer transition now accept a --transition-pos command line argument. By @flick0.
  • Transitions grow, outer and wipe now work with bezier curves (see breaking changes, above). This allows for finer control in animation speed than before. Also by @flick0.
  • Very slightly faster decompression routine

Thanks a lot to @flick0, for doing pretty much all of the heavy-lifting for this release!

v0.5.0

16 Oct 18:02
d45ab41
Compare
Choose a tag to compare

BREAKING CHANGES:

  • swww query now formats its output as <output>: ..., instead of <output> = .... This will break your scripts if you relied on the output's format.

Improvements:

  • Fixed swww getting stuck on a futex when a new monitor was connected (#26)
  • New wipe transition by @flick0
  • Several small code improvements by @WhyNotHugo
  • Typo fix (@thebenperson)

v0.4.3

03 Sep 16:54
Compare
Choose a tag to compare
  • Check to see if daemon is REALLY running when we see tha socket already exists (#11)
  • Fix dpi scaling (#22)