News: 1713890712

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Miracle-WM tiling window manager for Mir hits 0.2.0

(2024/04/23)


Mir-based tiling window manager Miracle-WM version 0.2.0 is here, building on the basis of the initial release. Will Mir bring peace and harmony and convergence after all?

Even if [1]developer Matthew Kosarek 's own [2]roadmap says that he only expects it to start settling down with the next version, which he hopes to [3]release at the beginning of June, it's good to see work continuing. The open source landscape is littered with the rusting hulks of thousands of abandoned projects that never got a second version after their initial release.

[4]We covered the initial release of Miracle-WM back in February.

[5]

Miracle-WM is a prototype tiling window manager, somewhat in the mold of [6]SwayWM , a tiling WM for Wayland inspired by the [7]X11-based i3 . As we [8]described when GNOME starting investigating tiling , such environments are the modern weapon of choice for a lot of Linux folks who mainly live in the terminal. Quite a lot of people prefer to use console-based text-only tools rather than a graphical file manager, a graphical text editor, graphical messaging clients, and so on. Such console apps generally have purely keyboard-oriented UIs and once you've learned them, they can be extremely fast and efficient. "Edit at the speed of thought" is the tagline of a [9]popular guide to the Vim editor , which is how experienced terminal users describe the feeling.

[10]

[11]

(If you know the [12]keystrokes of the standard CUA interface , driving Windows – especially one of the older, faster versions – feels rather similar, since almost all Windows software shares the same UI and keystrokes. Well, until [13]Office 2007 and its Ribbon anyway.)

What is interesting to The Reg FOSS desk is that Miracle-WM runs on top of Mir, as does the [14]experimental Miriway compositor we looked at last year. This is relatively unusual in the world of Wayland.

What is Wayland anyway?

Wayland is on its way to replacing the venerable X.org and X11, which will [15]turn 40 years old in June , but there's still a lot of misunderstanding of what it is. Wayland isn't a new display server. X11 isn't either. The trouble is that when one implementation of something becomes so ubiquitous that most people have never seen anything else, a sort of [16]synecdoche can occur. [17]X.org is not the only display server that implements X11, but it is the only one for modern Linux, FreeBSD, and NetBSD. Even OpenBSD's [18]Xenocara is still based on X.org.

Most proprietary UNIX variants included their own, equally proprietary X11 servers. Long ago, in the early days of Linux, there were commercial X11 servers for Linux too, such as [19]Xi Graphics' Accelerated-X and [20]Metrolink Metro-X . These were replaced by a community-built FOSS X11 server called [21]XFree86 . In 2004, a difference in opinion over how to [22]run the XFree86 project led to a [23]new fork of the code ; that server ended up being known as X.org.

[24]

For about 20 years, the X.org X11 server has been the default choice for FOSS Unix-like OSes for commodity computers, but it's not the only one. The [25]X11 protocol is a standard, and even today, there are still more than one other server that implements it.

The way X11 works is that the computer that will display a GUI runs a display server, and other applications connect to it as clients and can display windows. (Yes, the bit you look at is the server, and the programs are clients, and yes, [26]the terminology is confusing .)

Having just one full-screen program would be limiting, so normally, most computers with X11 run a window manager, which divides the screen up into multiple windows – maybe overlapping, maybe stacked, maybe tiled neatly side-by-side, it doesn't really matter – which lets the user see and interact with more than one program at a time on their screen. So the minimal configuration is usually an X11 server and a window manager.

[27]

This first came to X.org in an extension called [28]AIGLX and went mainstream in about 2006 when [29]Compiz appeared. Since then, most graphical Linux machines run a rather more complicated setup, which involves a program called a compositor drawing the contents of windows into textures on the surface of rectangles in the memory of a hardware 3D accelerator, which composes these rectangles together into an on-screen image – a technology first seen in Mac OS X 10.2 and [30]dubbed Quartz Extreme .

[31]Fedora 40 is just around the corner with more spins and flavors than ever

[32]Lightweight LXQt 2.0.0 updates to same toolkit as KDE Plasma 6

[33]Qt Ubuntu 24.04 betas show that there's room to innovate

[34]Debian spices up APT package manager with a dash of color, squishes ancient bug

Wayland is a new, simpler protocol for programs to draw output on a screen. Most Wayland implementations combine into a single program, called a Wayland compositor, the functions of what would be several separate programs in an X11 system: a window manager, a window compositor, and a display server. (Yes, this means that a Wayland compositor is a different thing from an X11 compositor. We warned you that the terminology is confusing.)

