Exploring DWL — Pt. 2

In the previous post of this series, I elaborated on my decision to opt for Linux. Now, let’s delve into the reasons behind my choice of DWL as my window manager.

DWL Tile Layout

DWL Tile Layout

Wayland vs. Xorg

I opted for Wayland due to its superior performance, absence of screen tearing, and improved support for high DPI multi-monitor setups.

Introducing DWL: My Dreamed, Hackable and Dynamic Window Manager

Within the Wayland environment, I experimented with various window managers, including Sway, Hyprland, and River, before discovering DWL.

Among the options available, DWL stood out to me for the following reasons:

  • Built-in Tags: DWL offers built-in tags, allowing me to group windows by tag and display multiple tags simultaneously. As someone primarily engaged in web development, this feature enables me to seamlessly switch between viewing changes live in the browser and editing code.

    River also provides similar tag functionality.

  • Hackability: DWL’s source code is relatively small compared to other window managers, making it highly customizable to suit my specific needs. This flexibility was the decisive factor in choosing DWL over River.

Customizing and extending DWL features is achieved through patches, which are readily available on the DWL Patches Wiki. You can explore my current DWL setup and the patches I utilize on GitHub.

Key Features

  • Scratchpads: A scratchpad refers to any window that you can toggle with a key mapping. This feature offers a faster alternative to repeatedly using Alt+Tab to locate specific windows.

    Note: Scratchpads are not exclusive to DWL, I’ve successfully implemented them on other window managers like Yabai, Sway, Hyprland, and River.

  • Submaps: Keybind submaps, also known as modes, enable the activation of a separate set of keybinds. For example, I utilize them for grouping keybinds that adjust the layout, open terminal scratchpads, or browser window scratchpads.

What About the Desktop Environment?

It’s important to note that DWL differs from traditional desktop environments like Windows, macOS, KDE, or GNOME. DWL serves solely as a window manager and lacks features such as notifications, brightness/audio controls, a status bar, app launcher, clipboard management, and more.

In subsequent posts of this series, I’ll delve into the additional programs I use to complement DWL’s functionality.


Posts in the series: Crafting the Perfect Linux Desktop