Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Smarter half tiling in Gnome Shell/Mutter (feaneron.com)
76 points by JoshTriplett on Oct 4, 2017 | hide | past | favorite | 52 comments



Are we reinventing tiling window managers?

Because if we do, that’s awesome! DWM is by far my favorite wm and would give anything to have similar functionality in other WM and maybe Mac and Windows.


Windows already has the feature covered in the blog post (in 10 it supports quarters).

There are also a number of third party tiling window managers.


Xfwm, a part of Xfce, has this feature for quite some time (and many other features that I'm used to miss and not Gnome's WM).


I've been waiting for ages for better tiling in Gnome - at least something like Windows 7 does would be great (resizing after half-tiling), but this looks even better! :)


I'm so ready to jump from my i3 setup to Gnome if they get the tiling even half as good as i3's is. Why? Because of Wayland (which gives me proper (Hi)DPI support for multiple monitors) and integration that I don't have to tweak myself in order to work.

So quite excited about this.


There is a tiling window manager for Wayland called "Way Cooler" (a pun on the Awesome WM, I suppose). It apparently has an i3 preset.

http://way-cooler.org

Recent HN discussion: https://news.ycombinator.com/item?id=14676625

I haven't tested it yet, but bookmarked the HN thread because I want to try a tiling window manager, but decided to make until there's a good one for Wayland.


There is also http://swaywm.org/ which is supposed to be an i3 clone for Wayland


Yeah, I know people are working on cloning i3. Perhaps these attempts will be successful some day, but so far, they are very lacking compared to what Gnome gives.


Personally I think of the lack of features in i3 as a feature (was going to check out sway when I get some time, seems nice).

I like being able to configure my computer my own way.

EDIT: Not that i3 lacks features, I've not found much I couldn't do with it. But it doesn't come packaged with a lot of other software like a DE does.


you're trying to compare a WM (i3) to a DE (GNOME). Of course the DE is going to have more stuff in it..


Never mind the question, do you need all that stuff?

More and more i feel what is needed is not bigger DEs, but more useful, and non-DE oriented, standards.


Same for me. I moved from being a heavy DE user to doing nearly everything in terminal windows over the years. I recently ditched NetworkManager for wpa_supplicant + systemd-networkd, and was surprised by how much faster the laptop now connects to the WiFi when wpa_supplicant is doing everything, rather than having to talk to at least two other processes (NetworkManager and its GUI applet) over DBus.


I migrated over to Gnome and Tilix as a tiling terminal emulator. I find its a little easier to deal with than a tiling WM.

https://github.com/gnunn1/tilix


> Why? Because of Wayland (which gives me proper (Hi)DPI support for multiple monitors)

Don’t expect too much, GNOME considers proper HiDPI out of scope and only supports 96dpi and 192dpi (and other integer multiples)

Everything inbetween is handled by rendering at 192dpi and then downscaling.

So if you have a 144dpi 4K screen, and try to run minecraft, minecraft will run at 6K resolution and be downscaled.

The result is horrible performance.

The only solution for proper HiDPI support for multiple monitors today is Qt, which supports it even on X11.


>Don’t expect too much, GNOME considers proper HiDPI out of scope and only supports 96dpi and 192dpi (and other integer multiples)

Argh. That's depressing. But still, Gnome with Wayland is the only DE I've seen that gracefully handles multiple monitors with different DPIs.


I’ve been using a 144dpi 4K screen and 104dpi 1080p screen together with KDE and QT_SCREEN_SCALE_FACTORS and it worked fine.


From elsewhere i have the impression that Gnome on X11 is actually behaving wrongly, the people in charge has been told so repeatedly, the breakage is recent, any they refuse to fix it...


That is correct. Gnome will not ever implement any DPI scaling on X11 again, or proper DPI scaling, they will only do integer scaling, because that allows them to write pixel-perfect layouts. This is the same as macOS and iOS.

All other platforms – Windows, Android, Qt, the web – use the opposite model.


In other words, the worst kind of combo of Windows-isms and Mac-isms...


Somewhat related:

Regarding i3-wm is there such a thing as pre-defined resolution tiling for the sake of UI testing? That would be pretty neat.

Imagine a bunch of windows that were tiled (think mosaic) according to known device resolutions like 320x680 (or something like that for mobile devices) then you could have say a browser open in each tile (with local dev url) and refresh/shows the UI as displayed on every resolution that would be impressive.


You can poke the i3 API to resize windows, but for arbitrary resolutions you need floating windows and that defeats the point of i3.


What is the point of i3?

I use it because the Ubuntu UI uses so much resources (from my experience) and my computers are generally trash.


IMHO, the point of i3 is having tiled windows. As a stacking window manager it's quite bad because it has no compositor.

That's why it's fast, but badly coded applications can be less stable.


Interesting, I don't know what Compositor is but agree with the speed.


I don't know about pre-defined, but i3 lets you define layouts with specifications for how windows should get "swallowed" into each tile, so it should be doable to set something up.


Curious why you say "swallowed"

Yeah I mean I don't think it's a perfect division of say if your laptop/screen has 1920x1080 and you want to divide that by some known resolutions.

Good to know about being able to define layouts. Would be cool to just call it in another tab (number bottom of screen)