Incidentally, X11 was designed to work over networks as well as locally, but that is because it predates even 2D graphics accelerators, let alone modern 3D cards. A common criticism of Wayland is that it doesn't work over network connections … but neither does all this fancy OpenGL-based stuff. Meanwhile, there are now tools like [35]Waypipe , which lets Wayland run over SSH.

Compositors everywhere

If you are keen enough, Wikipedia has some good articles, tracing the development from [36]Xgl to [37]AIGLX to the modern [38]Direct Rendering Infrastructure , including the kernel's [39]Direct Rendering Manager . (Not to be confused with the other DRM involved in video, [40]Digital Rights Management . The TLAs are just one of the things making this confusing.)

Pretty much all traditional Linux desktops were built around the X11 model, which means that most have their own specially written window managers. KDE has kwin , Xfce has xfwm4 , GNOME has Mutter , and so on. To move these environments to Wayland, those window managers have to be rewritten to be full compositors. That is quite a significant task, and it's why there are, so far, still basically two full desktop environments using the new protocol, GNOME and KDE.

(This dependence upon the compositor is also one of the weak points of the Wayland design, which we have rarely seen mentioned online but did come up at last year's Ubuntu Summit. For all that it's complex, the X.org X11 server is very solid. So long as you can get it configured and displaying correctly, it almost never fails. An X11 window manager is just one relatively small part of the Linux graphics stack, and if your window manager crashes and dies, which can happen, it's not the end of the world. Your programs keep running, and if you can get to a command line, you can try to restart the WM, or run another one instead. If the window manager is also acting as your Wayland compositor, though – which is relatively new and unproven code – then if that crashes, you lose everything. Your entire GUI and all GUI programs that were running.)

It's looking quite likely that [41]LXQt 2.1 will be the third full Wayland-based desktop, although it's possible that [42]Linux Mint's Cinnamon 6 may get there first.

If you don't need a full desktop, a simpler window manager on its own may be enough. As such, there are quite a few of these now, and as you can see from the [43]Arch wiki's list , many of them are based on an existing compositor called [44]wlroots .

This plethora of different Wayland compositors is why we are still watching the development of Canonical's [45]Mir display server , over a [46]decade after The Reg covered its announcement . Almost uniquely among Wayland projects, Mir isn't tied to a particular windowing environment or desktop.

In turn, that's why we're interested in Miracle-WM. It runs on Mir, as does the Lomiri desktop, which is [47]now included in Debian . Mir also forms [48]part of Ubuntu Touch . These effectively demonstrate that Mir can be used by separate projects. There's a possibility that this tool, which survived the [49]cancellation of Canonical's fondleslab efforts in 2017, may yet stage a comeback in the brave new Wayland world. ®

Get our [50]Tech Resources



[1] https://matthewkosarek.xyz/

[2] https://github.com/mattkae/miracle-wm/blob/master/ROADMAP.md

[3] https://github.com/mattkae/miracle-wm/releases/tag/v0.2.0

[4] https://www.theregister.com/2024/02/27/miracle_tiling_wm/

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZigveyI47O4KquZoqiLlywAAANM&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[6] https://swaywm.org/

[7] https://i3wm.org/

[8] https://www.theregister.com/2023/08/01/gnome_considers_tiling_by_default/

[9] https://pragprog.com/titles/dnvim2/practical-vim-second-edition/

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZigveyI47O4KquZoqiLlywAAANM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZigveyI47O4KquZoqiLlywAAANM&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[12] https://www.theregister.com/2024/01/24/rise_and_fall_of_cua/

[13] https://www.theregister.com/2007/01/23/microsoft_office_2007_uptake/

[14] https://www.theregister.com/2023/07/28/mir_canonicals_wayland_compositor/

[15] https://www.theregister.com/2022/06/22/the_x_window_system_just/

[16] https://www.merriam-webster.com/grammar/synecdoche-metonymy-usage-differences

[17] https://www.x.org/wiki/

[18] https://xenocara.org/

[19] http://www.xig.com/Pages/ProductLine.html

[20] https://www.linuxjournal.com/article/2299

[21] https://www.xfree86.org/

[22] https://blogs.oracle.com/solaris/post/the-difference-between-xorg-and-xfree86

[23] https://lwn.net/Articles/79302/

[24] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZigveyI47O4KquZoqiLlywAAANM&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[25] https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html

[26] https://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture

[27] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZigveyI47O4KquZoqiLlywAAANM&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[28] https://fedoraproject.org/wiki/RenderingProject/aiglx

[29] https://www.compiz-fusion.org/

[30] https://www.theregister.com/2002/06/18/apple_announces_first_rack_servers/

[31] https://www.theregister.com/2024/04/22/fedora_40_at_rc_stage/

[32] https://www.theregister.com/2024/04/20/lxqt2_updates_to_qt6/

[33] https://www.theregister.com/2024/04/19/qt_ubuntu_2404_betas/

[34] https://www.theregister.com/2024/04/18/apt_3_debian/

[35] https://gitlab.freedesktop.org/mstoeckl/waypipe

[36] https://en.wikipedia.org/wiki/Xgl

[37] https://en.wikipedia.org/wiki/AIGLX

[38] https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure

[39] https://en.wikipedia.org/wiki/Direct_Rendering_Manager

[40] https://en.wikipedia.org/wiki/Digital_rights_management

[41] https://www.theregister.com/2024/02/29/lxqt_2_is_coming/

[42] https://www.theregister.com/2023/12/01/cinnamon_6_kde_6b/

[43] https://wiki.archlinux.org/title/wayland

[44] https://drewdevault.com/2018/02/17/Writing-a-Wayland-compositor-1.html

[45] https://mir-server.io/

[46] https://www.theregister.com/2013/03/05/canonical_mir_announcement/

[47] https://www.theregister.com/2023/02/27/lomiri_desktop_on_debian/

[48] https://www.theregister.com/2023/03/29/first_focal_based_ubuntu_touch/

[49] https://www.theregister.com/2017/04/05/ubuntu_euthanizes_unity/

[50] https://whitepapers.theregister.com/



I3

Rich 2

I’ve used i3 for ages and my advice to anyone who hasn’t used a tiling WM before is to give it a go.

All the faff with moving windows out of the way, or with them popping up over the top of what you’re working on, or just getting them arranged so you can work efficiently (which you never can because the mouse is still needed 99% of the time) simply evaporates. It’s bliss :-)

