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
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
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.