There’s cursed computing, and then there’s cursed computing. It turns out that you can render GNOME’s windows with the compositor from Windows 7, dwm.exe. Yes.
tl;dr of how this clusterfuck works: this is effectively just x11 forwarding an x server from windows to linux. the fun part is a) making gnome run with an already existing window manager (namely dwm.exe lol), b) making gnome run over x11 forwarding (it is Not a fan, last time it tried running gnome on windows this is what broke it and made it quit trying), and c) actually ripping out parts of the gnome compositor again to make dwm instead of gnome render window decorations to achieve ✨️aero gnome✨️
↫ ⬡-49016 at Mastodon
This is already one of the most cursed things I’ve ever seen, but then things got so much worse. How about Windows 7’s dwm.exe, but composited by GNOME?
- firefox and vscode are rendered by gnome
- the start menu and gadgets are rendered by dwm, and then composited by gnome
- ghostty, which literally goes above and beyond the gadgets (which you cannot do by just streaming one compositor to the other), is rendered by gnome
- and the cherry on top is gnome-control-center, which exclusively runs in gnome sessions, being managed by gnome, rendered by dwm, and composited by gnome again
this is powered by about 7 layers of duct tape and a couple hundred lines of the worst C the world has ever seen
↫ ⬡-49016 at Mastodon
I need an adult.

