8000 Releases · LGFae/swww · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: LGFae/swww

v0.10.3

09 Jun 16:59
Compare
Choose a tag to compare
10000

0.10.3

@shumvgolove fixed a very dumb mistake I made when detecting the output
current mode. This could potentially break a few setups, so I am releasing it
now in a minor release. Apologies for the inconvenience.

v0.10.2

06 Jun 15:57
7ceddc0
Compare
Choose a tag to compare

0.10.2

Another small update with very important bug fixes.

Fixes

  • We prioritize fractional-scale events over preferred-buffer-scale ones. This should fix many of our long-standing issues with fractional scaling. Thanks a lot to @AryanRarestand who hard-coded a solution that led me to find the problem.
  • do not accept wl_output modes that not current, as they are considered deprecated by the protocol.
  • No longer spaming standard output with warnings that we are ignoring preferred-buffer-transform events.

v0.10.1

30 May 14:17
ede6815
Compare
Choose a tag to compare

0.10.1

A small update with important bug fixes.

Fixes

  • Make swww work on systems where c_long is is not mapped to i64, by @triallax
  • Fix fractional scaling, by @cyuria
  • @nullcubee and @iynaix helped me understand and fix the nix build (thanks, guys)

Improvements

  • using tiny-bench instead of criterion reduces our dependencies in debug builds

v0.10.0

25 May 17:46
98ace05
Compare
Choose a tag to compare

0.10.0

Okay, this one's a doozy.

Breaking

To build swww, you now need to make sure the wayland protocol .xml files can be found on your system through pkg-config. I couldn't get that to work in CI for nix-os, which is why build.nix has been deleted.

swww init, previously deprecated, has been properly deleted now. The correct way of initializing the daemon is calling swww-daemon directly.

Other than these, everything should be working the same as before.

Additions

  • new --layer option for swww-daemon
  • new --resize stretch option, by @rexept
  • cache now stores the image filter, by @kerty0
  • we can now read images from stanard input, by @iynaix
  • new swww_randomize_multi.sh example script, by @cplir-c

Fixes

Note: because there were many changes between the previous version and this
one, some of these things may resurface as problems. Unfortunately, many of
these issues I either cannot reproduce in my system, or the whole application
has changed so much that testing them in isolation would be challenging.

  • fixed output transforms
  • animation timings could be slightly off
  • examples scripts are more POSIX-friendly, by @fawn
  • fixed memory leak and halted animation when connecting/disconnecting
    monitor, by @kerty0
  • some stuff wasn't working when files were behind symlinks, fixed by @mendess
  • fixed connecting to Wayland via WAYLAND_SOCKET, by @mstoeckl

Improvements

  • reimplemented the communication from the client and the daemon from scratch,
    allowing for much more efficient data transfer
  • the above was then made type-safe by @rkuklik
  • using a custom log implementation that looks much nicer
  • rewrote the transitions code to be more SIMD friendly -- will improve
    animation stuttering in some systems. Furthermore, and more importantly,
    the animations are now fast enough that we no longer need rayon as a
    dependency.
  • more generaly, we have completed nuked the multi-threaded code.
    swww-daemon now only spawns a single thread, letting us get rid of every
    Arc wrapper, and other annoying, fragile, synchronization code.
  • we are using rustix instead of the std as much as possible, for lower
    syscall overhead
  • remove dependency on spin-sleep
  • flake-lock by @JohnRTitor
  • waybackend based implementation -- this is much more lightweight than
    wayland-rs, and lets us make the daemon very resource efficient.
  • can now use hexcodes instead of image path, which we detect automatically,
    by @flick0

Other contributions

Note there have also been other contributions that were rendered obsolete in the
meantime, since so much has changed from the last released version (in fact, the
last release was roughly a whole year ago!). The daemon codebase itself has gone
through 3 very large refactors, and now I am finally mostly satisfied with how
it looks. Unfortunately, this does mean some things will inevitably break. I
apologize in advance for any inconveniences.

On the other hand, I believe the rewrite has fixed some old-standing bugs we
have. Though those will have to be tested again on systems that can actually
reproduce them reliably.

I also apologize if I forgot to mention anything/anyone in the above summary. If
I missed your contribution, please feel free to open a PR adding it.

v0.9.5

02 May 23:56
3ee69e3
Compare
Choose a tag to compare

This is mostly just fixes and small improvements.

Fixes

  • fixed wallpaper never setting configured to 'true'
  • fixed fractional scaling rounding incorrectly
  • fixed scaling for vertical monitors (thanks, @AhJi26)
  • fixed the annoying black screen on login issue (finally)

Additions

Internal improvements

  • specialized transition for --transition-type none (previously it was an alias
    to simple with special values)
  • remove an extra call to thread::sleep when loading the cache
  • no longer using an event_fd to wake up the main thread

v0.9.4

17 Apr 00:05
4bcb979
Compare
Choose a tag to compare

Fractional Scaling is finally implemented! Woooo!!

That also fixes a nasty problem some people were having with fractionally scaled outputs.

Apologies for spamming small releases like these in short order. Hopefully this will be the last one for a while.

v0.9.3

14 Apr 15:43
132bde3
Compare
Choose a tag to compare

Quick release to fix a scaling error that might affect a lot of people.

Fixes

  • fix wrong scale calculation

Internal Improvements

  • deleted leftover /proc traversal code in the client
  • no longer setting nonblocking mode for daemon socket, since we are already polling it
  • better IPC structs between client and daemon

