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.
Many tiling WMs can do “everything fullscreen” too, and they’re better at it since you don’t have to manually press the maximize button for every window you open.
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.
Sometimes I want the file manager alongside the document I watch. Bspwm give them all the space available automatically.
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.
I am just a regular user but on a smaller screen ie. 13 inch 1440x900 I just have a single maximized window visible even if I have multiple apps open like web browser because I can’t see anything if I have multiple windows.
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.
Sounds like your screen is too close to your face.
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.
I prefer a tiling WM for programming work. On my personal PC I actually use GNOME or KDE or something. But on my old study machine and my current work machines it’s i3 all the way. Being able to quickly tile 4 terminals together makes my work much easier. Often I have many terminals open, each with a bash history specific to what I’m doing there. Workspaces then act as a sort of bundle of applications with the same general purpose. For instance, one workspace for installing and copying stuff to a machine, another for VNC related stuff, etc. If I’d have to alt+tab between 8 terminals I’d never know which one is which. But now I can remember them by location which is way easier mentally. Similarly I sometimes have multiple projects open in an IDE, and I usually remember which workspace is for which project.
It’s even better on 4K monitors, where having 4 1080p terminals open is amazing. I can see everything and I only need to move my eyes. No keypress to switch terminal, everything is right there.
I’ve configured my entire interface to provide the most amount of input bandwidth for me so that I never have to wait for the computer to do what I want. I3 vim and vimmium solve my problems
I like vimium, but qutebrowser is way faster for me. It’s my go-to for research or reading documentation.
Even on Windows I’ve always used a “split” desktop. Windows has pretty okay tiling features (for the drag-and-drop folks). I found it pretty efficient being able to look at two browser tab windows or having a PDF file on one side and Word/Docs on the other.
When I was venturing into Linux and found out about i3wm, I pretty much fell in love. It does the same tiling thing on Windows but better. Now I can have four windows without it feeling too cramped and it’s reallly easy to move around with workspaces. I think it’s really great for students and researchers.
Because I can maximize the potential of my screen to the max.
I tend to use floating or fullscreen for general browsing but often you have to type something while frequently referring back to something else - for example when programming I will be looking at the documentation. Or maybe debugging something on the command line while looking at your code to see what’s going on. In those circumstances tilling is perfect.
Usually it’s just one program per virtual desktop, and maybe a second (briefly) for one-off terminal commands, etc.
The whole point for me is to avoid wasting time moving a mouse around or manually manipulating anything.
I really enjoy it because everything is automatically maximized, but I can always easily put programs next to each other (f.e. my school uses Discord, so I have to have it open next to Matrix). The window rules are also very useful, as I can make Firefox always be on the first workspace, or my terminal always on the third. You can also make certain apps always float so password managers and such still work the same way.
I don’t use an exclusive tiling WM, but prefer a hybrid stacked/tiled approach.
So my argument for the stacked approach (or why I prefer floating windows sometimes) is because sometimes, some of my windows don’t really work well as a small tiled space - remote desktop windows for instance. Or sometimes, there’s too much white space in a window and resizing it into a tile may make it look weird, like a web page (especially web apps). So tiling doesn’t always work for me, so for the most part I prefer floating/stacked windows.
As for tiling, it’s great when you’ve got multiple things you need to refer to, or keep an eye out on. For instance, in my typical tiled work setup, I would have one tile for emails, one for chat, one for my browser, and one is a terminal or IDE. The terminal or IDE would be my main work area, I need the browser open at the same time to look at help or other reference material and maybe copy-paste code, and the emails and chat I need them open to keep an eye on things. I might make use of other monitors or workspaces for other things, like full-screen windows such as remote desktop sessions, or other monitoring stuff.
So for me, both floating and tiling windows are useful, so I prefer a general stacked WM that can also do tiling.
How big is your monitor that you can havel 5 windows open at once and you can still see everything sufficiently? Also whats a stacked WM?
I usually have 4 windows on my 34" QHD monitor (16:10 aspect ratio), the fifth window is usually a full-screen window on a different workspace or monitor.
A stacking WM is a “normal” WM that most people use, like Mutter (Gnome) or kwin (KDE). Also called as floating WM. It’s called stacking because windows are organized in a layered stack, one on top of the other, similar to pieces of paper on a desk. They have a “z order”, and can be “above” or “below” each other, along the Z axis in the stack.
I have to bounce between documents, emails, and text editing all day. Everybody processes information in their own way, but for me the learning curve for a tiling WM was only a few minutes and it made doing my work much easier. I can be looking at 3 or 4 things for a project without tapping a bunch of times and going back and forth. Same goes for bookkeeping and all of the other things that I do that seem to require looking at 4 or 5 things at once.
When I’m outside of my preferred tiling environment (especially on Windows or a Mac), I feel like the window manager is me. I can get by using shortcuts, but I feel like I’m just attempting to approximate a tiling experience while also dealing with a higher cognitive workload moving windows around, zooming out to find something that is open somewhere in the background, remembering whether the file I was looking at was a pdf/jpeg/word document, etc. My tiling workflow really helps me ignore that kind of stuff.
I’m using tiling WM mostly to have shortcuts and more controls about window switching but I rarely have multiple windows visible at once, but when I do - tiling is more convenient. When it doesn’t - you can always make that particular window floating.