Walking it Back, or: Esoteric computing habits and the endless march of time.

In my two articles on my Linux desktop habits, I may have gone a little overboard on the whole "simple spatial manipulation" angle. There are indeed a lot of windows open and shaded in the concluding screenshots of each one. And, I mean, I have a decent amount of windows open now, as I type this. No less than 5 Firefox windows, claws-mail, Audacious, Nicotine+, and the ReText window I'm typing this in, sure to be soon joined by a variety of folders. I more or less stand by the theory of what I wrote in those, but I feel like I was committed slavishly to the idea of only using the file manager as the interface to the OS. MATE's panel is pretty useful, why am I stubbornly refusing to use it?

I don't have much philosophical to wax about this particular point, I say all this to say that one doesn't have to jump through all the hoops I described, including running random scripts, to get a good experience from MATE. It's pretty great out of the box, and all but one thing I consider to be important can be tweaked with its GUI tools (the one thing being using your Home folder as the desktop, but even this doesn't require a script; just log out, swap to a tty and delete the Desktop folder). As such, I'm currently running something close to stock MATE at the moment. Or rather, I'm running something that's pretty close to what you can get with stock MATE and a bunch of tweaks via its various sanctioned GUI settings. You know, like a normal OS.

One thing I didn't go over too much in the previous two articles but an idea I was pretty enamored with until recently is one that applications should just be single files like any other file. One should be able to move around and drag and drop applications in the same way one does their personal files. Basically the way Macs would do it. And really, all else being equal, it would be pretty nice to have the illusion of this; but it's far from a necessity. Part and parcel with the desktop metaphor is that the world of the computer is largely based on documents; not necessarily files always corresponding to memos and spreadsheets and other officey things, but units of one's personal doings, stuff that you're using, stuff that you've filed away. I don't need to know I have "autechre ticket.pdf" on my desktop and that I need to open it with (I even have to look this up) the Atril PDF viewer in order to view my Autechre ticket, all I need to know is that my ticket to the Autechre show in Alabama is on the desktop, "right there" even, and that when I double-click it I indeed see my ticket. Never, not once, have I had to open up the PDF viewer by itself, or have had to make any mental association between a PDF file and its viewer. Why would I care?

By and large, I don't open up applications by themselves very often. When I open Firefox it's typically because I just rebooted, after which I make it restore my previous session (something that it's pretty good at by the way, way to go Firefox). After that, the arrangement of windows that pops up pretty much stays in place until I need to reboot again, which is rare. Same for my email client, music player, and so on; I open them up in the rare instances they're not already open and then they stay put whether I'm using them at the moment or not. What is it to me that I know where their closed "physical" embodiments lie, or whether or not I can delete them at a moment's notice? How often do I uninstall things anyway? When it comes to applications I frequently open and close, they usually come in the form of me opening a document, not the application itself. My knowledge of the application opening my PDF files begins and ends with the association of the file and the program, if I even have to make that association in the first place; usually the OS has already done it for me. For the rest, that is, accessories such as calculators and note takers and dictionaries and system monitors, why is it not enough that I can pin them to the panel for quick omnipresent access? Am I really ever going to need to move or delete these things? Am I doing all of this application file manipulation so often that having to use a package manager and panel menu to control access to them is an unreasonable burden? Let's not leave that rhetorical: the answer is no. Applications, looked at in this light, are sometimes less like "more files" and more like extensions of the operating system. The PDF viewer isn't a tool, it's an extension that lets me view my PDF files. An obsession with purity to an ideology this practically useless, frankly, isn't healthy.

So I've squared away my quibbles with the Panel itself pretty cleanly: quick, omnipresent access to stuff that doesn't require shading and unshading a window is pretty useful. Having a clock take up the same amount of space as all the other omnipresent entities instead of being its own weird tiny postage stamp window is also useful, especially when I click it and a calendar pops out. My obsession with logical purity in this regard is irrational. Furthermore, my until-two-paragraphs-ago unstated obsession with having all applications be their own file entities in whole has also been dismissed by those same two paragraphs. Installing and removing applications using a package manager is fine. Using a panel menu to select applications is fine. Pinning frequently used small utilities to the panel itself is fine. I'm feeling better already!

This leaves my other esoteric interests, that is, spatial file management and keeping open lots of windows; the ones I wrote about in two too-long essays. My weirdly specific interest in these things I of course owe to John Siracusa, whose pontifications about how Old Mac Users used to do their work and why it was good I could read and listen to literally all day. Now these ideas I don't cling doggedly to, but that's just because I don't have to. They're both legitimately useful. For spatial file management, no real justification is necessary: for small amounts of files in a folder, it's good to be able to put the files where I want them, like a little small desktop of its own. For large amounts of nested files and folders, it's good to be able to turn the folder into a list and have it stay that way until I say otherwise. It's good to have windows that maintain the state I put them in. That I be in complete control of my files and folders shouldn't be a controversial point of view.

But going by the pretty gratuitous screenshots I put at the end of each of those two essays, one may come to the conclusion (and a few did) that with such a seemingly chaotic window management style I run into situations where the clutter becomes overwhelming. It happens, but probably not as often as you would think; basic purposeful arrangement does a lot of legwork in this regard. Nonetheless I will acknowledge that there is a pretty severe limitation here, and that's that you can't really get the classic Mac OS-style window layering policy of raising all of an application's windows when you click just one of their windows. Every application basically was its own layer, you had to purposefully hold a key down when clicking to raise only one window, back in the day. Not having this makes generating the kind of clutter I do a much more fraught and careful process. Marco (MATE's window manager) having a window lowering feature with the click of the middle mouse button on the title bar helps quite a bit in finding some random buried window, but man that layering policy would be so sweet to have. Alas, there isn't really an easy way to do it without patching something and defying my package manager. I'm trying to get away from hacking stuff in like that.

