dwm-ipc is a patch for dwm that implements inter-process communication through a UNIX socket. This allows you to query the window manager for information, listen for events such as tag changes or layout changes, as well as send commands to control the window manager from other programs/scripts.

The project is being managed and developed on this GitHub repo. If you discover any bugs, feel free to create an issue there.


In order to build dwm you need the Xlib header files. The patch additionally requires yajl which is a tiny C JSON library.

Applying the Patch

The patch is best applied after all of your other patches due to the number of additions to dwm.c. The patch was designed with compatability in mind, so there are minimal deletions.

Patch Compatability

At the moment, the patch will only work on systems that implement epoll and is not completely portable. Portability will be improved in the future.

Supported IPC Messages

At the moment the IPC patch supports the following message requests:

For more info on the IPC protocol implementation, visit the wiki.


dwm-msg is a cli program included in the patch which supports all of the IPC message types listed above. The program can be used to run commands, query dwm for information, and listen for events. This program is particularly useful for creating custom shell scripts to control dwm.


The latest releases of the patch will always be available first on the project Releases page. There are also "update" patches to update from previous versions of the patch.

Related Projects