The problem# I returned to my desktop to find an error message saying the screensaver was unable load, and it wouldn't show the password box to unlock the screen. When I logged in via SSH from a different device and reattached to a Screen session I had previously started from inside my X session,...
The problem# xprop will display all X property values and supports setting array values for some types but not for string and atom arrays (despite this misleading answer asserting otherwise). This leaves no easy way to set X property values that are an array of strings or atoms like the...
The problem# I make heavy use of virtual desktops, so I use browser windows on multiple desktops. When logging into a site that uses passkeys, KeePassXC pops up a dialog on the desktop its main window is on, which is usually not the desktop my browser window is on. Then I have to switch over to...
The problem# I was working on a bugfix for a GUI application I use, but I didn't want my development to interfere with the instance I was actually running. The application stores state that I didn't want to be modified by the in-development code in a few different places (data, settings, cache)...
The problem# Previously, I wrote a script for opening and immediately focusing xfce4-appfinder. But xfce4-appfinder will notice if it's already open and just assume you want to use the existing window. Even if it's on a different desktop. And therefore attempting to focus it will either do nothing...
The problem# I have my window manager set to not focus new windows because I dislike having a new window pop up while typing and having the keystrokes surprisingly sent to the new window instead of the one I thought I was typing in. While this is usually what I want, this does mean extra clicks...
The problem# For various reasons you might want graphical access to another computer, since some things can't be done over a text interface, including actually designing and troubleshooting what the graphical interface looks like. The other computer might be in a remote location across the...
Suppose you have a Microsoft Surface Pro running Linux with all the Linux Surface patches and IPTS daemon running for your stylus. To rotate the display left, first find your screen by executing xrandr --listmonitors, which will have output looking like this: Monitors: 1 0: +*eDP-1...
The problem# Web browser UIs have a lot more than just displaying the web page, which is useful when using them as a browser, but clutters the screen if all we want is to define what is displayed on part of the screen using HTML. So, can we get Firefox into a mode where it really does show just...
The problem# Many applications have a fullscreen mode that has a different interface from their windowed mode. For example, many media players will show just the video in fullscreen mode but include media controls in windowed mode. But, especially if you have a large monitor, you may want to use...
I've been working on kopper recently, which is a complementary project to zink. Just as zink implements OpenGL in terms of Vulkan, kopper seeks to implement the GL window system bindings - like EGL and GLX - in terms of the Vulkan WSI extensions. There are several benefits to doing this, which...
If you want to write an X application, you need to use some library that speaks the X11 protocol. For a long time this meant libX11, often called xlib, which - like most things about X - is a fantastic bit of engineering that is very much a product of its time with some confusing baroque bits....
There's been some recent discussion about whether the X server is abandonware. As the person arguably most responsible for its care and feeding over the last 15 years or so, I feel like I have something to say about that.The thing about being the maintainer of a public-facing project for nearly...
In an ideal world, every frame your application draws would appear on the screen exactly on time. Sadly, as anyone living in the year 2020 CE can attest, this is far from an ideal world. Sometimes the scene gets more complicated and takes longer to draw than you estimated, and sometimes the OS...