How can I adjust the cropping of large background images?

Hi there! I'm using KLWP in combination with Tasker to cycle through my wallpaper collection (static images). I was previously using Muzei, but it wasn't very flexible and it turns out it cached a second copy of all my wallpapers, which was bad because I have half a gigabyte of them.

It's not difficult to make Tasker choose a random image or to make KLWP display it, but all my wallpapers are desktop-sized, so they don't actually fit on screen. It looks like KLWP tries to squeeze the whole image width in by scrolling extra "far" - when I switch desktops (I have two), the wallpaper zips right past the middle of the image to the opposite side. This is frustrating because for most of my wallpapers, the middle of the image is the main part.

Can I adjust how KLWP handles wide background images, somehow? In particular, I'd prefer it to crop the sides and to use the middle parts of the image to fill both desktops. This is what Android's default static-image wallpaper setting does, and it's what Muzei does too. I can't seem to find a setting to make KLWP work the same way however.

You can probably do this by using a shape that fills the screen with a gradient of type Bitmap that you will use in place of the background (means shape will need to fill the screen, this can be done either manually or using a formula for width / height to $si(rwidth)$ / $si(rheight)$).

If you had 3 screens you could just disable scrolling but with 2 this trick won't obviously work since image center is in the middle of the 2 screens.

I gave this solution a go and it's *almost* perfect. I created a rectangle that's $si(rheight)$ tall and $si(screenc) * si(rwidth)$ wide, set my wallpaper expression as its gradient, and enabled scrolling in the animation tab. It's cropping to exactly the right shape now, and each desktop individually looks excellent, but the scrolling is a little off - when I switch desktops, the wallpaper gets "stuck" for a moment right in the middle. It's pretty jarring. Is there a way to fix that?

Mmm thats strange, i will try to reproduce, it should not happen, so you have 2 screens right?

Yes, that's correct, I have two screens, and I've configured KLWP so it knows about them. In case it's relevant, I'm running Nova Launcher 5.1-beta6 on Android 7.1.2. Here's an export of my current wallpaper configuration: My wallpaper uses $mi(cover)$ when there's a song playing, and the scrolling issue is identical with a song cover displayed, so you shouldn't need to set up the Tasker part to reproduce the issue.