Could somebody elaborate how this is different from using a rootless X11 on Windows (with remote X11)?
@Z_God
If I understand you correctly, “rootless X11 on Windows (with remote X11)” would be X clients running on a Windows desktop. In that case, the server-side window decoration would be done by Windows. This is the reverse.
Normally, if the clients are displayed on a Linux desktop, it is the Linux desktop that is creating the window decorations.
In this scenario, the apps are running on Linux and the dwm.exe compositor on WIndows is doing the window decoration.
Yes, what you see in the screenshots looks the same as what you get when using Cygwin’s X.org server and running Gnome applications (either remotely or Cygwin builds).
With X11 the decorator/window manager is just another X client, which can be running either remotely or locally. I understand there’s a way to forward the Windows one over X11? I guess that relates to those lines of C mentioned.
“You may live to see man-made horrors beyond your comprehension”
~ Nikola Tesla
I’m not going to even attempt to guess that the heck is actually happening here, but i believe it was this sort of thing that we burned witches at the stake for in centuries past.
What was the reason we lost XP’s theming capabilities and 7’s aero interface again ? For what instead ? Flat 3.1’s aesthetic since Windows 8 ?
Marketing.
It’s like we throw away perfectly good dresses and pants when they “go out of fashion”.
Stupid waste of resources, if you’ll think about it… yet humanity does it for centuries and wouldn’t stop any time soon.
> What was the reason we lost XP’s theming capabilities and 7’s aero interface again ?
2 different things, and so, 2 different answers.
In Windows NT 3.x the Windows GDI — very loosely, the Windows “display server”, extremely remotely analagous to an X11 server — was a separate process.
In NT 4 it was moved into kernel mode for better performance. This reduced the stability of Windows as an OS. and meant that driver updates _required_ a reboot, but it was 1995-1996 or so and priorities were different then.
It stayed there all the way to XP. It was a ring-0 process, and XP added a service called Themes which could draw extra stuff on top of the window furniture that the GDI drew — title bars, widgets, buttons, etc.
In Mac OS X 10.2 “Jaguar,” Apple introduced Quartz Extreme. This was radical: it offloaded window management to a 3D accelerator card, a tech that previously had only been much use for games and a few specialised apps that drew 3D graphics, e.g. in OpenGL.
This was such a good idea everyone copied it. Linux got AIGLX in X.org and things like Compiz used it to display “wobbly windows”.
Windows got a compositor too: Aero, introduced in Vista. This replaced most of what GDI did, and the new stuff was incompatible with the old themes. So it brought in new themes. The main thing you can do in hardware with a 3D compositor is transparency, and so Vista got transparency everywhere. Slightly see-through title bars, translucent taskbar, translucent menus, a translucent desktop bar with gadgets: mini-apps you don’t interact with, just look at.
So Windows users lost all the themes, but instead, it all went glassy. It lost other things too: non-fatal GDI problems could corrupt the screen but with Alt+Enter you could toggle a DOS session to full-screen and then another Alt+Enter toggled it back, forcing a full-screen redraw which cleared the corruption.
An Aero window is rendering 2D window contents into a texture which is handed to the graphics card to render. You can’t just flip it full screen and back as the GPU is managing lots of windows at once.
So, no more full-screen DOS windows. Most people didn’t notice. I did. I missed them.
Why did it go away in Win8? No technical reason I know of. Fashion.
As _The Devil Wears Prada_ taught, fashion is led by a very small number of individuals who are willing to make fools of themselves in public.
Scott Forstall left Apple, and hardware designer Jony Ive took over software design. Result, to stamp his mark, all Apple products lost their realistic “skeuomorphic” design and went flat. Example: iOS 7 (2013). Mac OS X 10.9 “Mavericks” started getting versions of iOS apps brought across, the “lickable” Aqua UI started to go away, and upgrades became a free annual thing, not “when they were ready” but paid-for.
And the rest of the industry, long out of independent ideas, just copied what Apple did. Removal of physical controls, replaced with solid-state input devices with as few moving parts as possible. Buttonless phones with only a single multipurpose socket: no card slots, no headphone port. Laptops replace desktops, with trackpads as the preferred pointing device; elimination of mouse buttons, flat chiclet-type keyboards in place of full-travel sculpted keycaps; and minimisation of port types, replaced by as few connectors of as few types as they can get away with. So now, my MacBook Air has no charging port, no display connector, no networking port… just 2 USB-C ports, and I have to travel everywhere with a docking adaptor, which sucks additional battery power.
It’s cheaper, it makes devices more robust –- being waterproof is common now, although you can still do that with a device festooned with ports – and it simplifies manufacture. It removes points of failure, so reduces product returns and repairs. Which is good because it hinders repairs and upgrades. Which for manufacturers is good, because that in turn drives more repeat sales.
Largely because Apple had a bad year: https://en.wikipedia.org/wiki/Scott_Forstall#Departure_from_Apple
It copied the Swiss railway clock but didn’t license it, so it had to pay. Apple Maps didn’t work very well at first — it still has a bad name 15Y later. So, out went Scott and the hardware dude who’d driven the iPod and the iPhone took over, resulting in a trend not just in minimal design, but a sort of forced minimalism: never mind removing what is superfluous (like textured windows, and 3 or 4 kinds of I/O port), replaced by an attitude of what can we eliminate that isn’t absolutely _essential_? _All_ textures can go. _All_ transparency can go. Being able to customise things, and resize them, they can go. Being able to replace the battery can go. Being able to add ports via slots can go.
Thank you for the insight. Apart from the Mac rant (that I like) it’s fascinating to see that the Aero GPU compositor allows glassy effects, but no theming. I played with Compiz Fusion back in the days (around 2010) and you could theme the windows without problem. I cannot understand why Windows couldn’t keep that.
At least the “classic” theme that is way more readable than the flat shit we’re shoved down our throats like force-fed geese.
Why does this remind of the ending of The Substance?
Is this running dwm.exe in WINE? Is this running both Windows and Linux with X over the network? Is it a Linux VM on a Windows host or a Windows VM on a Linux host.
alexvoda,
I’m not a fan of twitter style articles like this. It’s a poor writeup for anyone who actually would like to study the thing. By carefully reading this quote, I take it to mean it’s just X11 forwarding and not DWM running on linux….
X11 client software (sometimes confusingly called an “X server”) renders window decorations on the local desktop side and not on the remote system serving up the programs. This feature is no longer supported by wayland. but it used to be practical to use X11 forwarding to run *nix GUI software on windows such that unix GUI programs would use windows decoration theme just like a native program.
But how did they get the windows managed by Gnome? As demonstrated in the PaperWM screenshots.
A rootless X server on Windows solves getting X app windows rendered on Windows and framed by DWM but they would be on a regular Windows desktop.
A rootfull X server on Windows solves getting Gnome on Windows but then apps launched would handled by Mutter.
If you do both, then Gnome (rootfull) and the rootless app windows would all just be independent windows on Windows. Gnome would not have control over those rootless windows.
Something is looping things back into Gnome. Is this something like Cassowary?
Local VMs would make sense for such a scenario to minimize latency. But then they claim they are ripping out parts of Mutter so that made me think maybe this is actually using WINE.
Note: Cassowary uses FreeRDP to forward separate Windows windows to Linux instead of the entire desktop. So the chain I am thinking of would look like this:
X client app on Linux -> rootless X server on Windows VM -> get composited by dwm.exe (and receives window decoration) -> gets sent over RDP back to Linux host -> gets displayed by FreeRDP in a decoration free window -> gets composited by Mutter (which does not add any decorations because it does not support SSD) and managed by Gnome
But in this scenario there is nothing to rip out. So what is actually happening here?
alexvoda,
Don’t know.
Is there any X11 software that forwards windows to linux? Can RDP do that? I know that citrix can, but I wouldn’t think that’s what was used here.
I don’t read it that way, but it’s such a poor write-up. Even in the thread itself commenters are unclear about what is going on.
Edit: I see you just posted a new comment. We have some similar guesses. Who knows though.
Checking it a bit more, I can confirm that assumption was wrong.
What is clear so far is that this is a Linux VM on top of VirtualBox on Windows.