commit: fcfcff335b0f7738945186057c41a8928b45920d
parent be2507f80f5732e10810080f9794e5f459a34e0a
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Sat, 11 Mar 2023 10:41:09 +0100
articles/Why I embraced Wayland: Migrate to Atom fragment
Diffstat:
6 files changed, 167 insertions(+), 25 deletions(-)
diff --git a/articles/Why I embraced Wayland.html b/articles/Why I embraced Wayland.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude" xml:lang="en" lang="en">
+ <head>
+ <meta charset="utf-8"/><link rel="stylesheet" type="text/css" href="/css/index.css?serial=2023020902"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="vcs-git" href="https://gitlab.com/lanodan/blog.git" title="gitlab"/><link rel="icon" type="text/css" href="/images/favicon.png?serial=2020111201"/><meta property="og:image" content="/images/avatar.png?serial=2020111201"/>
+ <title>Why I embraced Wayland - lanodan's cyber-home</title>
+ </head>
+ <body>
+
+ <header>Sorry, I do not value($$$) your privacy. :^) — <a href="/privacy%20policy">Privacy Policy</a></header>
+ <nav><details open="">
+ <summary>Links</summary>
+ <ul>
+ <li><a href="/home">Home</a></li>
+ <li><a href="/about">About</a></li>
+ <li><a href="/projects/">Software Projects</a></li>
+ <li><a href="/animelist">Anime List</a></li>
+ <li><a href="/mangalist">Manga List</a></li>
+ <li><a href="/bookmarks">Bookmarks</a></li>
+ <li><a href="/coding%20style">coding style</a></li>
+ <li><a href="/decreases%20of%20usability">Decreases of usability</a></li>
+ <li><a href="/software%20basic%20needs">Software basic requirements</a></li>
+ <li><a href="/recaptcha">Google ReCaptcha</a></li>
+ <li><a href="/git/">/git/</a></li>
+ <li><a href="/kopimi/">/kopimi/</a>: libre data</li>
+ <li><a href="/librism">Désintox’ / FOSS activism</a></li>
+ <li><a href="/notes/">/notes/</a></li>
+ <li><a href="/standards">standards</a>: opinions on them</li>
+ </ul>
+ <ul>
+ <li><a rel="alternate" type="application/atom+xml" href="https://hacktivis.me/feed.atom">Atom feed</a></li>
+ <li><a href="gemini://hacktivis.me/">gemini-space</a></li>
+ <li><a href="https://lanodan.eu/home">Resume</a></li>
+ </ul>
+ </details></nav>
+
+ <article>
+ <div xml:lang="en" lang="en" class="h-entry">
+<a href="/articles/Why%20I%20embraced%20Wayland"><h1>Why I embraced Wayland</h1></a>
+<p>Some of the folks that knew me from around 2014 know that I wasn't impressed with Wayland and really didn't see the point of it. X11 worked well enough for me and I didn't want to switch to something else, it felt like reinventing new stuff just for the sake of it to me (like systemd and pulseaudio; the fuck are those doing on freedesktop.org in the first place…). And I disagreed quite badly on it, sorry for folks related to wayland. Hopefully less and less folks will do this "politically conversative" opinion and actually wonder about the reasonings.</p>
+<figure>
+ <img src="/images/Firefox%20overlaying%20st%20on%20my%20laptop.png"/>
+ <figcaption>Screenshot of firefox chunks ghosting over the terminal on my NVidia laptop running on XOrg</figcaption>
+</figure>
+<p>The motivation was because using X11/XOrg (specially with NVidia) gave me some years of:
+<ul>
+ <li>applications like Firefox shitting all over the desktop at times, leaving ghosted areas;</li>
+ <li>all applications being able to send any and receive all keyboard+mouse input with no real solution against that (I know XTerm has some option to steal all keyboard input, didn't work for me);</li>
+ <li>non-orthogonality of input device settings; XOrg allows to have a different settings on each and would require managing hotplug events but XOrg tools (<code>setxkbmap(1)</code>, <code>xmodmap(1)</code>, …) are done for a display server that would support only one layout setting and manage events by itself</li>
+ <li>display configuration hell, I know how to use <code>xrandr(1)</code> for some arcane things now (including trashing the concept of VTs, thanks linux) but what a mess and of course no support for hotplugging (which is a mess unless you use a tiling window manager like XMonad);</li>
+ <li>normal applications being able to trash your setup (ie. multi-monitor to a single display at 640x480) and no restoring if they crash down or don't care;</li>
+ <li>applications often behaving weirdly when a tiling window manager resizes them automatically;</li>
+ <li>still having this software-gore bug where moving a window on top of another leaves some of it frames behind, I love having that bug after 2020 when it should have been fixed well before 2010;</li>
+ <li>some games window just disappearing a bit after initialization (spawns a blank window and immediately goes away), probably related to a missing quirk/extension but haven't found wtf was happening;</li>
+ <li><a href="https://www.jwz.org/xscreensaver/faq.html">An absolute horror for even just basic screen locking/saving</a>.</li>
+</ul></p>
+<p>
+ And that made me just done with X11 and it's design of being similar to a Unix where everyone is root… so basically not a Unix. <q>If you find yourself saying that X is the Unix way: What one thing is X doing and what is it doing well?</q><cite>Daniel Stone</cite><br/>
+ By the way, if you're that kind of people which is like "X11/Xorg never threw me a bug" you're likely just ignoring the elephant in the room in the first place or not seeing it as a bug (this is why I usually don't care about statements like "$thing just works for me" and "$thing never broke for me", there is high chances of it being delusional or clueless).<br/>
+ Plus with <em>actually informing myself about the wayland protocol design</em> rather than just seeing that you can rotate windows in weston (which is labelled a reference compositor but should be taken as a demo) and that GNOME is doing it's normal thing of trashing everything in it's way, specially good things <a href="https://www.jwz.org/doc/cadt.html">like an awful teenager</a>.
+</p>
+<p>
+ But at some point I gave <a href="https://swaywm.org">Sway</a> an honest try on my NoVidya-plagued laptop, the one where the screenshot at the begining of this article comes from and I actually ended up with less bugs, it was still a mess because of NVidia having trashed the proprietary driver so much that nouveau, an open-source garage-hacker alternative that they're unfriendly with worked better, you know the adage: Fuck You NVidia.<br/>
+ At least now that I replaced that badly aged laptop (Spectre/Meltdown was the final blow) with <a href="/articles/T495">a full-AMD one</a> (yay, no proprietary drivers), I don't have X11 kind of issues nor NoVidya kind of issues.<br/>
+ Oh and my phone already was using Wayland (in fact it doesn't have X11) since 2015~2016 as I switched to SailfishOS because Android is a system that loves to trash itself. I maybe just didn't knew or ignored that fact as it's not as desktop/laptop. Wayland works really well on it btw, and X11 never made sense to me on handhelds, which is yet another point for Wayland.
+</p>
+<p>All that said:<ul>
+ <li>I have yet to fully switch to wayland on my desktop, mostly because of quirky things like some games (they are really the worst…) and of course <abbr title="Virtual Reality">VR</abbr> is quite alpha but has the potential to work really well but so far the patches got a bit stuck. Launching Xorg for VR is good enough for now (but it's very unstable);</li>
+ <li>XWayland works well if I need to launch an X11 application, much better than stuff like Xephyr where it always failed with my keyboard layout;</li>
+ <li>I have done the quite crazy thing of throwing all of X11 (including things like <code>libX11.so</code>) out on my laptop, it means a lack of some applications and some weird shenanigans, like having to replace <code>libGL.so</code>(OpenGL linked with X11) with <code>libOpenGL.so</code>(window-system-agnostic) but sadly it's from <abbr title="GL Vendor-Neutral">GLVND</abbr> which has yet to appear on systems like FreeBSD so it's messy in some buildsystems. But overall it works pretty nicely;</li>
+ <li>I have yet to resume working on <a href="/git/inaban">inaban</a>, a quite psychorigid wayland compositor for controlling applications behavior (so quite the complete opoosite of X11);</li>
+ <li>I do not expect GNOME and related projects to actually do software/standards one can trully depend on, I'd much rather bet on one of their software having a critical bug than not having one;</li>
+ <li>I barely care for proprietary software;</li>
+ <li>Do not expect your NoVidya hardware to work well; NVidia® is almost hostile to Linux and they're the responsible ones; be careful on picking your hardware, everyone doesn't have to support your choices.</li>
+</ul></p>
+<h2>See More</h2>
+<ol>
+ <li><a href="https://drewdevault.com/2019/02/10/Wayland-misconceptions-debunked.html">Wayland misconceptions debunked</a></li>
+ <li><a href="https://www.youtube.com/watch?v=HllUoT_WE7Y">"Write a single library to handle all input devices, it'll be easy" they said…</a> (46 minutes 53 seconds): Talk about a linux-induced burden but relates a bit to Wayland on Linux and FreeBSD</li>
+ <li><a href="https://www.youtube.com/watch?v=RIctzAQOe44">The Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)</a> (45 minutes 34 seconds)</li>
+ <li><a href="https://github.com/swaywm/wlroots">wlroots</a>: Pluggable, composable, unopinionated modules for building a Wayland compositor; or about 50,000 lines of code you were going to write anyway.</li>
+ <li><a href="https://swaywm.org">sway</a>: i3-compatible (with few extras) Wayland Compositor</li>
+ <li><a href="https://git.sr.ht/~sircmpwn/wio">wio</a>: Wayland compositor for Linux & FreeBSD which has a similar look & feel to plan9's rio</li>
+ <li><a href="https://hikari.acmelabs.space/">hikari</a>: Wayland compositor inspired by CWM</li>
+ <li><a href="https://wayland-book.com/">Wayland Book</a> by Drew DeVault</li>
+</ol>
+<p>And yeah a lot of that list is linked to wlroots, feel free to pass on links from others, I know MATE is planning to switch to Wayland but it's still mostly for the future and I don't know how well wayland works in KDE (hopefully quite well).</p>
+<p>Note: I usually read replies to my articles but I'm not going to bother if you're going to just throw the typical clueless wayland-hater bile one can see on internet. I will probably answer honest questions though. Hopefully that will save some people's energy and time.</p>
+</div>
+ <p>
+ <a href="https://queer.hacktivis.me/objects/db4f70f5-7186-43ce-a350-e0e8d332bfb9" rel="replies external">Fediverse post for comments</a>, published on 2021-03-07T00:35:00Z, last updated on 2021-03-08T02:55:00Z
+ </p>
+ </article>
+ <footer>
+ <a href="http://endsoftpatents.org/innovating-without-patents"><img loading="lazy" src="/images/patent_free.png?serial=2020111201" alt="Patent Free"/></a>
+ <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img loading="lazy" alt="CC-BY-SA" src="/images/cc-by-sa.png?serial=2020111201"/></a>
+ <a href="/anybrowser"><img loading="lazy" src="/images/anybrowser.png?serial=2020111201" alt="Anybrowser campaign"/></a>
+ <a href="http://tstzmgqansvqfzr3qrkehszmlhjqbpqp7pwncrzr72ohyygrnbuu26qd.onion/">.onion</a>
+ <a href="/privacy%20policy">Privacy Policy</a>(2019-11-27)
+ This webthing agrees that <a href="https://simpleweb.iscute.ovh/">simple web is cute</a>~ ♥
+ </footer>
+ </body>
+</html>
diff --git a/articles/Why I embraced Wayland.shtml b/articles/Why I embraced Wayland.shtml
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
-<!--#include file="/templates/head.shtml" -->
- <meta property="og:type" content="article"/>
- <meta property="og:title" content="Why I embraced Wayland"/>
- <title>Why I embraced Wayland — Cyber-home of lanodan</title>
- </head>
- <body>
-<!--#include file="/templates/en/nav.shtml" -->
-<!--#include file="/articles/Why I embraced Wayland.xhtml"-->
- <a href="/articles/Why%20I%20embraced%20Wayland.xhtml">article only(plain XHTML)</a>
-<!--#include file="/templates/en/footer.shtml" -->
- </body>
-</html>
diff --git a/articles/Why I embraced Wayland.xhtml b/articles/Why I embraced Wayland.xhtml
diff --git a/articles/Why I embraced Wayland.xml b/articles/Why I embraced Wayland.xml
@@ -0,0 +1,63 @@
+<entry>
+<title>Why I embraced Wayland</title>
+<link rel="alternate" type="text/html" href="/articles/Why%20I%20embraced%20Wayland"/>
+<id>https://hacktivis.me/articles/Why%20I%20embraced%20Wayland</id>
+<published>2021-03-07T00:35:00Z</published>
+<updated>2021-03-08T02:55:00Z</updated>
+<link rel="external replies" type="application/activity+json" href="https://queer.hacktivis.me/objects/db4f70f5-7186-43ce-a350-e0e8d332bfb9" />
+<link rel="external replies" type="text/html" href="https://queer.hacktivis.me/objects/db4f70f5-7186-43ce-a350-e0e8d332bfb9" />
+<content type="xhtml">
+<div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="h-entry">
+<a href="/articles/Why%20I%20embraced%20Wayland"><h1>Why I embraced Wayland</h1></a>
+<p>Some of the folks that knew me from around 2014 know that I wasn't impressed with Wayland and really didn't see the point of it. X11 worked well enough for me and I didn't want to switch to something else, it felt like reinventing new stuff just for the sake of it to me (like systemd and pulseaudio; the fuck are those doing on freedesktop.org in the first place…). And I disagreed quite badly on it, sorry for folks related to wayland. Hopefully less and less folks will do this "politically conversative" opinion and actually wonder about the reasonings.</p>
+<figure>
+ <img src="/images/Firefox%20overlaying%20st%20on%20my%20laptop.png" />
+ <figcaption>Screenshot of firefox chunks ghosting over the terminal on my NVidia laptop running on XOrg</figcaption>
+</figure>
+<p>The motivation was because using X11/XOrg (specially with NVidia) gave me some years of:
+<ul>
+ <li>applications like Firefox shitting all over the desktop at times, leaving ghosted areas;</li>
+ <li>all applications being able to send any and receive all keyboard+mouse input with no real solution against that (I know XTerm has some option to steal all keyboard input, didn't work for me);</li>
+ <li>non-orthogonality of input device settings; XOrg allows to have a different settings on each and would require managing hotplug events but XOrg tools (<code>setxkbmap(1)</code>, <code>xmodmap(1)</code>, …) are done for a display server that would support only one layout setting and manage events by itself</li>
+ <li>display configuration hell, I know how to use <code>xrandr(1)</code> for some arcane things now (including trashing the concept of VTs, thanks linux) but what a mess and of course no support for hotplugging (which is a mess unless you use a tiling window manager like XMonad);</li>
+ <li>normal applications being able to trash your setup (ie. multi-monitor to a single display at 640x480) and no restoring if they crash down or don't care;</li>
+ <li>applications often behaving weirdly when a tiling window manager resizes them automatically;</li>
+ <li>still having this software-gore bug where moving a window on top of another leaves some of it frames behind, I love having that bug after 2020 when it should have been fixed well before 2010;</li>
+ <li>some games window just disappearing a bit after initialization (spawns a blank window and immediately goes away), probably related to a missing quirk/extension but haven't found wtf was happening;</li>
+ <li><a href="https://www.jwz.org/xscreensaver/faq.html">An absolute horror for even just basic screen locking/saving</a>.</li>
+</ul></p>
+<p>
+ And that made me just done with X11 and it's design of being similar to a Unix where everyone is root… so basically not a Unix. <q>If you find yourself saying that X is the Unix way: What one thing is X doing and what is it doing well?</q><cite>Daniel Stone</cite><br />
+ By the way, if you're that kind of people which is like "X11/Xorg never threw me a bug" you're likely just ignoring the elephant in the room in the first place or not seeing it as a bug (this is why I usually don't care about statements like "$thing just works for me" and "$thing never broke for me", there is high chances of it being delusional or clueless).<br />
+ Plus with <em>actually informing myself about the wayland protocol design</em> rather than just seeing that you can rotate windows in weston (which is labelled a reference compositor but should be taken as a demo) and that GNOME is doing it's normal thing of trashing everything in it's way, specially good things <a href="https://www.jwz.org/doc/cadt.html">like an awful teenager</a>.
+</p>
+<p>
+ But at some point I gave <a href="https://swaywm.org">Sway</a> an honest try on my NoVidya-plagued laptop, the one where the screenshot at the begining of this article comes from and I actually ended up with less bugs, it was still a mess because of NVidia having trashed the proprietary driver so much that nouveau, an open-source garage-hacker alternative that they're unfriendly with worked better, you know the adage: Fuck You NVidia.<br />
+ At least now that I replaced that badly aged laptop (Spectre/Meltdown was the final blow) with <a href="/articles/T495">a full-AMD one</a> (yay, no proprietary drivers), I don't have X11 kind of issues nor NoVidya kind of issues.<br />
+ Oh and my phone already was using Wayland (in fact it doesn't have X11) since 2015~2016 as I switched to SailfishOS because Android is a system that loves to trash itself. I maybe just didn't knew or ignored that fact as it's not as desktop/laptop. Wayland works really well on it btw, and X11 never made sense to me on handhelds, which is yet another point for Wayland.
+</p>
+<p>All that said:<ul>
+ <li>I have yet to fully switch to wayland on my desktop, mostly because of quirky things like some games (they are really the worst…) and of course <abbr title="Virtual Reality">VR</abbr> is quite alpha but has the potential to work really well but so far the patches got a bit stuck. Launching Xorg for VR is good enough for now (but it's very unstable);</li>
+ <li>XWayland works well if I need to launch an X11 application, much better than stuff like Xephyr where it always failed with my keyboard layout;</li>
+ <li>I have done the quite crazy thing of throwing all of X11 (including things like <code>libX11.so</code>) out on my laptop, it means a lack of some applications and some weird shenanigans, like having to replace <code>libGL.so</code>(OpenGL linked with X11) with <code>libOpenGL.so</code>(window-system-agnostic) but sadly it's from <abbr title="GL Vendor-Neutral">GLVND</abbr> which has yet to appear on systems like FreeBSD so it's messy in some buildsystems. But overall it works pretty nicely;</li>
+ <li>I have yet to resume working on <a href="/git/inaban">inaban</a>, a quite psychorigid wayland compositor for controlling applications behavior (so quite the complete opoosite of X11);</li>
+ <li>I do not expect GNOME and related projects to actually do software/standards one can trully depend on, I'd much rather bet on one of their software having a critical bug than not having one;</li>
+ <li>I barely care for proprietary software;</li>
+ <li>Do not expect your NoVidya hardware to work well; NVidia® is almost hostile to Linux and they're the responsible ones; be careful on picking your hardware, everyone doesn't have to support your choices.</li>
+</ul></p>
+<h2>See More</h2>
+<ol>
+ <li><a href="https://drewdevault.com/2019/02/10/Wayland-misconceptions-debunked.html">Wayland misconceptions debunked</a></li>
+ <li><a href="https://www.youtube.com/watch?v=HllUoT_WE7Y">"Write a single library to handle all input devices, it'll be easy" they said…</a> (46 minutes 53 seconds): Talk about a linux-induced burden but relates a bit to Wayland on Linux and FreeBSD</li>
+ <li><a href="https://www.youtube.com/watch?v=RIctzAQOe44">The Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)</a> (45 minutes 34 seconds)</li>
+ <li><a href="https://github.com/swaywm/wlroots">wlroots</a>: Pluggable, composable, unopinionated modules for building a Wayland compositor; or about 50,000 lines of code you were going to write anyway.</li>
+ <li><a href="https://swaywm.org">sway</a>: i3-compatible (with few extras) Wayland Compositor</li>
+ <li><a href="https://git.sr.ht/~sircmpwn/wio">wio</a>: Wayland compositor for Linux & FreeBSD which has a similar look & feel to plan9's rio</li>
+ <li><a href="https://hikari.acmelabs.space/">hikari</a>: Wayland compositor inspired by CWM</li>
+ <li><a href="https://wayland-book.com/">Wayland Book</a> by Drew DeVault</li>
+</ol>
+<p>And yeah a lot of that list is linked to wlroots, feel free to pass on links from others, I know MATE is planning to switch to Wayland but it's still mostly for the future and I don't know how well wayland works in KDE (hopefully quite well).</p>
+<p>Note: I usually read replies to my articles but I'm not going to bother if you're going to just throw the typical clueless wayland-hater bile one can see on internet. I will probably answer honest questions though. Hopefully that will save some people's energy and time.</p>
+</div>
+</content>
+</entry>
diff --git a/config.ninja b/config.ninja
@@ -9,3 +9,4 @@ build entry.xsl: xinclude entry.xsl.in | ./templates/head.xml ./templates/en/nav
build bookmarks.xsl: xinclude bookmarks.xsl.in | ./templates/head.xml ./templates/en/nav.xsl ./templates/en/footer.shtml
build bookmarks.html: xslt bookmarks.xsl bookmarks.xbel
build articles/2022$ Summary.html: article entry.xsl articles/2022$ Summary.xml
+build articles/Why$ I$ embraced$ Wayland.html: article entry.xsl articles/Why$ I$ embraced$ Wayland.xml
diff --git a/feed.atom b/feed.atom
@@ -67,16 +67,7 @@
</div></content>
</entry>
- <entry>
- <title>Why I embraced Wayland</title>
- <link rel="alternate" type="text/html" href="/articles/Why%20I%20embraced%20Wayland"/>
- <id>https://hacktivis.me/articles/Why%20I%20embraced%20Wayland</id>
- <published>2021-03-07T00:35:00Z</published>
- <updated>2021-03-08T02:55:00Z</updated>
- <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<!--#include file="/articles/Why I embraced Wayland.xhtml"-->
- </div></content>
- </entry>
+<!--#include file="/articles/Why I embraced Wayland.xml"-->
<entry>
<title>real names</title>