GNOME wants out-of-the-box sort-of Tiling!

GNOME wants out-of-the-box sort-of Tiling!

Okay, hear me out: just last week the GNOME project had the GUADEC, which is  the largest GNOME conference; there were lots of cool talks about GNOME and its apps - obviously - but the one that stoop up to me was about the future of design of GNOME.

And there's something big. GNOME wants to do tiling. There's more stuff, though: should I start with the big thing, or the smaller stuff? Who am I kidding, let's talk tiling.

What's the issue that needs to be addressed? Well, manually placing and sizing the windows can be fiddly work, and requires close attention and precise motor control - interistly enough, tiling is here not presented as something to improve the workflow of super user, but rather, as an accessibility feature for - as an example - those without a great experience with comuters. This fiddly work is what GNOME developers jokingly refer as shit {beep this out} work: it is work that the user has to do, which is generated by the system itself, and has no other purpose.

GNOME rightfully points out that most of the time you only need one or two windows, often just one window maximized, surely not a dozen different overlapping windows - and yet, that's the default today when you start opening apps as you need them. If you're new to computers, maybe you don't know how to clean that mess up through activities and virtual desktops.

However, GNOME doesn't want to do tiling tiling. They say that it's not a replacement for stacked floating window managers. The issue is that the tiling window managers resize windows according to the available screen space, even though most apps are designed to be used at a certain aspect ratio and size. As an example, chat applications are inherently narrow and tall, and reading a PDF in a tiny window is, well, no fun.

A positive example GNOME brings is constrained window managers such as on iPadOS, where you can create app groups and slide in one floating app on the side. However, this really does not scale on larger screens or more applications.

Then, finally, we have the biggest sentence of the whole explaination: the key point we keep coming back to this work is that, if we do add a new kind of window management to GNOME, it needs to be good enough to be the default. This is not some random option that needs to be turned on in system settings, like in KDE Plasma or, I believe, Pop!_OS. This has to be out of the box, for everyone. I respect a lot this GNOME approach.

Their proposal is called Mosaic. You open a window, it opyens centered on the screen, a ta size that makes the most sense for the application. Weather app? like this. Web browser? probably better maximized.

As you open more windows, the existing ones move aside to make room for the newer ones. If a new window doesn't fit, it moves to its own workspace. If the mosaic layout almost covers the entire screen, everything gets tiled automatically.

You can also decide to manually left tile a window, which is going to take half of the screen. If you do that, and if there's enough space, all the other windows will move to the right and stay in the mosaic shape; if there's not enough space, GNOME will ask you which one other window you want to be tiled in the right portion of the screen, and everything else moves to its own workspace.

Of course, it's not just half-screen-half-screen tiling, you can also drag and drop a window above another to split the space occupied by them and freely resize them, allowing for more complex tiling options.

Finally, a few applications might still require to be always shown above and floating normally; they don't provide any example, but if I had to guess I'd say stuff like a window recorder might want to still be floating. Applications will still be able to float normally above others, but it should be something that rearly happens.

First impression: wow. Wow wow wow. However, if I had to wildly guess, I don't think this is going to work out. It's just a guess, and I really hope this works, but there's a big big issue with it. That is, it assumes that windows do have a "best size", and they assume that this "best size" is not "all the space available".

I mean: take a... text editor, or a browser, or a terminal, or the system monitor, and so on. My impression is, whilst using them on my computer, that the more space the can take, the better. There isn't quite a "best size for" to adapt to. But I might be wrong here.

However, even if there is a "best size" for all windows, it's really hard for GNOME to know about it. Okay: GNOME applications can do whatever, obviously, but take third party applications, like KDE applications, or Godot, or Blender, or Inkscape, or anything that's not made by GNOME. Currently, there is no standard way to tell the window manager about the "best size" for your application; and even if such thing was introduced, I feel like most application would take ages to start setting the "best size"; and even if they do... gimp, inkscape, blender, godot... they're all just gonna say: "hey, give me as much space as you have", as I mentioned previously.

Even worse, we use the browser a lot. Webpages on a browser are kind-of like applications, right? Except the window manager can't know anything about them. I might be opening a website that requires very little space, and still my browser will end up being maximized, throwing all other windows in a different workspace. They just... kind-of skip on the browser side of issues, but I feel like we humans do spend a lot of time in browsers, so...

GNOME does mention the fact that we currently need more metadata to implement this. Currently we have: fixed window size and minimum size. But we would now also need some sort of "maximum size", after which the content stops looking good. We'd need a range of ideal sizes, within which the app looks best (even though we could go smaller or bigger, if necessary).

Ideally, all of these properties should be dynamic; that is, they should depend on the content of the windows. If you have an office document that's empty, well, then you don't have to ask for a lot of space. But if it's super full, then, yeah, you do need more space.

GNOME says: depending on apps using a new system APIs can be challenging and slow (I agree!) -- it's not easy to move the entire ecosystem! However, we think there's a good chance of success in this case, due to the simplicity and universal usefulness of the API.

And, do let me say, I really really hope they succeed, even though I feel like it's unlikely. I genuinely love the concept, and I'd be the first to try it, I promise.

That said, yes, I'm done talking about tiling, but the video ain't over, because GNOME has presented a lot of other things that they're planning on implementing. They're smaller stuff, but also stuff that will be implemed waaay sooner than this tiling stuff, so technically they are more relevant to us. Maybe I should've begun the video with them.

Firstly: they are getting rid of the "Activities" label on the topleft. That's a pretty big deal. They will replace it with workspace indicators; basically, there will be one dot for each workspace, and the current workspace will get a highlighted dot. The animation whilst switching between workspaces is just as pretty as it gets. If you click on the dots, then yeah, you get to the overview. Good stuff. Of course, just like everything in this video, this is work in progress and the actual implementation might be different.

Even cooler, you can try this out right now. They made a GNOME extension that replaces the current indicator with this proposal. This - I think - is particularly worthy of praise, as your system is so modular that your users can try out features from the next releases to give feedback about them. Great!

Next up: since one year ago, they've been working on a mobile version of the GNOME shell which isn't yet upstreamed. In theory, that should happen in the near-ish future. The coolest part? It brings 2D gestures, meaning that you can go to the side and then up and that's going to work; something that is exclusive to GNOME, as no other desktop has anything like that.

Then: the Login User Grid; it's a much, much nicer representation of the users on a system, with blur and everything. Look at it. There's nothing else to say, just... it's pretty. I want it.

The notification/calendar popup is also up for redesign; there's the idea of moving the notifications to the system tray on the right to make space for a full calendar - which also has weather and different time zones and events. You can see here lots of possible design and layouts depending on the size of each element: clocks, weather, calendar.

Also, do let me say that the notifications in the system tray look goooooood. Like, real good. That's the right place for notifications.

Another area they want to refresh in the search view; they're mostly happy with it, but they do want to make results a bit more clear by making the numerical results bigger and in their own cards, and dividing everything in categories. Each content, Tobias says, could have its specific layout in the search result list.

Nice. This was everything.