github LGFae/swww v0.8.0

latest releases: v0.9.5, v0.9.4, v0.9.3...
14 months ago

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.

Don't miss a new swww release

NewReleases is sending notifications on new releases.