Skip to content

Releases: J4KE-B/tilingshell

Dynamic tiling — fork of Tiling Shell 17.3

Choose a tag to compare

@J4KE-B J4KE-B released this 02 Aug 07:38

A build of Tiling Shell with a dynamic tiling mode added on top.

Tiling Shell is Domenico Ferraro's work — I didn't write it, and if you find it useful he's the person to support (Ko-fi · Patreon). This fork exists only because upstream review is slow at the moment, not because the feature was turned down: on issue #342 he said he'd been asked for dynamic tiling many times and thought people would enjoy it. The design has been offered upstream and I'd rather it landed there.

What dynamic tiling does

Off by default. Turn it on from the switch at the top of the Tiling Shell menu in the top bar; with it off this behaves like ordinary Tiling Shell.

Windows always fill the screen, following the proportions of a layout you drew in Tiling Shell's own editor:

  • One window is fullscreen. Open a second and the space splits. Close one and the survivor takes the space back.
  • The layout used depends on how many windows are open — the leftmost layout with exactly that many tiles, else the smallest layout still larger, collapsed to fit, else the roomiest, subdivided. The editor groups layouts by tile count so this is visible, and the reorder arrows set your preference within a group.
  • The window you opened first keeps the roomiest region, whichever side of the layout it happens to be drawn on.
  • Drag a window onto another and they swap places.
  • Minimise a window and it gives up its space; restore it and it takes it back.

Also includes a fix for a bug where auto-tiling put the first window in the narrow tile of an asymmetric layout, sent upstream as #595.

⚠️ Installing this stops your Tiling Shell updates

This keeps upstream's extension UUID, and reports version 99 where extensions.gnome.org publishes 76. Because 99 is higher, GNOME will never offer you an update — you stay on this fork, looking up to date, until you go back by hand. Fixes and releases from domferr will not reach you. (That version number comes from upstream's own development branch, but the effect is the same.)

You also can't run this and upstream Tiling Shell at the same time.

gnome-extensions install --force tilingshell@ferrarodomenico.com.zip
# log out and back in — GNOME caches extension code
gnome-extensions enable tilingshell@ferrarodomenico.com

To go back:

gnome-extensions uninstall tilingshell@ferrarodomenico.com

then reinstall from extensions.gnome.org and log out and back in. Your layouts live in dconf and survive the round trip.

How well tested is this, honestly

Not very. Please treat it as something to try, not something to rely on.

GNOME 42–44 is untested. The GNOME.42-44 zip builds and is attached for completeness, but nothing has ever run it. Everything below was checked on GNOME Shell 50 only. If you're on 45 or later you're on the tested path; on 44 or earlier you're the first.

It has run on exactly one machine. One laptop, a single 1920×1080 monitor, one set of layouts, for a few hours. In particular multiple monitors are essentially unexercised — each monitor keeps its own list of windows, but two of them have never run at once here, and dragging a window from one monitor to another isn't handled at all. Expect problems there.

Bug reports here, please, not on domferr's tracker. If it still happens with dynamic tiling switched off, it's likely an upstream issue and belongs there.