For fun: partially implementing the Moisac Windows concept by @tbernard.

https://blogs.gnome.org/tbernard/2023/07/26/rethinking-window-management/

#GNOME

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.

Some momentum.
Using mosaic windows is so good that going back to using overlapping windows feels strange.
It's still quite experimental, but I think I can start sharing it to begin getting some public testing.
https://github.com/CleoMenezesJr/MosaicWM
The solution I found to alert the user that the window they are resizing will overflow and no longer fit in the workspace was to make it opaque.

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?

In the end, it was worth trying to improve the algorithm I already had rather than attempting to implement something so complex that didn't meet my expectations.

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.

Photo Collage Generation Using Genetic Algorithms | Callista

Callista Enterprise - seniora IT-arkitekter och systemutvecklare inom Java, ΓΆppen kΓ€llkod, agil utveckling och systemintegration

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.

https://github.com/CleoMenezesJr/MosaicWM

#GNOME

@CleoMenezesJr so... I disabled PaperWM followed the install instructions (had to log out and back in after `./install.sh` to be able to enable the extensions, btw). But it... isn't doing anything? No mosaic here, just regular overlapping windows :(
@CleoMenezesJr no errors in `lg` so I must be doing something wrong... also, I tried the "nested gnome session" setup but it won't run because gnome-shell-toolbox-tools.conf doesn't exist
@aburka
Are you on GNOME 49? Try disabling other extensions as well, something might be conflicting.
How about using journalctl?
https://github.com/CleoMenezesJr/MosaicWM?tab=readme-ov-file#debugging
GitHub - CleoMenezesJr/MosaicWM: Rethinking window management for GNOME Shell

Rethinking window management for GNOME Shell. Contribute to CleoMenezesJr/MosaicWM development by creating an account on GitHub.

GitHub
@CleoMenezesJr I checked journalctl but didn't see anything, oh I'm probably on an older gnome though

@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 okay I changed the version field to 47 and it works! (I realize you haven't tested on this version.) It's only tiling windows on the primary monitor, on the second monitor they seem basically unmanaged, is that a limitation at this point or an issue with my old Gnome?
@aburka The extension should work on multi monitor, but if it's not working it could be a bug. Unfortunately I don't have two monitors to test it at the moment. Please fill a bug report.
@CleoMenezesJr done! is there a way to simulate two monitors in the nested session?
@aburka I never asked myself that and I hadn't thought I could. I'll ask in the GNOME Extensions support channel. It would be a great solution.