For fun: partially implementing the Moisac Windows concept by @tbernard.
https://blogs.gnome.org/tbernard/2023/07/26/rethinking-window-management/
For fun: partially implementing the Moisac Windows concept by @tbernard.
https://blogs.gnome.org/tbernard/2023/07/26/rethinking-window-management/
At the moment I am making a dynamic and intelligent tiling system that coexists with the mosaic as shown in the mockup and this has been a fairly wide road.
I have already achieved good results, but I think I will only have something that can be proved next year.
I initially used the Shelf algorithm to build the mosaic, but I ran into limitations I didn't like. I'm testing a hybrid approach: MaxRects algorithm augmented with some BSP algorithm features to improve space utilization and partitioning flexibility.
I need to weigh the pros and cons: a hybrid MaxRects with BSP improves space utilization and flexibility (fills gaps and eases reorganization) but increases computational complexity and processing cost.
Any thoughts?
Using the Shelf algorithm, I implemented an approach where windows are arranged with radial growth; exactly what I was looking for. This greatly improved space utilization and looks visually well-balanced.
Before the algorithm tried to complete the horizontal space of their "shelf" with windows before creating another "shelf". The look was very unbalanced and uncentric.
I was researching some articles about algorithms for collages and came across an interesting one: https://callistaenterprise.se/blogg/teknik/2025/06/11/genetic-algorithms-collage-creation/.
The proposal presented seems brilliant, as considering the concept of "collage" makes more sense than thinking about "mosaic" to solve this problem.
I tried everything: spiral packing, radial growth, bin packing... Each one promised to be "the definitive." The radial looked nice but had gaps. The spiral got stuck on edge cases. The bin packing ignored aspect ratios.
In the end, I went back to basics: horizontal rows with smart distribution. Windows arrange themselves in lines, respecting their original sizes. Simple, predictable, and it works.
Sometimes the elegant solution is the one that doesn't try to be brilliant. 🧘
Guys, MosaicWM is becoming more and more stable, so I would like to start having people testing it.
@aburka some things to score:
1. The extension is being tested in GNOME 49, it may work without problems in versions 45+, but you will have to manually change it in the extension/metadata.json before installing.
2. I was using a script to install that had as dependency the zip package, if you didn't have it on your system it would fail.
3. I added a new, more polished script. You no longer need to have the zip package installed.
Please see the new installation method in the README and try again
@CleoMenezesJr here is my feedback, I couldn't test it further than the installation. Your gît clone is wrong, you should do this instead;
"git clone https://github.com/CleoMenezesJr/MosaicWM.git
cd ~/MosaicWM
chmod +x install.SH
./install.sh"
But then you have more errors so it can't be installed, for exemple ./export-zip.sh: line 5: zip: command not found, [email protected]:No such file or directory...
@visnudeva I just updated the installation script so it no longer requires the zip package. Try it out:
https://github.com/CleoMenezesJr/MosaicWM?tab=readme-ov-file#from-source
@CleoMenezesJr Ohhh that's lovely! I've always wanted to try the concept @tbernard blogged about, amazing someone implemented it! Especially since native GNOME halves/quarters tiling doesn't make me happy on my 49" monitor, I'd rather have thirds, at least.
Will try this when I'm on my personal box again, currently dealing with macOS at work (which also has bad tiling and I'd love to see mosaic/collage there as well...)
@scottjenson @CleoMenezesJr My bad, see: https://floss.social/@CleoMenezesJr/115676796813945950
Based on the idea: https://blogs.gnome.org/tbernard/2023/07/26/rethinking-window-management/
Attached: 1 image Using the Shelf algorithm, I implemented an approach where windows are arranged with radial growth; exactly what I was looking for. This greatly improved space utilization and looks visually well-balanced. Before the algorithm tried to complete the horizontal space of their "shelf" with windows before creating another "shelf". The look was very unbalanced and uncentric.