Changing my desktop background is a pain in the ass
6 months ago
I'm being kind of picky, but it is harder to get what I want than I thought it would be. I spent hours just trying to find something to meet all of the below.
I want a few simple things:
- Different image per screen (this is why I can't just use what is built into Windows)
- Handles transparent images correctly (so many programs fail badly at this)
- Lightweight program that can execute a randomly selected image change without chewing through excessive amounts of CPU and ram for such a simple task
- Automatically executes a background change at a set interval
- Option to change if the images are fit, stretched, centered, etc.
- Auto-detects new files in the designated folder
- Auto-detects and gracefully handles when an arbitrary number of screens are added or removed or changed
- Uses something better than an atrociously bad level of jpg compression
There is at least one program that meets each criteria, but there is no program which meets all criteria.
So like a normal person with normal priorities, I spent 20 hours of my time futzing about figuring out how to make it happen in Python.
So far it doesn't auto detect screen changes as they happen, but that'll be a pretty simple addition later since I already know how to get all the screen size and location details.
It supports all scaling types... if you know how to do the math for that type of scaling. Which I can figure out as needed.
It also doesn't use good compression. It uses PNG but Windows then does its own jpeg compression. I'll deal with that problem later. Some programs get around this problem somehow, I'll figure that out later.
Who else wastes their time programming something because they were fed up with minor details?
I want a few simple things:
- Different image per screen (this is why I can't just use what is built into Windows)
- Handles transparent images correctly (so many programs fail badly at this)
- Lightweight program that can execute a randomly selected image change without chewing through excessive amounts of CPU and ram for such a simple task
- Automatically executes a background change at a set interval
- Option to change if the images are fit, stretched, centered, etc.
- Auto-detects new files in the designated folder
- Auto-detects and gracefully handles when an arbitrary number of screens are added or removed or changed
- Uses something better than an atrociously bad level of jpg compression
There is at least one program that meets each criteria, but there is no program which meets all criteria.
So like a normal person with normal priorities, I spent 20 hours of my time futzing about figuring out how to make it happen in Python.
So far it doesn't auto detect screen changes as they happen, but that'll be a pretty simple addition later since I already know how to get all the screen size and location details.
It supports all scaling types... if you know how to do the math for that type of scaling. Which I can figure out as needed.
It also doesn't use good compression. It uses PNG but Windows then does its own jpeg compression. I'll deal with that problem later. Some programs get around this problem somehow, I'll figure that out later.
Who else wastes their time programming something because they were fed up with minor details?
FA+

https://i.imgur.com/JasrcOd.png
This is what I went through including a couple other programs that didn't make it onto the list. I decided that what I want must not exist, so I just have to make it myself lol.