
登録よう 登録よう54843
2 discussion posts
I purchased this software.
It's a very good software, and I'm grateful for it.
However, the same image is selected many times as the random wallpaper.
I've divided my desktop into 20 sections.
I have 50,000 target images.
Even with this, the probability of the same image being selected is high.
After about a week, the image set seems to change, but even during that week, the same image is frequently selected.
I would like the random selection to be truly random.

sandmann
67 discussion posts
While Owen is technically correct, as a practical matter this option is useless if you have more than a couple dozen image files.
This is a design problem with DF I have mentioned multiple times. In short, DF does a complete directory enumeration every single time a wallpaper image changes. That means enumerating 50,000 directory files in your case, creating a hash table for each entry, and building a database with those 50,000 files. But it doesn't do this once, it does it 20 times, once for each display split, every single time the wallpaper image changes. Then the 7-day history lookup adds even more compute demand.
This entails a huge overhead and DF simply can't keep up so wherever the pointer was last time is where it starts from again, and if there are not enough CPU cycles available, it just picks the current entry, or maybe the next entry in the database.
I've been over this with Keith, and he insists that enumerating directories is fast and doesn't take up much time. My experience tells me otherwise.
I made a request several years ago to change this so that DF builds a list of files once, from 1 to N, then randomly selects a file until the list is empty. Then makes a new list.
Conceptually this is simpler, with much much less demand on the CPU and OS and disk drives. And the code to implement this is much less convoluted than the current scheme.
So the request is there, but unless zillions of DF users request it, nothing will happen.
BTW, there is other software that works the way I describe, but I haven't found one that also supports display splitting.

sandmann
67 discussion posts
Just in case someone at Binary Fortress decides to implement this change, here are a couple of additional thoughts:
1. Re the filename list DF selects from, it would be more efficient to write the file once, randomize it, then just increment the pointer by 1 each time a new image is selected. This way there is only one disk write every 50,000 image changes (following the original posters numbers). Just keep track of the pointer in a registry entry. And when you get to the end of the list, make a new one.
2. Ideally there would be three options for how the filename list would be built:
(a) Have one single list shared by all display splits on all monitors.
(b) Have one list per monitor, so all display splits on a single monitor would share a list, but each monitor would have its own filename list.
(c) Each display split would have its own filename list (this is what DF has currently, and is the most resource intensive of the three options).
3. If you want to get fancy, you can include an option to rebuild the filename list "now".
While my expectations are low that this will ever happen, I can hope.....
Apr 15, 2026 (modified Apr 15, 2026)
•
#5
Thsnk you for the feedback, large image collections are an issue right now with performance. We are looking at ways to improve it though, thanks!