> Curious why you say "swallowed"

Because it's the terminology used by i3. You define "placeholders", and which criteria i3 should use to decide which placeholder a given window should open in. Here are more details [1]

> Good to know about being able to define layouts. Would be cool to just call it in another tab (number bottom of screen)

I'm not sure what you mean. You can switch workspaces in a key definition, so you certainly can bring up a layout on whatever workspace you want with a given keypress.

[1] https://i3wm.org/docs/layout-saving.html


I mean for me opening a new window? (unsure of the terminology) ie. start with 1, new panel 2. Anyway use alt + number to open the new panel.

If I could have the predefined tiles and bind it to a key combo and then they would open up in a new panel (like 2)

Anyway thanks for the links/explanation



Does anyone else who does even basic half-and-half tiling feel like the majority of websites, even otherwise well-developed and popular ones, treat tilers as second-class citizens? I'm looking at you, GitHub, especially the ZenHub plugin. For a great counterexample of great design, YouTube.


Always a little confused by what 'tiling' is. On gnome I use 'untiled'/overlapping windows, and with SYS-right/left/up/down, ALT-tab, ALT-`, ALT-ESC, etc. shift windows around on gnome. That's it, plus quarter-tiling and definable keyboard combinations?

What would be really useful is a workspace organizer that given a keyboard combination automatically opened a number of applications in preset locations (on a new workspace); i.e. set up a work environment for a specific task. Is that possible with a tiling manager?


StumpWM definitely has the ability to open a number of applications in preset locations, they call it 'Groups'. I'm sure it isn't a novel feature and you'll find the same ability in a more common, less Lispy tiling window manager like Ratpoison, i3, or Awesome.


i3 at least allows this by saving layouts and restoring them. See[1]. It's not entirely painless, as there's no trivial uniform way of associating an application with a window, so you need to figure out what names etc. a given app uses for its windows and specify how i3 should map windows being opened to a given placeholder, but once you've defined it, it works fine.

[1] https://i3wm.org/docs/layout-saving.html


GNOME 3.26 will be in Fedora 27.

The beta is out: https://fedoramagazine.org/fedora-27-beta-released/


I love mutter. It's been ages since I looked at it, but at the time it looked very difficult to pull out of Gnome (which I don't love). I really should look at it again.

I should clarify that I actually like Gnome Shell, but I don't want a "desktop environment" -- I like a minimal system and Gnome is well past what I would ideally like.


It's pretty straightforward to use mutter without gnome-shell, you just have to implement the MetaPluginClass [1], which is what gnome-shell does too here [2]. At that point you can basically just run `meta_init()` and `meta_run()` in main and you're up and going.

[1] Somewhat outdated documentation: https://developer.gnome.org/meta/stable/MetaPlugin.html#Meta...

[2] https://github.com/GNOME/gnome-shell/blob/master/src/gnome-s...


Thank you! I appreciate it.


Finally! Now, if they could allow horizontal splits on rotated screens... because who wants two 600x1920 windows.


The drag and drop resizing reminds me of https://bluetile.org although that seems to be more powerful (arbitrary layouts, rather than just side by side).

For the record I use Xmonad on Xorg, with no DE and little mouse usage :)


I am slowly preparing to depart my lovely xmonad setup for gnome due to issues with HiDPI..., but I still love the multi-screen support in xmonad.


Does it work sensibly if I'd like to do a 3-part split too?


An interesting related idea which was prototyped and merged into Haiku OS some years ago:

video: https://youtu.be/ccniJHjo_Uw?t=124

user guide: https://www.haiku-os.org/docs/userguide/en/gui.html


If this piques your interest, you might want to give shellshape a look as well. https://extensions.gnome.org/extension/294/shellshape/ . It lets you tile your windows in a more advanced way than simply side by side.


Has Shellscape fixed the bug with size-hinted windows?

I found that when you had two terminal with size-hinting tiled, and the 'wrong' window resized, shellscape would wig out and pit the size-hints of both windows against each other, resulting in windows resting in some weird geometry and position.


One more feature request: Hitting Win-Right twice on the left monitor should move the window to the left tile of the right monitor.


I am using Gnome Shell 3.24.3 but I think this has been available for quite some time. If you hold Shift+Win and then use the arrow keys to the left/right you can move the window between the screens.


Yes, but why do I have to use a different key combination for moving windows between screens than for moving them within the screen? Besides, this moves the window to the same position on the other screen, as it currently is on the current screen.

It would be much more useful, and indeed the default in Windows and the several macOS implementations, to move the Window to the "next available tiling position" in the indicated direction. Thus, consecutive Win-Right should move the window to

- the right half of the left screen - the left half of the right screen - the right half of the right screen


In Gnome 3, I think the workspaces are arranged vertically by default. Win+Right makes me think of the workspace to the right, but the next workspace would be below.


I'm still stuck with Shelltile until quarter-tiling arrives (gotta have a browser, terminal, and editor window for maximal happiness). But, it sounds like it's coming, so that's awesome!


Nice feature. If you want more you can use a tiling windows manager in top of gnome.


Unfortunately that is not that easy anymore. There are extensions that can tile more sophisticated though.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: