Window Managers Provide a Superior Computing Experience
Up until about a couple weeks ago, I had been dismissive about the idea of using a simple window manager. I'd use either XFCE or GNOME or KDE, kind of on and off--although mostly GNOME. And this has been the case for a while. Ever since I started using Linux.
The initial rationale that I had stuck with was that I wanted a cohesive experience with my desktop environment; functionally and visually.
Mac OS was really the only system that offered what I was looking for, as far as desktop environments go. On macOS, most apps (importantly the ones I would be using and looking at) look native, consistent, visually appealing. From the BIOS to the user session, it's all pretty coherent. No other development team touches Apple in this department. But alas, I cannot put trust into my personal machine when it's running a closed OS by a corporation like Apple.
The initial rationale that I had stuck with was that I wanted a cohesive experience with my desktop environment; functionally and visually.
Mac OS was really the only system that offered what I was looking for, as far as desktop environments go. On macOS, most apps (importantly the ones I would be using and looking at) look native, consistent, visually appealing. From the BIOS to the user session, it's all pretty coherent. No other development team touches Apple in this department. But alas, I cannot put trust into my personal machine when it's running a closed OS by a corporation like Apple.
When I switched to FreeBSD, I came to some realizations about how the OS worked; compared to Linux it's generally a nicer experience. At the point where I was choosing what to install, I was bored with how basic XFCE and GNOME looked. Although I still mostly prefer the design choices in GNOME, KDE doesn't rely on SystemD or NetworkManager for some of its functionality; so KDE Plasma is what I chose to use. It would provide the most functional and consistent experiences of the three, I believed.
I was trying to make the best with KDE. Any time I'd boot up my computer, I was waiting a couple extra minutes so my hard drive could load everything. It was just a minor annoyance, though. It already felt a bit janky when the system would switch from the dmesg output, onto SDDM (on X11), and then handing off to a Plasma session (Wayland). Finding software that was consistent with the desktop environment limited me to usually one, or maybe a couple options for each task (PDF reader, hex editor, browser, terminal, etc.). As for which browser I would use, I kind of had no other choice than Firefox, which didn't use QT like evey other graphical app I had installed. The UI just clashed with every other app I had installed. Other browser options were either lacking or buggy. Something else that irked me was that although you could configure shortcuts to make actions quicker, you could very well have some of these configurations stored in some akward format. Ideally, all my configs would be in plain text for easy management. With some apps I don't get that choice. I also didn't like the seemingly random folders getting put under my home directory. If I take a home directory backup it'll usually come with junk I don't want. Apart from those issues, I still had to manually configure the underlying operating system to get KDE Plasma working like I expected it to. If I had to deal with this much, I reasoned that I might as well try a more minimal and CLI-heavy experience.
These issues brought me to try out Sway. I wouldn't have needed a display manager; just a seat manager that runs in the background. With Sway I could launch directly in the console, which felt more TTY friendly. Almost immediately I liked the workflow that came with the default config of Sway. There was basically no window-dragging to be done with the mouse like on the other desktops; which I think I had subconsciously knew felt kind of gimmicky. I'd have one window in each workspace and switch between them with Super+<n> where N is just a number key. It felt a lot quicker than what I'd been used to. I don't know how I hadn't given this a try earlier, since I switched to Vim as my text editor long before. My rationale with Vim was that it's minimal, closely tied to terminal conventions. I could use it over SSH, its performant, I can configure it easily--there's less abstractions. But most importantly the "workflow" was faster and a lot more "flowy".
The big deterrents that kept me from trying out a window manager were the ideas about not having consitency, usability, or the visual polish as full desktop environments. My stance now is that desktop environments are just too much. Consistency breaks apart much more easily when you want graphical software because developers can't choose to adhere to a single design language or toolkit. There's that plus the updates developers have to implement if they want to keep their app up-to-date with the fast-paced change occurring with GNOME and KDE. It's not on the same level as web development, but it seems more like the same issue when I think about it. Maintaining a GUI app requires more resources, whereas the CLI just doesn't. There is usually the means to provide most of the functionality any app could need in the CLI, only being limited in providing complex visuals.
When it comes to choosing the software to have a fully featured desktop environment, window managers adhere closer to the UNIX philosophy of having individual programs serving one purpose and doing so well Even if it isn't quite as convenient to have to figure out what parts of the desktop environment are needed and how they work together. I had to find individual programs for providing ways to manage each of: backlight levels, audio levels, fn button functions, "night light"-ing, screen locking, displaying WM info + various metrics, screenshotting, etc... But the loss in convinience was well outweighed when I felt more in control of what I was running on my system. I'd have less random directories appearing in my home directory. I could tune various aspects of the system in whichever way I wanted. Configuring these programs that are made to work with a window manager tend to stick to plain-text too, which I greatly appreciate.
Now I'm gravitating more towards CLI-based apps as much as possible, because the CLI provides the most consistent UI as far as I can see. I won't yet be able to satisfy the part of me that wants a polished and fancy desktop, but the minimalistic nature of my new setup feels more productive and performant, maybe even less distracting. Overall I'm just glad I gave a window manager a try.
I was trying to make the best with KDE. Any time I'd boot up my computer, I was waiting a couple extra minutes so my hard drive could load everything. It was just a minor annoyance, though. It already felt a bit janky when the system would switch from the dmesg output, onto SDDM (on X11), and then handing off to a Plasma session (Wayland). Finding software that was consistent with the desktop environment limited me to usually one, or maybe a couple options for each task (PDF reader, hex editor, browser, terminal, etc.). As for which browser I would use, I kind of had no other choice than Firefox, which didn't use QT like evey other graphical app I had installed. The UI just clashed with every other app I had installed. Other browser options were either lacking or buggy. Something else that irked me was that although you could configure shortcuts to make actions quicker, you could very well have some of these configurations stored in some akward format. Ideally, all my configs would be in plain text for easy management. With some apps I don't get that choice. I also didn't like the seemingly random folders getting put under my home directory. If I take a home directory backup it'll usually come with junk I don't want. Apart from those issues, I still had to manually configure the underlying operating system to get KDE Plasma working like I expected it to. If I had to deal with this much, I reasoned that I might as well try a more minimal and CLI-heavy experience.
These issues brought me to try out Sway. I wouldn't have needed a display manager; just a seat manager that runs in the background. With Sway I could launch directly in the console, which felt more TTY friendly. Almost immediately I liked the workflow that came with the default config of Sway. There was basically no window-dragging to be done with the mouse like on the other desktops; which I think I had subconsciously knew felt kind of gimmicky. I'd have one window in each workspace and switch between them with Super+<n> where N is just a number key. It felt a lot quicker than what I'd been used to. I don't know how I hadn't given this a try earlier, since I switched to Vim as my text editor long before. My rationale with Vim was that it's minimal, closely tied to terminal conventions. I could use it over SSH, its performant, I can configure it easily--there's less abstractions. But most importantly the "workflow" was faster and a lot more "flowy".
The big deterrents that kept me from trying out a window manager were the ideas about not having consitency, usability, or the visual polish as full desktop environments. My stance now is that desktop environments are just too much. Consistency breaks apart much more easily when you want graphical software because developers can't choose to adhere to a single design language or toolkit. There's that plus the updates developers have to implement if they want to keep their app up-to-date with the fast-paced change occurring with GNOME and KDE. It's not on the same level as web development, but it seems more like the same issue when I think about it. Maintaining a GUI app requires more resources, whereas the CLI just doesn't. There is usually the means to provide most of the functionality any app could need in the CLI, only being limited in providing complex visuals.
When it comes to choosing the software to have a fully featured desktop environment, window managers adhere closer to the UNIX philosophy of having individual programs serving one purpose and doing so well Even if it isn't quite as convenient to have to figure out what parts of the desktop environment are needed and how they work together. I had to find individual programs for providing ways to manage each of: backlight levels, audio levels, fn button functions, "night light"-ing, screen locking, displaying WM info + various metrics, screenshotting, etc... But the loss in convinience was well outweighed when I felt more in control of what I was running on my system. I'd have less random directories appearing in my home directory. I could tune various aspects of the system in whichever way I wanted. Configuring these programs that are made to work with a window manager tend to stick to plain-text too, which I greatly appreciate.
Now I'm gravitating more towards CLI-based apps as much as possible, because the CLI provides the most consistent UI as far as I can see. I won't yet be able to satisfy the part of me that wants a polished and fancy desktop, but the minimalistic nature of my new setup feels more productive and performant, maybe even less distracting. Overall I'm just glad I gave a window manager a try.