Saturday, August 10, 2024

Linux History of Window Managers

 I was wondering why Kwin (KDE and Plasma were given up by me long time ago) is popular among YouTube guys.

It has the most number of Visual Effects and Appearances.

Looking at the history Enlightenment Desktop was one of the earliest which I have tried in the past. Then to KDE of SUSE and ultimately Simple Gnome Desktop of my choice.

I am one who is promoting Small is beautiful!

For me Gnome Desktop is enough without effects of Tiling, Staking and Compositing coming from the X11 background of Puppy Linux.

I would not have discovered any of these if I did not intend to write a book on Linux Essentials. The book I intend to finish in 100 pages has gone up to 300 pages now. It took the longest time for book and all the same worth the trouble.

It is on editing stage with lot of typos.

Metisse

Metisse is a 2.5D X window manager with many features that set it apart from the traditional 3D "cube" workspace. Windows can be turned three-dimensionally in any direction, enabling the user to fit more windows onto a screen, and they can be scaled,   all the while remaining fully operational.                    

The development team has avoided such effects as wobbly windows, giving functionality and productivity higher priority than eye candy.

Metisse was available for Mandriva One 2007, PCLinuxOS 2007, Sabayon Linux, Arch Linux as well as FreeBSD and Mac OS X. Metisse is free and open source software subject to the terms of the GNU General Public License (GPL).

Sawfish

Sawfish is a window manager for the  X Window System. It aims to manage windows in the most flexible and attractive manner possible. It is able to match a window by multiple criteria such as application, size, role and based on this, it can change the window's position, appearance, or behaviour.      This allows for highly customised window handling such as web browser windows opening in full screen without borders on a secondary monitor, a default terminal emulator window displaying full screen at the desktop level and all dialog box windows under             a certain size opening on the lower right corner of the main monitor while larger ones are centered.

Sawfish uses a Lisp-like scripting language, repository, for all of its code and configuration, making it particularly easy to customise or program many kinds of behaviour, responding to window creation, deletion, or any other changes.

There is a GUI configuration utility for users who do not wish to edit configuration files directly.

Sawfish was first called Sawmill. The name was changed because another software program had the same name. It was the standard window manager of the GNOME desktop environment until it was replaced by Metacity in Gnome 2.2.

Metacity

Metacity was the default window manager used by the GNOME 2 desktop environment until it was replaced by Mutter in GNOME 3. It is still used by GNOME Flashback, a session for GNOME 3 that provides a similar user experience to the Gnome 2.x series sessions.

The development of Metacity was started by Havoc Pennington and it was released under the GNU General Public License. Before the introduction of Metacity in GNOME 2.2, GNOME used Enlightenment and then Sawfish as its window managers.

Although Metacity was designed to integrate into the GNOME desktop, it does not require it to run, while GNOME can be used with different window managers provided that they support the part of the ICCCM specification that GNOME requires.

Metacity uses the GTK graphical widget toolkit to create its user interface components, which makes it themeable and makes it blend in with other GTK applications. Originally, Metacity used GTK 2 however as of version 3.12.0 it has been ported to GTK 3.

Metacity's focus is on simplicity and usability rather than novelties.

Its author has characterised it as;

"Boring window manager for the adult in you. Many window managers are like Marshmallow Froot Loops. Metacity is like Cheerios."

People in favour of Metacity say that it is aimed at new computer users who do not need the abundant options and functionality of Sawfish or Enlightenment.

Havoc Pennington wrote an essay explaining why he wrote Metacity and simplified the GNOME desktop.

Despite the incomplete state of Metacity theme development documentation, many themes have been written for Metacity. A popular theme engine is Clearlooks, which was the default in GNOME from version 2.12, until the release of GNOME 3 and GNOME Shell.

Mutter

Mutter is a window manager initially designed and implemented for the X Window System but then evolved to be a Wayland compositor. It became the default window manager in GNOME 3, replacing Metacity which used GTK for rendering.

Mutter uses a graphics library called Clutter giving it OpenGL capability. "Mutter" is a portmanteau of "Metacity" and "Clutter". Mutter can function as a standalone window manager for GNOME like desktops and serves as the primary window manager for the GNOME Shell, which is an integral part of GNOME 3. Mutter is extensible with plug-ins, and supports numerous visual effects. GNOME Shell is written as a plug-in to Mutter.

Muffin

Muffin is a fork of Mutter by the Linux Mint team for their Cinnamon desktop environment. Cinnamon's shell, a fork of GNOME Shell, is written as a plugin for Muffin.

Sway

Sway is a tiling window manager and Wayland compositor, inspired by i3 and written in C. Sway is designed as a drop-in replacement for i3 using the more modern Wayland display server protocol and wlroots compositor library. Sway works with existing i3 configuration files and supports most of i3's features while providing several new features of its own.

Sway's default controls for manipulating windows are similar to Vi. Window focus is controlled by a combination of theSuper-Key and one of the keys h, j, k, or l. Window movement is performed by the same combination of keys with the addition of the shift key.

Like i3, Sway can be extended and manipulated using its Unix domain socket and JSON-based IPC interface from many programming languages.

Sway's first stable release was on March 11, 2019 after 3.6 years of development.

