Suckless dwm hacks & patches

It has been a while since I updated my dwm patches and tools collection. Done now.

I have been using the dwm window manager on Linux and mac for a long time, hacking patches and not updating to HEAD for pretty much the same time.

dwm is simple enough that you can read its 2k sloc in a hour, and from there, hack your own complexity quite easily. Then for sure, you will hook up dwm with some decent companions to deal with volume, backlight, etc.

1. Patches and contexts

I use dwm on laptops with mac os (xquartz) and linux, either standalone or hooked to external monitor(s).

On small screens, I tend to work fullscreen all the time, eventually taking advantage of the "retina" resolution from my macbook pro to display "side windows" tiled with a smaller font size.

My useless gap patch adds some space around x11 clients to make them easier to identify. In fullscreen mode, both gaps and border are removed.

    +-----------------+-------+
    |                 |       |
    |                 |       |
    |                 |       |
    |                 +-------|
    |                 |       |
    |                 |       |
    |                 |       |
    +-----------------+-------+

With gaps around windows:

    +---------------------------+
    |+----------------++-------+|
    ||                ||       ||
    ||                ||       ||
    ||                ||       ||
    ||                |+-------+|
    ||                |+-------+|
    ||                ||       ||
    ||                ||       ||
    ||                ||       ||
    |+----------------++-------+|
    +---------------------------+

On larger screen (1920x1080), I mostly use vertical and horizontal tiling, depending on the situation, the screen being large enough to accommodate multiple windows side by side.

On even larger screens, say 2560x1440, the classic tiling mode makes the master area way to far on the left. My centered master allows for two convenient "centered" mode:

centeredmaster

With one client in master:

    +------------------------------+
    |+--------++--------++--------+|
    ||        ||        ||        ||
    ||        ||        ||        ||
    ||        ||        ||        ||
    ||  S2    ||   M    ||   S1   ||
    ||        ||        ||        ||
    ||        ||        ||        ||
    ||        ||        ||        ||
    ||        ||        ||        ||
    |+--------++--------++--------+|
    +------------------------------+

With two clients in master:

    +------------------------------+
    |+--------++--------++--------+|
    ||        ||        ||        ||
    ||        ||   M1   ||        ||
    ||        ||        ||        ||
    ||        |+--------+|        ||
    ||        |+--------+|        ||
    ||        ||        ||        ||
    ||        ||   M2   ||        ||
    ||        ||        ||        ||
    |+--------++--------++--------+|
    +------------------------------+

centeredfloatingmaster

With one client in master:

    +------------------------------+
    |+--------++--------++--------+|
    ||        ||        ||        ||
    ||    +------------------+    ||
    ||    |                  |    ||
    ||    |                  |    ||
    ||    |        M         |    ||
    ||    |                  |    ||
    ||    +------------------+    ||
    ||        ||        ||        ||
    |+--------++--------++--------+|
    +------------------------------+

With two clients in master:

    +------------------------------+
    |+--------++--------++--------+|
    ||        ||        ||        ||
    ||    +--------++--------+    ||
    ||    |        ||        |    ||
    ||    |        ||        |    ||
    ||    |   M1   ||   M2   |    ||
    ||    |        ||        |    ||
    ||    +--------++--------+    ||
    ||        ||        ||        ||
    |+--------++--------++--------+|
    +------------------------------+

2. Companions

Suckless projects include dmenu as an application launcher and many other tools, such a simple terminal.

Anselm Garbe announced dwm-utils during slcon2 as a multi-purpose tool to handle display layout, color themes, volume and so on.

For now, since it doesn't appear to be released yet, I'm relying on:

  • gods to display important stuff in the title bar
  • hotkeys to launch various scripts (screen capture, volume, …)

uselessgaps-dwm.png