Dynamic window manager

speedie's website

🏠 Home πŸ’Ύ Projects πŸ“˜ Blog πŸ“• Guides πŸ“§ Email 🐧 Dotfiles πŸ“° RSS πŸ’°Donate



 https://speedie.gq/donate

What is dwm?

dwm or dynamic window manager is a window manager. It manages the user's open windows and tiles them according to a set layout (dynamic).
This fork has more features and keybinds.

Tiling window managers (unlike floating window managers that you may be used to) tile windows based on a set layout making them easy to get productive on.
They also encourage the user to use their keyboard instead of the mouse so that the user doesn't have to move their hands much.


In order to install this build of dwm, all dependencies must be installed.
You can see (Dependencies) for a list of all dependencies required to use this fork.


This fork of dwm comes with the following layouts:

They can be switched between using a little menu (See Keybinds for more information)
The more commonly used layouts can be switched between using a quick keybind.


My build of dwm has been patched with the following patches:


Below is a list of all dwm keybinds.


Keybinds for regular applications


These are absolutely necessary, dwm will NOT compile without them


If you're used to dwm, this build might be a little bit unfamiliar to you. This is because this build doesn't use config.h (or config.def.h).
Instead, config.h is split into different parts to make it easier to edit. Instead of editing config.h you'll want to edit:

After you've edited one of the files, you need to run 'make clean install' to reinstall dwm.
Remember that you can change colors through your .Xresources file (see .Xresources and Pywal) meaning you do not need to recompile dwm.

Another important detail you must keep in mind is that this build comes with a status bar simply named 'status'.
It can be found in the dwm source code directory. It is just a shell script which adds stuff to your status bar. It will automatically be started when dwm starts.

You can edit the status bar simply by editing 'status' and running 'make clean install'.
Please note that most status bars including the built in 'status' depends on xsetroot which must be installed.

If you want to change status bar, edit options.h and set 'static char status' to your status bar binary (must be in $PATH).
Alternatively, you can also set dwm.status: <statusbar> in .Xresources (See .Xresources and Pywal)

.Xresources and Pywal

This fork of dwm has .Xresources support thanks to the .Xresources patch.
It also has pywal support (tool which grabs colors based on your wallpaper).

Colors reload automagically because of a reloadxresources function this build has combined with fsignal and a wallpaper script I wrote.
Therefore, if you want colors to reload instantly, you're unfortunately forced to use the bundled wallpaper script.

If you want to use another script, you can open up dwmutils and select 'Reload .Xresources' to reload .Xresources.
Alternatively, you can write a script yourself (18 reloads the colors)

Below is a list of all .Xresources values you can define. The .Xresources file should be placed in ~ or ~/.config by the user.
If it is not or you want it somewhere else, you can edit 'autostart.h' and 'make clean install'.

Note that the 'xrdb' dependency is required for both pywal and .Xresources support and 'xsetroot' is required for automatic reloading of colors.


Thanks to the 'fsignal' patch available on suckless.org's website, we can easily write shell scripts to interact with dwm.
This is exactly what I did and dwm-utils, dwm-swal, dwm-shutdown and more take advantage of it.

In order to use 'fsignal', your system must have 'xsetroot' installed.
Then simply use the dwm-utils script. Syntax is dwm-utils -exec <signum>

Below is a list of all signums and what they do.

Switching run launcher

Some users may prefer to use a different run launcher than dmenu.
Previously all scripts bundled would only run dmenu from $PATH but you can now switch run launcher very easily.

Run launchers must support dmenu arguments because otherwise scripts are going to be incompatible.
It must also support the additional '-g' argument that the dmenu grid patch provides unless you modify the scripts bundled.
Keep in mind that if you use a different run launcher, it may not support Pywal/.Xresources.

Auto generated.

This page was auto generated by the dwm-help script bundled with dwm. It acts as the help script and it writes documentation to HTML, Markdown and plain text from documentation in the docs folder and data grabbed from your current system.