Desktop Environments: Going Without One
Windows and macOS don’t really have a concept of a desktop environment separate from the OS itself, it’s just bundled in. You can’t rip Finder out of macOS, and while Windows technically lets you run something else, almost nobody ever touches the shell it ships with. Linux is different: the kernel is just a kernel, it manages hardware, processes, and files, and gives you nothing else. No GUI, no file explorer, no browser, no control panel. Above that bare kernel, you’re free to pick your own stack of software to turn it into something usable, and the Linux community has built and maintained plenty of those stacks over the years. I’m not going to explain any specific desktop environment in detail, there are already good resources for that. What I do want to cover is what a desktop environment actually is, in a nutshell, and then get into my own experience with one, or rather, without one.
What a Desktop Environment Actually Is #
A desktop environment is a set of software that works together to form a full, functional GUI on top of the OS. That starts with the window manager, the login screen, panels, and menus, and continues into settings, themes, icons, and whatever helper utilities are expected on a personal computer. The window manager specifically is the piece that manages windows: drawing them, and providing the basics, close, minimize, maximize, resize, drag.
Window managers split into two broad categories. Stacking window managers are what everyone knows from Windows and macOS, windows can overlap and pile up like a stack. Tiling window managers go the other way, no overlapping at all, every window tiles against the others like a puzzle. You can resize and close them, but you can’t drag one on top of another.
In theory, every piece of a desktop environment is swappable and they all just play nicely together. In practice, it’s usually better to stick with the default components the environment ships with, that’s the whole point of a desktop environment as a bundle, someone already did the work of gluing the pieces together and ironing out the incompatibilities.
Trying (and Leaving) the Big Ones #
The major desktop environments in the Linux world are GNOME, KDE Plasma, Cinnamon, LXQt, and a handful of others. They usually come with a full bundle of software by default and bring their own opinionated defaults along with it. I used GNOME on Ubuntu, and KDE briefly when I switched to Kubuntu. I also tried Cinnamon and MATE while evaluating Mint for a few months. For me personally, every one of those bundles was too big, I felt like I was back in the hands of some big daddy deciding what I needed.
LXDE is where I actually stuck for years, on Debian, minimalist and heavily configurable. When I switched to Arch, the question was whether to install LXQt, LXDE’s successor, as a full bundle, or just the specific pieces I actually used. The answer turned out to be simple: I needed nothing but a window manager. I’d never touched LXDE’s other utilities, even back on Debian I’d already disabled the login screen, removed the panels, and ignored most of its features.
Every Pixel Is Real Estate #
My screen is 2560x1440, close to 3.7 million pixels of space I actually care about. I want to use as much of that as possible to read code, watch a terminal, and see content without scrolling. A top or bottom panel eating a constant strip of that, for what? Why do I need to see a list of open windows when I already have shortcuts to jump to any of them in two keystrokes? Why do I need a volume icon sitting there when I can already hear the music? A quick-launch menu, when Rofi already launches anything I need? None of that earns its real estate, so I deleted it. Window titles and controls are genuinely useful for some apps, so I kept those, and only stripped them from the terminal and the browser. What’s left is a full screen of code or terminal, no popups, no constant space tax, and nothing appears just because I moved my mouse to the bottom of the screen. Whoever likes that behavior, I don’t get it.
Why Openbox, Not Tiling #
I’m not a big fan of tiling window managers either, sometimes it’s genuinely easier to just overlap a couple of windows. In practice I rarely drag or resize anything, almost everything stays maximized and I switch between windows with custom shortcuts. That gets me a kind of middle ground: mostly like tiling, since I’m rarely fighting with window placement, but with the option to pop something out and overlap it on the rare occasion I actually need to.
That’s exactly what Openbox gives me. Despite its age, it does exactly what I need: a window with a title bar, and keyboard shortcuts to jump between windows. What I actually like about Openbox isn’t what it gives me, it’s what it doesn’t. Shadows, transparency, minimize animations, all the stuff modern window managers and compositors love to add, cost more than just system performance, they cost time. If switching windows fades in and out, even for 100 milliseconds, that’s real time wasted while I’m in the middle of something.
Speed Is the Whole Point #
I freelance as a devops engineer and developer for 3 or 4 companies at any given time, and my context switching between completely unrelated codebases and stacks is constant. Compile something for company A, and while that’s running, jump to company B and kick off a terraform plan, then jump to company C to check some UI bug that isn’t rendering right. That happens on repeat, every time I’m waiting on something I switch to something else, so my attention is always occupied and I have zero patience for shiny UI effects or anything that slows that down. It’s a level of irritation I genuinely struggle to explain.
In Openbox, two keystrokes focus any window I need: the browser profile for company A, the editor for company B, the terminal for company C. Those switches happen in single-digit milliseconds, fast enough that I can’t actually perceive the delay. For the rare window that doesn’t have a shortcut set up, alt+tab gives me a fast floating switcher, no attempt to render window content or add effects, it just appears the instant I press it and switches the instant I tab. Part of my job is calls with colleagues, over Zoom, Meet, Teams, and they share their screens constantly. Watching macOS’s animations play out on someone else’s shared screen drives me up the wall. How most of the people I work with tolerate that, I have no idea.
The Toolbox Instead of a Bundle #
So Openbox is really all I need. Beyond that, a few small, contained tools cover the rest: Rofi for launching anything, nm-tui for network configuration, alsamixer for volume, arandr for screen layout. Each one does exactly one job and nothing more.
What You Should Actually Do #
Before installing Arch, have an idea of which desktop environment you want, and unless you’re as particular as I am, you probably do want one. I wouldn’t recommend GNOME or KDE, they’re heavy and bring more instability than they’re worth. Go with something lighter, LXQt is a reasonable default, and install the specific extras you actually need on top of it, rather than starting from a full bundle and stripping it down.