Sway replicates several of i3's features:

Configuration is performed via a plain text file.

Window tiling is handled manually, rather than dynamically.

Windows can be split horizontally or vertically.

Windows can be arranged in a tabbed (horizontal listing) or stacked (vertical listing) layout.

Windows can be floated similar to a floating window manager.

Tiled and floated windows can be resized or moved using both the mouse and keyboard.

Sway can be completely driven from the keyboard.

Sway also provides several unique features.

Supports multiple non-modifier keys when assigning key bindings.

Windows on the same workspace can be split into multiple containers, such that one set of windows might be arranged in a tabbed layout while the other windows on the workspace might be tiled normally, floating or arranged in a stacked layout.

Handles input, output, and wallpaper configurations instead of relying on separate programs.

KWin

KWin is a window manager for the X Window System and a Wayland compositor. It is released as a part of KDE Plasma, for which it is the default window manager. KWin can also be used on its own or with other desktop environments.

KWin can be configured by scripting using QML or QtScript, both of which are based on ECMAScript.

Version 5.0 was the first release based on KDE Frameworks 5 and Qt 5.

5.12 Released February 2018, KWin/X11 got features frozen, meaning no new X11 specific features will be added.

Martin Flöser stated that new features are easy and straight forward with the Wayland back-end, but require considerably more development to add the same feature to the X11 back-end.

There are many window decorations for KWin, including the current default Breeze, the previous default Oxygen, Microsoft Windows like Redmond, and Keramik.

Currently available compositing backends include OpenGL 1.2, OpenGL 2.0, OpenGL 3.1[11] and OpenGL ES 2.0.

It include many Effects and Appearances

Inverts the colour of the desktop and windows

A screen magnifier that looks like a fish eye lens

Magnify the section of the screen that is near the mouse cursor

Makes the entire desktop look sharper

Helps locate the centre of the screen when moving a window

Display a mouse cursor locating effect when activated

Magnify the entire desktop

Appearances include;

Make windows explode when they are closed

Make windows smoothly fade in and out when they are shown or hidden

Fade between virtual desktops when switching between them

Close windows fall into pieces

Highlight the appropriate window when hovering over taskbar entries

Smoothly fade to the desktop when logging in

Desaturate the desktop when displaying the logout dialog

Simulate a magic lamp when minimizing windows

Animate the minimizing of windows

Allows you to draw lines over your desktop

Animate the appearance of windows

Make modal dialogues smoothly fly in and out when shown or hidden

Slide windows across the screen when switching virtual desktops

Sliding animation for Plasma Popups

Display window thumbnails when hovering over taskbar entries

Display window thumbnails on the edge of the screen

Make windows translucent under different conditions

Compiz

Compiz is a compositing window manager available for usage without leaving familiar interfaces such as the ones from GNOME, KDE Plasma or Mate. One of its plugins called Grid allows the user to configure several keybindings to move windows to any corner, with five different lengths. There are also options to configure default placement for specific windows. The plugins can be configured through the Compiz Config Settings Manager / CCSM.

Compiz is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization, animation or a cube workspace are implemented as loadable plugins. Because it conforms to the ICCCM conventions, Compiz can be used as a substitute for the default Mutter or Metacity when using GNOME Panel, or KWin in KDE Plasma.

Internally Compiz uses the OpenGL library as the interface to the graphics hardware. The Hardware requirements are very specific. Initially, Compiz only worked with 3D hardware supported by Xgl.               Most NVIDIA and AMD graphics cards are known to work with Compiz on Xgl. Since May 22, 2006 Compiz works on the standard X.Org Server, by using AIGLX. Besides Intel GMA graphics cards, AIGLX also supports using AMD graphics cards using the open source radeon driver which supports GLX_EXT_texture_from_pixmap since fall 2006.

NVIDIA's binary drivers support GLX_EXT_texture_from_pixmap on standard X.Org server and AMD's binary drivers do since version 8.42.

By the early 2000's, both ATI and Nvidia drivers became increasingly common on Linux. Advanced OpenGL development was no longer restricted to expensive UNIX workstations. Around the same time, Xgl, Xegl and AIGLX gave Xorg the possibility of using OpenGL for transformation and effects on windows surfaces. With the foundations finally available for tinkering xcompmgr pioneered the features of a compositing window manager.

Beryl

Beryl was the project name for the quinnstorm branch of Compiz, announced on September 19, 2006 after Compiz developer Quinn Storm and the development team decided that the fork had come too far from the original Compiz-vanilla started by Novell. After the Novell XGL/Compiz team refused the proposition to merge the Quinnstorm changes with Compiz-vanilla, the decision was made to make a real differentiation.

Among the differences to Compiz, Beryl had a new window decorator named Emerald based on cgwd along with a theme manager called emerald-theme-manager, used a flat-file back end instead of gconf and had no GNOME dependencies.

Luminocity

An effort called Luminocity began with some GNOME developers to make use of recent developments. In March 2005, the Luminocity project already featured effects like "wobbly windows", "physics models for window moving", "live updating workspace switcher" and "alpha compositing". Given that Luminocity was mostly a prototype, its development soon was abandoned but some of its effects and behaviors were later implemented by Compiz.