MATE's dock applet provides this functionality, much like Mac OS X's dock does (or did, I haven't used it in years), in that you can click an icon representing an application to raise all its windows, but that seems to me too many cognitive steps to take. I first have to recognize it's all my Firefox windows that I want to raise, and then I have to find the Firefox icon on the dock, and then I have to mouse over and click it. It could be so much more efficient. And so, I wrote a little script that utilizes xprop and wmctrl to raise all windows belonging to the application to which the currently active window belongs, and then I bound it to a hotkey. Now there's almost no cognitive steps required. I just click the window I want, or maybe I'm already on it, and I mash my key combo to make all its windows pop up, leaving the currently active one active of course. It even works when I click-and-key-combo on the desktop for Caja windows, just like the old Mac. It's not precisely the old Mac behavior, but it's the least janky solution I could come up with; another version that continuously polled xprop once per second for active window and PID changes for the purpose of raising the windows automatically reaches beyond the grasp of wmctrl's capability to not try to give me a seizure when raising a bunch of windows at once.

So through scripting and self-psychoanalysis I've come to a computing environment that provides a level of satisfaction that I can't get anywhere else. But obviously I'm not going to kick off another paragraph with a sentence like that if the story were that cut-and-dry. I didn't come all this way to say "I wrote a script." The fact of the matter is, this script requires Xorg, and Xorg is getting very old. MATE is making headway on the road to Wayland, where tools like xprop and wmctrl are much harder to make, with how the standard forbids random outside applications from modifying or even knowing about the state of arbitrary windows. This isn't to say that any of that's a bad thing; I'm happy MATE development has continued apace with the larger Linux ecosystem, conservative as it otherwise is. It's good to make sure an environment as good as it continues being practically useful, because it's genuinely the best one we've got in my estimation. Furthermore, say what you will about Wayland's overall strictness and how it can get in the way of things like global hotkeys and microphones and what-not, it's pretty weird that I'm able to write a very simple Python script to control the state of any given window I have open without going through any kind of low level channel. There's just...a program that does it. Maybe not a great state of affairs from a security angle. The next Debian release will continue to have Xorg-based MATE as far as I know, and so my script will continue to work for at least another couple of years. But then what?

Then what what? When is "then"? Am I really worried about the next next Debian release, at which time it comes out, I'll be pushing 40? Am I planning ahead multiple years for the sake of this random script? More than that, am I doomed to always have low-key anxiety about when the MATE team is going to call it quits, deciding it's not worth maintaining anymore? What of my precious workflow then? What am I really worried about, here? Xorg is getting old. MATE is getting old. I am getting old. A shift in perspective is required, one that allows for the fact that I'm going to have to move on with technology at least in some respects if I'm to continue to use it. It doesn't mean that I ever have to use a smartphone as my primary computing device and happily funnel all of my personal data into Google's and Apple's server racks to participate in society as most people do today, nor does it mean that I'll have to, God Forbid, hop on the LLM bandwagon, but it does mean that some of the computer things I like are going to break and not be here anymore in any practically useful way. I'm afraid it's a perspective that I'm going to have to reckon with, and learn how to reckon with, for quite some time.

Discuss this article