Why Tiling Window Manager Sucks (xmonad, ratpoison, dwm, etc)

By Xah Lee. Date: . Last updated: .

Tried xmonad today for real. Currently, 1 hour into it. [see How to Use xmonad; xmonad Keys]

Tiling windows is unusable and inefficient.

• Complete esoteric set of keys you need to memorize just for the tiling-window mechanism. Also, standard keys such as Alt+F4 are now screwed.

• More Combo keys = RSI. [see Keyboard Shortcut vs Launch Buttons] I type more than any Haskell coder on this earth.

• Encroach on each app's keys. This means, you'll spend time to config each app, or diddle with the global mode key setting. This means hours to be spent down the road.

• Completely screwing emacs's keys. (No, remapping to any of Super, Hyper, ▤ Menu, CapsLock keys won't help. All modifier keys are used up in my emacs for many purposes, including inserting math symbols.)

[see Emacs Keybinding, Keyboard, Articles Index]

Tiling Windows Concept = Fail

Worst of all, the tiling windows idea itself is too idealistic. The idea behind tiling windows is that it uses your screen real-estate efficiently. Namely, all apps are laid out without gaps.

But what this means is that the natural optimal size and position and arrangement of app windows on your screen is sacrificed. They, the position, size, arrangement, are artificially made to fit into a table layout. If all you do is text terminals, that's ok. But as soon as you have browser, image viewer, image editor, text/voice/video chat programs, math/scientific apps, …, each really needs its own optimal position/size. So, this means, when using a tiling-windows scheme, you either pop them into full screen, float them, or put each in a workspace, no tiling at all. Or do a lot combo key press to re-arrange/re-size them tiled. Much more work than is worth.

If you need every window to be the same size, great. As soon as you need one window for different shape/size, then you get funky sub-optimal layout. The gaps between windows simply moved into your windows. Some window will have lots of white space, and some will have jagged lines because the window is too narrow.

One symptom of tiling windows inefficiency is the so-called fibonacci layout.

