Gnome extension with a tiling function
Strictly Structured
The Gnome extension Material Shell organizes the windows on your desktop, giving you many options for smoothly switching between different applications and views.
Ever since Xerox Alto, the first workstation with a graphical user interface, was introduced in 1973, computer users have been pushing windowed applications across the screen with a click of the mouse [1]. At that time, the motion was still very jerky when moving open applications. Today, organizing applications on the desktop is hardly likely to faze the computer's graphics card.
Especially on systems with small monitors, however, freely floating windows have disadvantages: For example, the control elements for reducing, enlarging, or closing windows require valuable space on the screen. The now common screen format with resolutions in the 16:9 ratio intensifies the problem compared to the previously common 4:3 format. There is a massive amount of space available horizontally, but every pixel counts in the vertical direction.
Many users therefore prefer a tiling window manager (like i3 or herbstluftwm) that organizes the windows in a static grid on the screen. If windows cannot be moved freely, you don't need a window bar. In addition, there is often no need to use the mouse – the windows can be arranged on the screen using keyboard shortcuts.
However, only a few distributions like Regolith [2] contain such a window manager in their standard configurations, and the window managers retroactively installed on other distros often need much adjustment. For this reason, tiling window managers are still not as widely used as you might expect despite their suitability for everyday use. If you are tempted to switch to a tiling window manager but are worried about the installation overhead it involves, you may want to take a look at Material Shell [3]. It is not a standalone window manager, but integrates directly into Gnome Shell as an extension that can easily be turned on or off.
Unlike other Gnome extensions, Material Shell does not simply add a new menu or a few new icons to the desktop; the extension completely restructures the Gnome desktop. For this article, we tested how Material Shell performs on Gnome 3.38.1 based on a current Arch Linux system and on Ubuntu 20.10 (also with Gnome 3.38).
Installation
To install, you need the help of the Gnome Shell Extensions [4] website. All you have to do is open the project site in the browser, flip the switch from off to on, and then allow the installation. For this to work, you may need to enable Gnome Shell integration in the web browser you are using. Suitable add-ons are available for Google Chrome and other Chromium-based browsers [5] and also for Mozilla's open source browser, Firefox [6].
After importing the extension, the function can be (de)activated as required using the Extensions app or Optimizations (in the Extensions tab). Using the button in the applications window bar, you can completely disable and enable support for extensions (Figure 1). This option to disable the extensions is especially important when an upgrade from one Gnome version to the next is imminent (see the "Upgrades" box).
Upgrades
Gnome extensions are known to break when upgrading from one version of Gnome to another. In the best case, the extension will simply stop working; in the worst, Gnome will refuse to start after login. Especially with rolling release distributions, like Arch Linux or Manjaro, you therefore need to be sure to disable all Gnome extensions before installing version updates.
This situation is also an issue for the Gnome developers. With the desktop APIs changing with every release, Gnome extensions programmers have to revise their work and adapt it to the new features in a Gnome release. In the future, however, the Gnome desktop's main developers will be looking to work more closely with the community. The Gnome Extensions Rebooted initiative promises a number of improvements [7].
Always Organized
By enabling Material Shell, the desktop rebuilds itself completely. Instead of only one panel at the top of the desktop, the shell now shows two panels, top and left at the edge of the screen.
The left bar serves as a system panel, and at the bottom of the bar you will find the notification area with menus for network access, or shutting down and restarting the computer. At the top of the bar you will find icons for different workspaces. Material Shell allows you to create multiple workspaces, or virtual desktops, and this is where you will create and switch between them.
You can create additional workspaces by pressing the plus button in this left-hand panel. The shell automatically adapts the icon of the new desktop to the applications loaded there. This means that you can distinguish between a desktop for the browser, one for image editing, and another for the development environment without having to search for them. For example, if you launch Gimp or an image viewer, Material Shell automatically sets a painting palette as an icon. If necessary, you can change the icon by right-clicking on the entry in the panel.
The Hybrid option shows the icon of the application (if there is only one application); the Applications preview option shows the icons of the programs currently active on the desktop. Optionally, you can select an application category (Figure 2).
The other panel is called the workspace panel, and it is found at the top of the screen. This is where you will find the applications currently loaded in the active workspace as well as a layout switcher on the far right that switches between the various views.
You need to pay special attention to this switch. If you have launched several applications, you can click on the icon to switch between the various views, such as Maximize (current application maximized), Split (two applications side by side as shown in Figure 3), Half (one application completely in the left half, the others stacked on top of each other on the right) and Grid (all applications fitted to a dynamic grid). In Float mode, all windows float freely on the desktop as usual (Figure 4).
In Split mode, Material Shell only ever draws two applications on the screen at any given time. If you are using additional applications, you can use the workspace panel to switch to the windows behind it. If you want to change the order, simply drag the corresponding window to the left or right. This can be done via the window itself or via the tab in the workspace panel. Alternatively use the keyboard shortcuts Super+Shift+A (current window to the left) and Super+Shift+D (to the right). The same is true for reordering in the other modes (Figure 5).
Good Memory
Many users always start a day at the office with the same ritual, for example: Turn on the computer, get a coffee while the computer is booting, log back into the system, launch all the applications needed, and arrange them on the desktop. Although Material Shell does not make coffee, it does save you from having to start and organize your applications.
When logging out of the desktop environment, Material Shell remembers the last active applications and their arrangement on the screen. After logging in, the system starts up with the last known layout and shows placeholders for the programs last loaded there (Figure 6). By clicking on the individual icons, you can then launch the linked applications. If the programs come with a session manager, the latest version is automatically loaded.
You can customize Material Shell's behavior in the extensions settings (Figure 7). Open the dialog by clicking on the gearwheel icon in Extensions or Optimizations. For example, you can enable a bright theme, change the color for the highlights in the panels, or set individual keyboard shortcuts for switching between windows or workspaces. In the Layouts tab, you can also selectively disable modes that you use only rarely or not at all or enable those that are not yet active in the default configuration.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.
-
Fedora KDE Approved as an Official Spin
If you prefer the Plasma desktop environment and the Fedora distribution, you're in luck because there's now an official spin that is listed on the same level as the Fedora Workstation edition.
-
New Steam Client Ups the Ante for Linux
The latest release from Steam has some pretty cool tricks up its sleeve.
-
Gnome OS Transitioning Toward a General-Purpose Distro
If you're looking for the perfectly vanilla take on the Gnome desktop, Gnome OS might be for you.
-
Fedora 41 Released with New Features
If you're a Fedora fan or just looking for a Linux distribution to help you migrate from Windows, Fedora 41 might be just the ticket.
-
AlmaLinux OS Kitten 10 Gives Power Users a Sneak Preview
If you're looking to kick the tires of AlmaLinux's upstream version, the developers have a purrfect solution.
-
Gnome 47.1 Released with a Few Fixes
The latest release of the Gnome desktop is all about fixing a few nagging issues and not about bringing new features into the mix.
-
System76 Unveils an Ampere-Powered Thelio Desktop
If you're looking for a new desktop system for developing autonomous driving and software-defined vehicle solutions. System76 has you covered.
-
VirtualBox 7.1.4 Includes Initial Support for Linux kernel 6.12
The latest version of VirtualBox has arrived and it not only adds initial support for kernel 6.12 but another feature that will make using the virtual machine tool much easier.