logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
commit: 786d4aee6cfa039536e637d236b25878bccf3c56
parent 90d1dcab9f5b1b4a4f2df6ec1a53d33b2f7a3d77
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun,  7 Mar 2021 00:35:00 +0000

articles/Why I embraced Wayland: Publish

Diffstat:

Marticles/Why I embraced Wayland.xhtml41++++++++++++++++++++++++-----------------
Mfeed.atom4++--
Mhome.shtml1+
3 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/articles/Why I embraced Wayland.xhtml b/articles/Why I embraced Wayland.xhtml @@ -8,37 +8,39 @@ <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 snoop on 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>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>keyboard layout/mapping tools (<code>setxkbmap(1)</code>, <code>xmodmap(1)</code>, …) being done done for a logic where you have one keyboard (as each can have their own layout) and no hotplugging (because it gets set to <code>Xorg.conf</code> or defaults on plugging it);</li> - <li>display configuration hell, I know how to use <code>xrandr(1)</code> for some arcane things now (ie. stealing the VT) 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>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);</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. "If Xorg is a Unix application, what is the one thing it does well?"(FIXME: Correct quote)<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 bug in the first place or not seeing it as a bug (this is why I don't care about statements like "$thing just works 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 was named as reference but I would take as a demo collection) 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>. + 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 with <a href="/articles/T495">a full-AMD one</a>, 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. Works really well on it btw, X11 never made sense to me on handhelds, which is yet another point for Wayland. + 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 XMonad works much better for how I think things than i3 on a multi-monitor setup and VR on Wayland can work but it got apparently stuck at the experimental stage (tried the patches once and it didn't work, I think it failed to clean from a bad initialization) but I could just launch VR stuff in it's own Xorg session anyway,</li> - <li>I have done the quite crazy thing of throwing all of X11 (including stuff like <code>libX11.so</code>) out on my laptop, it means a lack of some applications and some weird shenanigans (like <code>libGL.so</code> having X11 symbols and so <code>libOpenGL.so</code> being the window-system-agnostic one but sadly being from <abbr title="GL Vendor-Neutral">GLVND</abbr> which has yet to appear on systems like FreeBSD) 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 on controlling how applications are controlled in the display server (complete opposite of X11 in that area)</li> - <li>I do not expect GNOME and related projects to actually do stable software, I'd much rather bet on one of their software having a critical bug than not having one.</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.</li> +<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>: 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> (00:45:34)</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 &amp; FreeBSD which has a similar look &amp; feel to plan9's rio</li> @@ -46,5 +48,10 @@ <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><!--<a href="">Fediverse post for comments</a>, -->published on 2020-11-26T19:08:41Z, last updated on 2020-11-26T19:08:41Z</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> +<p> + <!--<a href="">Fediverse post for comments</a>, --> + published on 2021-03-07T00:35:00Z, + last updated on 2021-03-07T00:35:00Z +</p> </article> diff --git a/feed.atom b/feed.atom @@ -14,8 +14,8 @@ <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>2020-11-26T19:08:41Z</published> - <updated>2020-11-26T19:08:41Z</updated> + <published>2021-03-07T00:35:00Z</published> + <updated>2021-03-07T00:35: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> diff --git a/home.shtml b/home.shtml @@ -51,6 +51,7 @@ <li>2020-06-15: <a href="/articles/2020-05%20Summary">2020-05 Summary</a></li> <li>2020-06-30: <a href="/articles/linux-audio-output">Linux Audio Output APIs</a></li> <li>2020-07-15: <a href="/articles/real%20names">real names</a></li> + <li>2021-03-07: <a href="/articles/Why%20I%20embraced%20Wayland">Why I embraced Wayland</a></li> </ol> </main> <!--#include file="templates/en/footer.shtml" -->