Get the latest tech news
The Emacs Window Management Almanac
Window management in Emacs gets a bad rap. Some of this is deserved, but mostly this is a consequence of combining a very flexible and granular layout system with rather coarse controls. This leaves the door open to creating and using tools for handling windows that employ and provide better metaphors and affordances. As someone who’s spent an unnecessary amount of time trying different approaches to window management in Emacs over the decades, I decided to summarize them here.
For example, Edwina modifies Emacs’ manual window-tree based behavior to enforce a master-and-stack DWM-style auto-tiling layout, with a complete suite of accompanying window management commands. The keybinding C-M-s is already bound to isearch-forward-regexp, but there are many other ways to call that command: via a prefix arg to isearch-forward( C-u C-s), or by toggling regexp search with M-r when isearching, for instance. And at the end of this expedition into the elisp manual, there is no easy way to express a simple intention, like “do not disturb my window arrangement” Specifying overreaching and overriding display-buffer preferences can do this, but they lead to dozens of edge cases and unintended behavior.
Or read this on Hacker News