I feel like my eyes can only look at one thing at a time. I just have shortcuts to switch between programs.
Why do you prefer using a tiling WM and how do you use the tiling functionality in your workflow?
Main reason for me is because I don’t have to manage the position or size of apps I open.
Idk I just keep everything fullscreen except small things like my password manager. Use virtual desktops to switch between major functionality. One for work, one for Slack, one for email.
The only thing I split is my IDE to compare code.
Same. I’ve tried to use tiling WMs before, but simply can’t get used to it. I usually have a three monitor setup. Left monitor is a browser full screened with just two tabs: my work emails (Outlook 365) and MS Teams. That is a 27" 1440p monitor, and I’ve tried splitting this to show two browser windows side-by-side to have teams and outlook at the same time, but both end up too narrow. I just switch tabs to see the one I need at any given time.
Middle monitor is my primary. It is another 27" and it has my IDE fullscreen, it can switch between all the projects im working on, and if I want to view two source files side by side, I use the split-tabs feature in my IDE.
Right monitor is my browser. It is a 23" 1080p screen and it has Firefox fullscreen with usually 20-30 tabs open to reference pages, documentation, etc. I very rarely want to look at two webpages side by side at the same time. If I do, I open a second Firefox instance and use KDE’s built-in left-right split screen feature.
I actually usually also use my laptop’s 14" screen as a 4th monitor, I have my notes app (Trilium) and my password manager (KeePassXC) on there and switch between them as needed.
Most of my work happens in browser, some of it happens in terminal, other parts happen in vscode. I have very little method to the madness but I’m hoping at some point in the not so distant future to consolidate my desk to a triple monitor setup. I currently have two connected to the work laptop and two for my personal desktop. It’s a bit chaotic
Honestly, if you’re using 3 monitors, you’re kind of using a single display split into a minimum of 3 tiles.
Tiling window managers support a workflow with one large monitor that you can split into n tiles whichever way you want without touching your mouse.
I’m not saying it’s objectively better or anything, but once you get past the learning curve, having to manually size all of your windows is a chore. I love having my browser window open full screen, pressing a hotkey, and having a text editor open next to it taking up 1/3rd of the screen, with the browser resized to fit.
Mostly, things are full screen, and I love that my WM launches apps in full screen automatically, unless there’s another window open on the workspace I’m targeting.
And when they’re not in full screen, it’s all handled smoothly without me ever having to take my hands off the keyboard.
Web dev here.
- editor + web browser + devtools when working on frontend (workspace 3)
- editor + tests + another terminal for whatever when working backend (workspace 2)
- server terminal + lazydocker for both (workspace 1)
- web browser with work related tabs + todo list + notes app on workspace 9
- chat apps and email on workspace 10
- long-running jobs and performance monitors on workspace 8
- 4-7 are used for whatever
- music on scratchpad
Tiling (as well as stacking) make it manageable to have a bunch of windows open with a minimum of fuckery. Sure I can only read one at a time, but when coding for example I’m rapidly switching between the code and the result. I can have a text editor, browser, and devtools accessible as fast as I can think, and I spend very little effort arranging windows.
Also, a good tiling window manager replaces the need to learn a bunch of windowing features for other apps. My devtools open in a new window, I don’t use tmux or my terminal’s split features, and I generally have a bunch of browser instances open because my window management handles it all, better.
I’m also a web dev and I have a similar workflow where each workspace has its purpose. Except I never tile anything. I do have shortcuts that switch to specific windows but I never tile anything. That way my eyes are always on the center of the screen.
I very rarely need to tile windows next to eachother. So rarely that I just don’t see the point in making it the main feature of my WM/DE.
Very interesting to read though. Thanks for the thorough example.
¯\_(ツ)_/¯ whatever works for you, but that sounds painful to me. Why is only using the center of the screen so important?
I’ll clarify that I only use the more complicated layouts on my big monitor at home; when I am on a laptop it’s single window or side-by-side for the most part.
Do you have a small monitor?
In my opinion, on a >32 4k or 1440p display, the full screen is just way too big for a single window. Which isn’t a problem, because as easy as it is to switch between two windows, it’s even easier not to. Especially for things like having a web browser and dev tools, switching back and forth every time I tweak a CSS rule would be agonizing.
I like having a big window open. What annoys me with tiles is that the center of my screen which is the most natural to look at is now just a intersection of the other screens so I have to move my eyes over it just feels uncomfortable.
The main reason I use a tiling WM is because I grew tired of having to drag my mouse all over the screen to switch maximised windows, cycling through them with hotkeys or, even worse, spending a fat minute resizing windows with surgical precision in order to have them both visible.
At first I used KDE’s ability to make them transparent, which was ok enough until I tried experimenting with Sway; now I have the habit of splitting the workspace in two, and swiftly resizing the window I want my focus on.
In certain situations floating windows are more convenient, so I just Meta+F, make it a bit transparent, then drag it around.
If I really do not need nor want anything else on screen, Alt+Enter forces the window to its size, and if I want to look at the time or smth I have 9 other workspaces to switch to without any delay.
The downside of tiling WMs is that no desktop PC software developer considers their existence, and most applications don’t like being forcefully resized.
Also, popups often take half the screen - I can’t even blame anyone, portable graphical libraries and frameworks do not expect that popups need special treatment for the WM to display them correctly.
It’s basically the same as a stacking WM, except you can’t lose windows under others. And it automates the window handling with freely sizeable ones like terminals, not hiding them on top of each other, while eg. Steam can get its own Workspace.
Don’t need the mouse. Nothing ever gets tucked behind anything else. dwm allows you to put one window on multiple tags (desktops) in multiple window arrangements. Also it’s fully scriptable. Why NOT use a tiling WM?
You really hit the nail on the head here. Never having to take take your hands off the keyboard, while always having windows take up exactly the right amount of room, is the main reason I hate having to use non-tiling WM.
And your other point is spot on, too. Any workflow that you use in a standard WM you can also do in a tiling WM, except (imo) more easily. And there are lots of workflows that are agonizing without tiling functionality.
I want to read this book full screen. Hang on, didn’t that other book say something different about this? I want to open it. This is complex, I want to compare side-by-side. Oh, I get it, I should take notes on both of these. Hang on, I need to look at both books while taking notes. Okay I’m done with the second book but I still want to take notes on the first.
Slogging a mouse around to click, drag, click, drag, double click, drag, all while repositioning your hands to type, sucks so bad.
The case is even more clear when you consider that the concept of tiling WMs is just an extension of the game-changing paradigm behind terminal multiplexers and IDE splits.
It’s just better. There’s probably a bit of an adjustment when you’re first adapting to it, especially if they’re really used to a mouse-centric, window-draggy workflow, which is likely the only reason that people think they don’t like them.
You don’t really get my point though. I am fully on board with using keybinds and using the mouse as little as possible. I just mean why tile windows at all. I just can’t focus on anything other than one window if I need the other program I have a shortcut that brings it forward. I keep my eyes mostly in the same position this way.
Anyway this is just a matter of workflow that’s what it comes down to. I may just have to accept that it’s not for me.
Yeah, definitely a matter of workflow and personal preference. Nobody wants to convert anyone else, you just ask why people use tiling WM, and people are answering.
why tile windows at all
I can answer that pretty comfortably. There are two main reasons, the first is that it’s very common to have to look at two things at once. If I’m taking notes while reading something complicated, or writing some complex code while referencing the documentation, or tweaking CSS rules while looking at the page I’m working on, it’s just way too disruptive to constantly have to switch windows.
The second main reason (for me) is that a lot of the time, the content of a single window is too small to make use of the space on your monitor. In those cases, if I have something else I’m working on and it’s also small, I’ll tile them. It might be easy to toggle between windows with a hotkey, but it’s strictly easier to not have to toggle, and just move your eyes over. Peripheral vision means that you don’t entirely lose the context of either window. When you’re ready to switch back to the one you just left, you don’t have to touch anything, and you don’t have to wait for the window to render to visually locate where you left off.