Drew DeVault's Blog

Writing a Wayland Compositor, Part 1: Hello wlroots

This is the first in a series of many articles I’m writing on the subject of building a functional Wayland compositor from scratch. As you may know, I am the lead maintainer of sway, a reasonably popular Wayland compositor. Along with many other talented developers, we’ve been working on wlroots over the past few months. This is a powerful tool for creating new Wayland compositors, but it is very dense and difficult to understand. Do not despair! The intention of these articles is to make you understand and feel comfortable using it.

The last years

August 14th, 2019 PYONGYANG IN CHAOS AS PANDEMIC DECIMATES LEADERSHIP. Sources within the country have reported that a fast-acting and deadly infectious disease has suddenly infected the population of Pyongyang, the capital city of North Korea, where most of the country’s political elite live. Unconfirmed reports suggest that a significant fraction of the leadership has been affected.

Introduction to POSIX shell

What the heck is the POSIX shell anyway? Well, the POSIX (the Portable Operating System Interface) shell is the standard Unix shell - standard meaning it was formally defined and shipped in a published standard. This makes shell scripts written for it portable, something no other shell can lay claim to. The POSIX shell is basically a formalized version of the venerable Bourne shell, and on your system it lives at /bin/sh, unless you’re one of the unlucky masses for whom this is a symlink to bash.

Sway and client side decorations

You may have recently seen an article from GNOME on the subject of client side decorations (CSD) titled Introducing the CSD Initiative. It states some invalid assumptions which I want to clarify, and I want to tell you Sway’s stance on the subject. I also speak for the rest of the projects involved in wlroots on this matter, including Way Cooler, waymonad, and bspwc.

Fee breakdown for various donation platforms

Understanding fees are a really confusing part of supporting creators of things you like. I provide a few ways for people to support my work, and my supporters can struggle to understand the differences between them. It comes down to fees, of which there are several kinds (note: I just made these terms up):

Learn about your package manager

Tools like virtualenv, rbenv, and to a lesser extent npm and pip, are occasionally useful in development but encourage bad practices in production. Many people forget that their distro already has a package manager! And there’s more– you, the user, can write packages for it!

fork is not my favorite syscall

This article has been on my to-write list for a while now. In my opinion, fork is one of the most questionable design choices of Unix. I don’t understand the circumstances that led to its creation, and I grieve over the legacy rationale that keeps it alive to this day.

wlroots whitepaper available

Firefox is on a slippery slope

For a long time, it was just setting the default search provider to Google in exchange for a beefy stipend. Later, paid links in your new tab page were added. Then, a proprietary service, Pocket, was bundled into the browser - not as an addon, but a hardcoded feature. In the past few days, we’ve discovered an advertisement in the form of browser extension was sideloaded into user browsers. Whoever is leading these decisions at Mozilla needs to be stopped.

A history of emergent intelligence

As you all know, the simulation of universe 2813/9301 is now coming to a close. This simulation is notable for being the first simulated universe suitable for hosting intelligent life, but yesterday the simulation reached a state where we believe no additional intelligences will emerge. It seems the final state of this set of physical laws is a dark and empty universe of slowly evaporating black holes. Though, given the historical significance of this simulation, it’s unlikely we we’ll be turning it off any time soon!