tiling windows dwm-spiral
Suboptimal window size problem when windows are forced into a table layout. Notice the squashed clock, and wrapped lines in terminal. [image source http://dwm.suckless.org/patches/fibonacci]

Tiling windows… Do you really need to look at ALL the windows at once?

A Challenge: Try This Workflow

Try the following workflow for a week. I'd be interested to know if you still think tiling windows great.

• Remove tiling manager. Use a basic, normal, one, such as xfce.

• Set workspace/virtual-screen to just 1. (and remove the tens of related keybindings)

• Set up 3 function keys to switch to 3 of your most used app. For example, {F8, F9, F10} for {emacs, browser, terminal}. [see How to Set Key to Switch to Browser]

• Set up 1 key to cycle windows within a app. F3. (trivial to do in xfce. Harder in lxde/openbox.)

• Set up 1 key to switch to last window, such as F4. (this is normally Alt+Tab. In xfce, can be done easily. In lxde/openbox, the problem is that it requires pressing Enter to “exit” the switch, similar to releasing Alt.)

• Set up 1 key to toggle max/restore window size. F1

• Set up 1 key to close window. For example, F6 (must be 1 single key. Alt+F4 is not good.)

• Set up 1 key to switch prev tab, and 1 key to switch next tab. (i use {F11, F12})

• Set up 1 key to close tab. For example, the Pause/Break key. [see Print Screen, SysRq, ScrLk, Pause, Break Keys] (note: the prev/next tab key, and close tab key, should be next to each other. If you are using a full-sized IBM PC keyboard with numberpad, best to use / * - for {close, prev, next} tab, in that order. [see How to Program Number Keypad as Function Keys] )

• Turn on mouse hover auto-raise window. (not just focus, but raise.) [see Linux: Mouse Hover to Raise Window]

• Ban double-click. [see Linux: Set Mouse Single-Click to Open File]

Note, all above keys should be single press key, no holding of modifier shit.

Which key to set really depends on your keyboard. (i'm assuming you are on a full-sized keyboard, not laptop, as you shouldn't type on laptop keys for long periods.) For a normal IBM PC keyboard, the best keys are likely to be all function keys. but if you use any of the batman keyboards , you have a lot options, such as putting them on thumb keys.

If you do have a keyboard with extra keys, remove ALL keybinding that involves holding a modifier. Remove them ALL. Never press a key combination. [see Ban Key Chords]

If you don't know how to set keys for items i didn't give explicit instruction, see:

All You Want to Know About Keyboarding Efficiency

Even More Efficiency

This essay became popular, and over the years, lots comments.

Here's a basic guide, if you want the utmost efficiency.

First, get yourself a mechanical keyboard with lots thumb keys, and even better is driverless programable. Because the keyboard hardware, is the thing you touch every minute. It's the interface between you and your window manager. A good efficient one, makes a world of difference.

you want mechanical because that makes pressing keys much easier. [see Mechanical Keyboard and Repetitive Strain Injury]

you want lots thumb keys because thumb is the most powerful finger. (for pressing Control Alt or otherwise use it as leader key, or single function such as vi's Esc, or switch to last window.)

you want programable because then it's 100% reliable, not going thru loops and hoops via Operating System that always have glitches. And it works in any Operating System when plugged in. No need to spend hours with xmodmap/AutoHotkey/karabiner.

you want driverless programable because then you can just press keys on the keyboard to remap keys or record macros on the fly. No need to install or startup a driver software, which is usually intrusive that diddle with kernel, or have to do the elaborate process of config keyboard on a website then download firmware updater and follow the procedure.

[see Keyboard Firmware]

Get yourself a Programable Keypad for all your single-key press shortcut needs. (F1 to F12 is not enough)

Programable Keypads

See Why Function Keys F1 to F12 Are Useful

and if you too cheap to buy a dedicated programable keypad, see How to Program Number Keypad as Function Keys

alternative or in addition to programable keypad, get a 10 or 20 buttons mouse. You no understand it untill you are a competitive MMO gamer or photoshop pro.

see Mouse Reviews 🖱

also, scroll is the MOST important thing on mouse, because you use it the most.

especially on linux, where there is no accelerated scroll, you want scroll wheel that can spin.

See Logitech Mouse with Spin Wheel

the above are hardware stuff. Surprisingly, it is actually more important than your window magager or key setup. Especially for Repetitive Strain Injury issues.

also, in general, avoid any key combos such as holding Control, Meta, Alt. Ban them. See Ban Key Chords

and lastly, if you are into keybinding efficiency research, read the whole series of articles at

Keybinding Design ⌨

Ban Mouse?

A slew of linux emacs vi idiots have the obsession of wanting to ban the mouse. Typified by the name ratpoison windows manager. The level goes like this:

when you are at Xah level, you want 2 mouses. One for each hand, use whichever convenient at hand, and avoid mouse hand problem. Or, use a trackball or touchpad for one of them.

xah keyboard station 20170917 34454-s333x187
Xah's Keyboards
xah thanks tiling windows 2022 jq9wf
xah thanks tiling windows 2022

Reddit Discussion

keyboard driven floating window manager 2017-10-22
[keyboard driven floating window manager By Reddit. At https://www.reddit.com/r/unixporn/comments/783smw/keyboarddriven_floating_window_manager/ ]

Juan Castro's Story: Friendship with Tiling Window Managers has ended!

juan castro tiling window manager 2021-10-18 3cwb
[Friendship with Tiling Window Managers has ended! By Juan Castro. At https://juancastro.xyz/en/posts/friendship-with-tiling-has-ended.html ]

Thomas Van Der Berg's Story: Avoiding RSI and improving computer ergonomics

Thomas Van Der Berg tiling windows manager 2022-11-22
[avoiding RSI and improving computer ergonomics with some scripting and a dmenu hack called kbmenu By Thomas Van Der Berg. At https://www.thomasvanderberg.nl/blog/kbmenu-dmenu-hack-keyboard-menu/ ]

Rambling Xah Talk Show