
Calimero is a high-performance Win32 x86, old-school () console application designed to take full control of your Windows Desktop background.
Started as a simple wallpaper swapper, it has evolved into a tool able to scrape and manage images from the web, using services like _Picsum, Pexels, Reddit and Danbooru.
The program also includes a built-in Gallerist — a customizable artistic curator that manipulates and adapts any image to fit your current video setup in the best possible way, including full support for multi-monitor / dual screen configurations.
_() see the Under the Hood / Internals section below
Calimero throwing wallpapers at your desktop through a console window.

C:\WCHG\url.txt file if you want to preserve your existing URLs and then delete it. This new version contains important changes about the URLs download that you need to read/apply.url.txt with ready-to-use examples and new data/instructions.whatisnew.txt file is also included to list the changelog.url.txt file.url.txt file.cache parameter for the URL entries.Calimero.txt configuration file for default console font, video download and auto-check for updates.-t option works: now it allows to specify seconds instead of minutes, using a negative value, which must be enclosed in quotes, as in: -t"-15" (set a timeout of 15 seconds for the wallpaper change).The Duellists: Calimero (right side) defeating the competition (left side).

Launch the app by typing Calimero followed by the required parameters (see the Examples section below).
Basic, essential arguments:
-t : Timeout (minutes) between wallpaper changes. To specify seconds instead of minutes, usa a negative value enclosed within quotes, as in: -t"-10" (change the wallpaper every 10 seconds).-d : Source directory for images.-m : Display mode: 1=Stretch, 2=Center, 3=Tile, 4=Fit, 5=Fill, 6=Cover, 7=Span, 8=Alternate and the exclusive 9=Gallery mode
note that the alternate mode has the following sub-modes:
1=stretch, 2=center, 4=fit, 5=fill, 6=cover, when -w option IS used OR 1=stretch, 2=center, 3=tile, 4=fit, 5=fill, when -w option is NOT used, append the number directly to the mode, e.g. -m81, -m84, etc.
Global Hotkeys:
Keep in mind that you can only interact with the program using keyboard shortcuts (hotkeys). Just because the console window (the command prompt) opens up, it does not mean you can type commands inside it!
Hotkeys always work, even if the console window is minimized; most useful are:
Ctrl + Alt + H: Show the help (as the -h option from the command line), listing also all the current hotkeys.
Hotkeys can be customized by editing the values in the configuration file Calimero.txt located in the C:\WCHG directory.
Quick Help:
From the command prompt, use the -h option to show a list of available options:
C:\WCHG>Calimero -h
The -W option from the command prompt is used to open the Wiki page (this page):
C:\WCHG>Calimero -W
The Ctrl + Alt + H hotkey can be used to show the help when the program is running and the console is visible.
Examples (the following folder names are purely examples; they should be replaced with your own):
The Gallerist: Use the folder C:\Users[...]Wallpapers (notice the double quotes around the path because it may contains spaces or other control characters, always use the double quotes!), with a 3-minute timeout (-t3) for changing the image and displaying it in gallery mode (-m9) and you will see the magic performed by The Gallerist itself:
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers" -t3 -m9
The Voyeur: Use the same command line as above, but add these two parameters: -a50 -V
Kill me softly: Use the folder C:\Users[...]Wallpapers, with a 1-minute timeout (-t1) for changing the image, displaying it in center mode (-m2):
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers" -t1 -m2
Span me!: On a multi-monitor setup, use the folder Calimero -d"C:\Users[...]Dual, with a 5-minute timeout (-t5) for changing the image, displaying it in span mode (-m7):
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers\Dual" -t5 -m7
To filter or not to filter: (1) Same as above, but using the alternate mode (-m8) and applying the GhostTrail filter (-fGhostTrail) to the image before displaying it:
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers" -t5 -m8 -fGhostTrail
or using a random graphics filter selection: (2)
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers" -t5 -m8 -frandom
(1) keep in mind that applying filters on very large images may take a bit ⏳
(2) to show a list of the available filters, use the Ctrl + Alt + G hotkey
Dijkstra mode: Start from the folder C:\Users[...]Pictures with a recursive search in subfolders (-r) , change image every 3-minutes (-t3), display in fit mode (-m4) and use fast 🐇 loading from table for subsequent runs (-D), not to mention the random order (-o3) for image load:
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures" -t3 -m4 -r -D -o3
Now, about the -D option:
If you delete files from the folder, the program will correctly notify you that those files are no longer on disk.
However, if you add new files to the directory/folder you loaded earlier with -D, the program will not automatically see or include the new files because -D is exactly to not re-read the direcory!
To make the program pick up the newly added files, simply run a fresh rescan of the folder using the normal -d (not fast-load -D) option.
If you make a BIG mess, do not worry, just close the program, go to the C:\WCHG\database folder and delete it all, it's just that simple :)
Comics time: Use the comic mode to read scanned comic pages from the folder C:\Users[...]Makoma (#1) (remember the old .cbr files?), no automatic timeout (manual change with Ctrl+Alt+N), images sorted by name (-o0), displayed in fit mode (-m4), and launched minimized/iconized (-v):
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\2D\Comics\Hellboy\Makoma\Makoma (#1)" -t0 -m4 -o0 -v
Grab it!: Load the URLs from the url.txt file to download the related images, change the wallpaper every 5-minutes (-t5) and display the images using the gallerist mode (-m9). If you have a dual screen setup, you can use instead the alternate mode (-m8) to rotate wallpapers through the monitors in sequence.
Important: before running the command, if you are using the example file provided with the program, ensure you have read and understood its content. Most importantly, do not use the file as is; modify it by entering any required API Keys and commenting out the URLs you do not need.
Calimero -u"C:\WCHG\url.txt" -t5 -m9
Currently the program allows to download images from Picsum, Pexels, Reddit and Danbooru.
You talking to me?: Load the content of words.txt file to print the text specified in the file onto the image before setting it as wallpaper (of course a copy of the image will be used, never the original!), with a 5-minute timeout (-t5), displaying in stretch mode (-m1):
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers" -w"C:\WCHG\words.txt" -t5 -m1
(have a look at the sample words.txt file in the C:\WCHG)
HACK-a-smack: Last but not least, give a try to the -H option (specifying a number between 1 and 99, as in -H5 or -H50):
Calimero -d"C:\Users\lpier\Documents\Luca\Pictures\Wallpapers" -t1 -m4 -H25
NEW!: The program automatically checks for a new version. If you want to disable this feature, edit the Calimero.txt configuration file and set the CheckForUpdates field to 0 (zero).
This is a pretty stable release, but it might still have "real" bugs 🐞 (like memory exceptions) and/or "logical" bugs ⛔️ (such as weird behavior).
First of all, a quick question followed by a short and a deep-dive technical answer:
Short question: "Why the Chinese image author name of the image is correctly displayed on the console window title, but NOT in the console window output?"
Short answer: "Click the small icon in the top-left corner of the console window and select Properties -> Font, and then choose the NSimSun font from the list. If you don't see it, ensure that NSimSun is correctly installed on your system."
Tech answer: "The program uses the ANSI charset, not Unicode. In cases where non-standard ANSI characters (i.e., more common Unicode characters such as extended Latin, Cyrillic, Greek) may appear in significant data, such as titles or image author names, the program performs a conversion from UTF-8 to UTF-16 (Unicode) to display the characters correctly.
However, while this works for the console window title, it fails for the output displayed inside the window. This is because window titles are handled by system UI drivers using an advanced rendering system with automatic font linking. In contrast, the text area uses the classic Windows Console driver (conhost.exe), which fails because it lacks the glyphs for character sets with a large number of symbols, such as Chinese.
To solve the problem, you can: 1) Select the appropriate font (e.g., NSimSun() for Chinese) in the console window properties, or: 2) Use Windows Terminal to run the program instead of the Windows Console (AKA Command Prompt), since in that case the mapping to character sets with a large number of symbols is used automatically._
_In other words, the classic Windows Console is limited to a single monospace font, whereas Windows Terminal and the UI system used for the window title support proportional fonts with multi-font fallback*"
() NSimSun works in the console because even if it appears proportional, internally is a monospace font, the exact requirement for the console fonts. It's a font specifically designed for Simplified Chinese (Hans), Latin script (Latn), Cyrillic script (Cyrl), Greek (Grek) and Japanese syllabaries (Hiragana/Katakana), also offering partial support for other writing systems, such as Vietnamese and Korean. Consider also Arial Unicode MS, which is a true 'all-in-one' font, supporting a vast range of scripts, and the Noto* font by Google.
Important: if you do not want to set the NSimSun (or whatever font) manually each time from the Properties/Fonts entries of the console window, edit the Calimero.txt configuration file and set the PreferredConsoleFont field to the desired font name. Consolas is the name of the default font for the Windows Console.
More about Windows Console vs Windows Terminal:
https://learn.microsoft.com/en-us/windows/console/classic-vs-vt
About the Arial Unicode MS (now unsupported but still available on the web):
https://learn.microsoft.com/en-us/typography/font-list/arial-unicode-ms
Noto fonts from Google:
https://fonts.google.com/noto
https://github.com/notofonts/noto-cjk/releases
Now about the project, conceptually Calimero is the evolution of Crawlpaper, a Windows 95 wallpaper manager I wrote years ago.
Technically, it's written in C/C++ (mhm..., better to say C with classes, or even better, classy C :) on Windows (cartoons) season 10 using Visual Studio 2022 and much love 💖. It integrates several legacy and modern libraries, restored and re-adapted for high-performance processing:
Currently only the executable is available. As soon I can check all the code and terminate the beta testing, I'll release all the source files as well. Be kind and help me with the tests so I can put out all the code. Thanks!
The program, as everything else, needs an input 📥 to produce an output 📤, no mind reading🔮 implemented yet. Last but not least, you HAVE to read 📚 this whole Wiki thing.
As a general rule, option letters are case-sensitive, and any parameters must be attached directly to the option (no spaces allowed).
The only truly essential (and mandatory) parameter is the source of the images.
You must choose one of the following four input methods:
-d<folderpath>OR
url.txt sample file in the C:\WCHG folder):-u<filename>OR
-e<filename>OR
-F() How to create export files or add favorites:
• To export the current list of loaded images (whether loaded via -d or -u) -> press_ Ctrl + Alt + E
• To add the currently displayed image to your favorites -> press Ctrl + Alt + F*
(the favorites shortcut only works when images are loaded using the -d option)_
There are plenty of websites from where you can download beautiful wallpapers — even Microsoft has its own! If you want to download images through the program, use the -u with the url.txt sample file from the C:\WCHG folder (but read the url.txt content first!).
About all the other options, these are available (or not) depending on which of the four above methods you used to load the images.
To see the full list of available options and their descriptions:
• from the command line -> run the program with the -h option
• while the program is running, press Ctrl + Alt + H (make sure the console window is open and in focus)
However, the following options deserve a special mention:
-f<filter> (specifies the graphics filters to apply)This option works with all input methods (1 through 4 above).
To see the full list of available filters (depending on the graphics library currently in use), press Ctrl + Alt + G while the program's console window is open and in focus.
For beginners, it's best to start by experimenting with the default settings — just type the filter name on the command line, for example:
-fPixelate
or:
-fEcho
(BTW Echo is one of the most time-consuming filters, on true 4K, high-res, dual screen images it may take time)
To apply multiple filters at once, separate them with commas (NO spaces):
-fPixelate,Contrast,Sharpen
If you want to use custom parameters for a filter, use this syntax (parameters separated by semicolons, NO spaces):
-fGhostTrail;4;10;0.7f;FALSE
(Note: GhostTrail requires exactly 4 parameters in this order.)
For endless experimentation, you can let the program choose the random mode: 🎲
-frandom
Or try the filter currently under development/testing:
-fTest
Keep in mind that some filters (as Echo, GhostTrail, Median) may take a bit ⏳ to apply, the program console output will show you the progress.
-w<filename> (uses a text file containing the phrases/words to display)To get started quickly, use the example file words.txt (included in the C:\WCHG folder).
Inside it you'll find a short explanation of how it works.
-u<filename> (uses the specified text file containing the URLs from which to download images)To get started quickly, use the example file url.txt (included in the C:\WCHG folder).
Inside it you’ll find a detailed explanation of how it works, plus lots of sample URLs ready to use.
Important: before running the command, if you are using the example file provided with the program, ensure you have read and understood its content. Most importantly, do not use the file as is; modify it by entering any required API Keys and commenting out the URLs you do not need.
Currently, the (free) services supported for downloading images are:
• Picsum (no API key required)
• Pexels (requires a free API key)
• Reddit (no API key required)
• Danbooru (requires a free API key + a login name)
Please refer to the url.txt file, which contains everything you need to use the -u option.
The list of images coming from URLs behaves differently compared to the list of files already present in a local folder.
When using a URL-based list (-u option), the navigation keyboard shortcuts only move forward to the next image. You cannot go back to a previous image, jump to the beginning, or jump to the end of the list.
If you want full navigation (previous/next, first/last, etc.), simply switch to the local folder mode at the next launch: use the -d option pointing to the folder where the downloaded images are saved (C:\WCHG\download) instead of -u.
Also, since a web-based 🕸 list of images could theoretically be endless, the program automatically removes each image from the in-memory list once it has been displayed. However, pay close attention: the images are removed only from the list, not from your disk.
The downloaded files remain saved in your download folder. This means the number of files (and the total disk space used) can grow very quickly if you keep downloading for a long time.
So, keep an eye on your download folder size if you're using the -u option for extended periods! And carefully read the program output in the console window — it says it all!
That’s all you need to know to start downloading images from URLs, have fun! 🍾