As for “…driving Windows – especially one of the older, faster versions…” - I think that says all anyone needs to know about the state of the software industry

the point

captain veg

Until recently I didn't really get the point of Wayland. Sure, I understood that X is a network protocol that introduces overhead on machines that are both the X server and running the X clients, but it didn't seem to matter much, practically.

Then, wanting to run certain Android apps I attempted to install Waydroid. Which depends on Wayland.

I still don't much get the point of Wayland, and now I don't much get why I need it to run Android apps on Linux. Still, having the option on Linux Mint is / will be* nice.

-A.

* It exists "experimentally" in Virginia, but only (in my experience) if you are happy with a US QWERTY keyboard layout.

Secure remote admin, anybody?

steelpillow

Back in October 2001 I was explaining X.11 to RISC OS geeks.

10 years later I learned that it is not suited to administering highly secure systems because it is inherently insecure for a service (unusually, on the sysadmin's desktop) to initiate a connection to a service (unusually, in the secure cell).

Getting a secure server to deliver a Wayland experience to a sysadmin client does not seem to be going much better.

Today see a lot of Linux services with Windows-native admin GUIs that appear to talk to Mummy over ssh or https or whatever - no standalone device mode.

What is needed is a server which, when asked, gathers up the WIMP stuff and squirts it down a pipe, and a client which connects (e.g. remotely) to the server and asks to have the stuff squirted at it for the duration. Where the cut should come in the display/window/compositing/rendering/kitchen-sink chain I would not know, I am not really in that world any more.

Is anything, say Waypipe, anywhere near that yet?

To be clear about tiling and living in the terminal

unimaginative

such environments are the modern weapon of choice for a lot of Linux folks who mainly live in the terminal

Keyboard driven tiling window mangers may appeal to people who live in the terminal.

Tiling window managers in general appeal because large monitors are now common. It makes sense to split them up and have multiple windows showing at once to reduce switching windows. Much the same as how many people use multiple monitors.

With large wide monitors everything showing text does not need the width: terminals, web browsers, word processors text editors. The only things I use for which the full width of my monitor is useful are email clients (folder list + message list + message stacked horizontally) and big spreadsheets.

It is better to kiss an avocado than to get in a fight with an aardvark.