Why Vim fans love the Herbstluftwm Linux window manager

This article is part of a special series of 24 days of Linux desktops. If you're a Vim fan, check out herbstluftwm, a tile-based Linux window manager that takes the "Vim way" as inspiration.
139 readers like this.
OpenStack source code (Python) in VIM

Alex Sanchez. CC BY-SA 4.0.

Everybody loves Vim (aside from Dvorak and Emacs users). Vim is so popular that there are entire web browsers dedicated to navigating the web with Vim keybindings, a Vim mode in the wildly popular Zsh terminal emulator, and even a text editor. There's also a window manager called herbstluftwm that models itself partly after the "Vim way." Herbstluftwm does away with windows, as such, and replaces them with tiles, or quadrants, into which applications are loaded and used. You use the keyboard (Alt+h, Alt+j, Alt+k, and Alt+l) to navigate from one tile to another.


Install herbstluftwm from your distribution's software repository. After installing it, log out of your current desktop session so you can log into your new one. By default, your session manager (KDM, GDM, LightDM, or XDM, depending on your setup) will continue to log you into your previous desktop, so you must override that before logging in.

With GDM:

With SDDM:

Herbstluftwm desktop tour

The first time you log into herbstluftwm, you are greeted with nothing but a green screen with a darker green border around the edges. What you're seeing is the initial tile with no application loaded into it. To start the default application, xterm, press Alt+Return.

The documentation emphasizes the $HOME/.config/herbstluftwm/autostart configuration file as a way to start important applications when you log in. For applications you don't necessarily want to start every time you log in, you can use xterm as your launch daemon. As usual, placing an ampersand (&) symbol after the command returns control of the shell to you. To start Emacs, for instance:

% emacs &

This launches an Emacs window in a new tile and returns you to a prompt.

Emacs running in Herbstluftwm

Switching tiles

To move from one tile to another, use the classic Vim navigation combination of h, j, k, or l, along with the Alt key. For example, to switch from the terminal to an application in a tile below it (i.e., at the bottom of the screen), press Alt+j. To navigate back up, Alt+k. Left and right navigations are Alt+h and Alt+l, respectively.

Split screen

You can manually split a screen vertically with Alt+o and horizontally with Alt+u.

To remove an empty tile, navigate into it and press Alt+r.

Configuring herbstluftwm

Aside from the Alt keybindings, you communicate with herbstluftwm through the herbstclient command. This command can be used interactively from a shell, or you can preserve your preferences in a configuration file.

You can view all attributes available in Herbstluftwm with:

$ herbstclient attr

Herbstluftwm's default behavior is defined in the default config file, which you can copy to your home directory and modify. Upon launch, herbstluftwm executes the commands contained in the config file. For instance, if you find it awkward to use keybindings centered around the Alt key, which is traditionally a key reserved for in-application shortcuts, you can change the key used to trigger herbstluftwm actions in the config file:

% mkdir ~/.config/herbstluftwm
% cp /usr/xdg/herbstluftwm/autostart \
% sed -i 's/Mod=Mod1/Mod=Mod4/' ~/.config/herbstluftwm
% herbstclient reload

This changes the herbstluftwm modifier to the Super key (the "Windows" or "Tux" key, depending on your keyboard).

Using the autostart file, you can set custom keybindings, create tags for applications of a specific type so you can tile applications in a consistent way, and do much more.

Why you need to try herbstluftwm

Herbstluftwm is a fine example of a tiling window manager. It tiles windows by default and lets the user define exceptions to global rules. It uses Vim-like navigation but allows for quick and easy overrides. It's very likely the tiling manager you've been looking for, so try it soon.

What to read next
Seth Kenlon
Seth Kenlon is a UNIX geek, free culture advocate, independent multimedia artist, and D&D nerd. He has worked in the film and computing industry, often at the same time.


I like the way you used emacs after the whole vim keybinding discussion. XD

Good catch! I honestly didn't even notice the irony myself.

(I really don't have anything against Vim, really; but the key commands just aren't quite right on a Dvorak keyboard, especially navigation.)

In reply to by Rohit Goswami

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.