Material Shell Is A New Tiling Shell For Gnome (Beta)

Material Shell Gnome

Material Shell is a new tiling shell replacement for Gnome Shell (3.32 and newer) that's currently in beta. It's tagline mentions that this extension proposes "a performant and simple opinionated mouse/keyboard workflow to increase daily productivity and comfort", while also following the Material Design guidelines.

The extension adds a new panel on the left-hand side of the screen, which has (from top to bottom) an Activities Overview button, application categories buttons (Internet, Development, Social, etc.), and a tray at the bottom.

What's more, Material Shell replaces the top bar with its own bar that lists each running application for a particular category, a + button that allows opening another application from that category, and a button to switch between tiling layouts (with 4 tiling layouts being available) for the applications in that particular category.

The window titlebar is removed for applications that don't use client side decorations, to make more space for the window contents. To close applications and windows, a close button is placed on the top Material Shell panel, and you can also use Super + Q to quit an app.

A list of maximum 12 applications is shown when clicking the + button for a certain category:

Material Shell category

Essentially, this Gnome Shell extension application groups applications in categories, each with its own tiling settings, allowing you to better organize your open windows.

If you find this a bit confusing, the Material Shell dev posted a video on Reddit which shows how this all works:

While you can use the mouse for most stuff, you may also want to use some keyboard shortcuts with Material Shell. The extension has the following keyboard shortcuts (configurable in the extension settings):

  • Desktop:
    • Super + W Navigate to the upper workspace/category.
    • Super + S Navigate to the lower workspace/category.
    • Super + A Focus the window at the left of the current window.
    • Super + D Focus the window at the right of the current window.
  • Window:
    • Super + Q Kill the current window focused.
    • Super + [MouseDrag] Move window around.

It's worth noting that in my 2 hour test (I'm using Gnome Shell 3.32.1 on Ubuntu 19.04), I ran into some bugs, most importantly one that completely freezes Gnome Shell (you can track the progress of this bug on GitHub).

Also, Material Shell is incompatible with some Gnome Shell extensions right now. For example if you use Ubuntu, you'll need to move, remove or disable Ubuntu Dock as it will overlap the Material Shell panel. Another case is that of extensions displaying text in the tray, which overflows the Material Shell tray - examples include Argos or CPUFreq Gnome Shell extensions.

[Update] Since posting this article, the bug that was causing freezes should be fixed! Also, Ubuntu Dock is now automatically disabled when the Material Shell extension is enabled. Yet another change since posting this is 2 new added tiling layouts, which means Material Shell now offers 4 different layouts:

  • Maximize (maximize all windows)
  • Auto-grid (tile windows according to screen ratio)
  • Vertical-grid (tile windows vertically)
  • Horizontal-grid (tile windows horizontally)

Install Material Shell

Material Shell is not on the Gnome extensions website yet, and there have been no releases for now, and it requires a the latest Gnome Shell 3.32. To install it right now, you'll need to clone the Material Shell Git repository in ~/.local/share/gnome-shell/extensions, in a folder called material-shell@papyelgringo. This can be done by using:

git clone ~/.local/share/gnome-shell/extensions/material-shell@papyelgringo

After installation, restart Gnome Shell (on Wayland you'll need to logout/login, while on X you can press Alt + F2 and type r, then press Enter to restart Gnome Shell), and enable the extension using Gnome Tweaks app.

When you want to update the extension (with the latest Git code), use:

cd ~/.local/share/gnome-shell/extensions/material-shell@papyelgringo
git pull

And once again restart Gnome Shell as explained above.

via /r/unixporn & /r/linux (u/PapyElGringo)