Superpaper 2.0.0 – I wrote a multi-monitor wallpaper manager for Linux that enables you to have precise control of your wallpaper(s) on any desktop environment : linux
Early 2019 I determined to swap my house PC to Linux, nonetheless I could not discover a ok substitute for DisplayFusion, my multi-monitor device of alternative on Windows. I took a take a look at Nitrogen, Hydrapaper, and Syncwall which appear to be the widespread suggestions. However I wished the device to:
span picture throughout all screens
set totally different pictures on screens
do timed slideshow
assist KDE Plasma
and a bonus could be: assist hotkeys (or be scriptable to allow me to do that)
Unfortunately none of the favored choices do all of the above; and so far as I can inform, none of them assist spanning pictures on KDE Plasma. Supporting Plasma turned out to be a bit troublesome however doable, as we’ll discover out.
So I rapidly cobbled collectively a proof of idea to see if I may do it (multi picture wallpaper at this level) and it did appear doable. Superpaper 1.zero was a command line solely utility that wanted to be configured with desire information. Around this time I realized that since I’m constructing the device from floor up, I can repair a difficulty that I had had with multi-monitor wallpaper spanning for a very long time. You see my two shows have all the time been barely totally different dimension and determination. This means that their pixel sizes will not be equal and this then means that the wallpaper picture shouldn’t be scaled identically on the shows, and this breaks the alignment of the span. A brand new characteristic to implement! Now I wished to change DisplayFusion on Windows as effectively.
Early summer time 2019 I had an implementation of this pixel density correction that additionally may take show bezels under consideration for even higher spanning, and so I launched Superpaper 1.1 with a rudimentary GUI as a moveable package deal. However the pixel density and bezel characteristic couldn’t deal with shows in arbitrary preparations, solely a row of shows. This was unsatisfactory, however I did not know the way to repair it on the time.
During Christmas holidays I got here up with a answer to the problem; it required a massive overhaul of a number of issues. I wanted to ask the person to inform how their shows are literally positioned on their desk to have the option to inform the place their pixels of totally different sizes really are positioned, for the reason that decision data from the OS doesn’t inform this. With this data I may make the picture proven on the shows span fantastically. I had to redesign the wallpaper algorithm to assist this new information, and assist bezels on high and backside edges as effectively, as well as to on the edges.
While working on all these enhancements I realized one final lacking piece of the spanning drawback. You see even when the picture is scaled appropriately on the totally different shows, there was nonetheless an imperfection with the produced wallpaper. Horizons, mountain ranges, water surfaces and many others appeared bent when evaluating the photographs throughout the show boundary. I realized that this occurs as a result of the shows are rotated to face the viewer. If they had been flat towards a wall this challenge would not come up. Designing a repair to this angle challenge took a whereas; and I would not have ever guessed to get to use some of the identical maths that self-driving automobiles use to see in my wallpaper device.. I wished to compute what the wallpaper picture has to appear like so that it appears that it’s a one flat picture working behind all of the shows. This would repair the bent/minimize strains/shapes. The answer makes use of the maths with which robotic imaginative and prescient reconstructs a flat floor in 3D from a digicam picture; a highway floor for instance. I wrote a bit of a wiki web page demonstrating this in motion: right here.
So right here we’re at model 2.zero with tons of enhancements, akin to:
New GUI: screenshot
Pixel density and bezel corrections work on arbitrary show preparations
The above described perspective correction
AppImages ought to run on extra methods
That is all my goal options in a single utility, and even some novel stuff on high. Superpaper goals to assist all DEs & WMs, and already helps a honest quantity. Drop me a message or a difficulty at GitHub if one thing would not fairly appear to work proper.
Finally, a few phrases on KDE (and XFCE is comparable). The motive why it’s laborious to assist spanning on KDE is that Plasma has been designed in a approach that each display has its personal desktop, and subsequently wallpaper. There is not any idea of continuity from one display to one other from the angle of the desktop. Whereas each (most?) different DE in existence has opted to share the desktop between the screens, which implies that the desktop solely has one wallpaper picture that then can span all of the screens. So to span a picture on KDE Plasma, it wants to be minimize into right items which then are set individually on their corresponding shows. At the purpose of needing to implement this I had fortunately already thought in regards to the pixel density factor, which meant that I had this chopping half of the method already down and we had been off to the races.
Superpaper is a multi-monitor wallpaper device that helps (goals to assist) all desktop environments / window managers, and it simply received a massive replace. Changelog: v2.zero.zero
Check out these pictures demonstrating the spanning corrections in contrast to the straightforward span:
No results: Simple span
Pixel density and bezel repair: Advanced span 1
Pixel density + bezels + views fixes: Advanced span 2
These are from this wiki web page going a bit extra into element what these do.