EDIT:

REGRESSIONS

Note this release has a regression where fractional scaling does not work properly: #279. I am working on implementing the fractional scaling protocol to fix it.

v0.9.2

13 Apr 01:04
aef2876
Compare
Choose a tag to compare

Fixes

  • fix stack overflow on some systems, by @iynaix
  • make sure we start the daemon even when the socket file already exists
  • fix build in 32bit x86, by @Calandracas606
  • fix image resize when image is larger than monitor
  • fix transitions performance that had regressed from versions 0.8.*
  • added SIGHUP to the list of signals we catch to exit properly
  • allow swww to run on a nested wayland environment, by @Fuyukai.

Improvements

  • we no longer traverse /proc to detect whether the daemon is running, we just try pinging it instead, by @Fuyukai
  • many internal refactors:
    • client now sends images in the format requested by the daemon (previously we were transforming the images in the daemon itself)
    • simplified the daemon's transitions
    • using bitcode instead of rkyv for serialization
    • using rustix instead of nix for unix stuff
    • The Big One: we've eliminated our dependency on smithay-client-toolkit, now make calls directly to wayland-client. This gives us more control over our code for the price of a little extra verbosity.

v0.9.1

23 Mar 00:54
ad22bbf
Compare
Choose a tag to compare

My bad everyone, 0.9.0 wasn't loading the cache, so I am publishing this quick fix.

I am copying over v0.9.0 release notes since they are important:

v0.9.0

BREAKING CHANGES

MSRV is now 1.74.0.

Deprecated

swww init is now considered deprecated. Use swww-daemon instead. To run it in the background, simply do swww-daemon &.

Fixes

  • fix the let_underscore_lock error. Note that all 0.8.* will probably no longer build with newer Rust versions due to that error. By @akida32
  • fixed webp and gifs that are only a static image
  • fixed busy waiting for WlBuffers to be released. This was a big one, and it involved rewriting a ton of stuff. We've implemented our own memory pool and are using frame callbacks to know when to draw now. A big thanks to @YaLTeR and @jeLee6gi for their patience and help with debugging and testing this thing.
  • properly removing all cache contents on clean-cache
  • always center images that are larger than the monitor
  • animations no longer overlap when sending two animated images in succession
  • fix randomize script trying to use directories as images. Fix was suggested by @MRSS02
  • waiting for child swww process when loading the cache, preventing zombie processes
  • waiting for daemon initialization before certain requests. By @musjj

Improvements

  • New, better compression function implementations. We are now using some SIMD code to accelerate the frame compression functions, leading to some nice speedups in some cases. Thanks to @Akida31 for their help in verying my unsafe code.
  • We are using 3 channel color formats for some nice perf and memory improvements. Unfortunately, it seems to not work for some people on some notebooks (see Known Issues).
  • Implemented a way to force the use of a specific wayland_shm format, as a workaround for Known Issues. Also went ahead and implemented some cli options for the daemon.
  • Support for animated pngs
  • Support for animations when piping images from standard input
  • Fps is now a u16, so we can support newest monitors framerates
  • Created a restore command to manually restore the cache. By @musjj
  • GitHub actions! Big thanks to @MichaelOultram!

Known Issues

Some people are having some problems with the 3 channel color formats (see issue #233). Currently, initializing the daemon with swww-daemon --format xrgb is a workaround to that.

v0.9.0

23 Mar 00:29
f2ea5a7
Compare
Choose a tag to compare

BREAKING CHANGES

MSRV is now 1.74.0.

Deprecated

swww init is now considered deprecated. Use swww-daemon instead. To run it in the background, simply do swww-daemon &.

Fixes

  • fix the let_underscore_lock error. Note that all 0.8.* will probably no longer build with newer Rust versions due to that error. By @akida32
  • fixed webp and gifs that are only a static image
  • fixed busy waiting for WlBuffers to be released. This was a big one, and it involved rewriting a ton of stuff. We've implemented our own memory pool and are using frame callbacks to know when to draw now. A big thanks to @YaLTeR and @jeLee6gi for their patience and help with debugging and testing this thing.
  • properly removing all cache contents on clean-cache
  • always center images that are larger than the monitor
  • animations no longer overlap when sending two animated images in succession
  • fix randomize script trying to use directories as images. Fix was suggested by @MRSS02
  • waiting for child swww process when loading the cache, preventing zombie processes
  • waiting for daemon initialization before certain requests. By @musjj

Improvements

  • New, better compression function implementations. We are now using some SIMD code to accelerate the frame compression functions, leading to some nice speedups in some cases. Thanks to @Akida31 for their help in verying my unsafe code.
  • We are using 3 channel color formats for some nice perf and memory improvements. Unfortunately, it seems to not work for some people on some notebooks (see Known Issues).
  • Implemented a way to force the use of a specific wayland_shm format, as a workaround for Known Issues. Also went ahead and implemented some cli options for the daemon.
  • Support for animated pngs
  • Support for animations when piping images from standard input
  • Fps is now a u16, so we can support newest monitors framerates
  • Created a restore command to manually restore the cache. By @musjj
  • GitHub actions! Big thanks to @MichaelOultram!

Known Issues

Some people are having some problems with the 3 channel color formats (see issue #233). Currently, initializing the daemon with swww-daemon --format xrgb is a workaround to that.

0