index.md (2761B)
1 ipc 2 ==== 3 4 Description 5 ----------- 6 dwm-ipc is a patch for dwm that implements inter-process communication through 7 a UNIX socket. This allows you to query the window manager for information, 8 listen for events such as tag changes or layout changes, as well as send 9 commands to control the window manager from other programs/scripts. 10 11 The project is being managed and developed on this GitHub 12 [repo](https://github.com/mihirlad55/dwm-ipc). If you discover any bugs, feel 13 free to create an issue there. 14 15 16 Requirements 17 ------------ 18 In order to build dwm you need the Xlib header files. The patch 19 additionally requires [yajl](https://github.com/lloyd/yajl) which is a tiny C 20 JSON library. 21 22 23 Applying the Patch 24 ------------------ 25 The patch is best applied after all of your other patches due to the number of 26 additions to dwm.c. The patch was designed with compatability in mind, so there 27 are minimal deletions. 28 29 30 Patch Compatability 31 ------------------- 32 At the moment, the patch will only work on systems that implement epoll and is 33 not completely portable. Portability will be improved in the future. 34 35 36 Supported IPC Messages 37 ---------------------- 38 At the moment the IPC patch supports the following message requests: 39 * Run user-defined command (similar to key bindings) 40 41 * Get information about available layouts 42 43 * Get information about the tags available 44 45 * Get the properties of all of the monitors 46 47 * Get the properties of a specific dwm client 48 49 * Subscribe to tag change, client focus change, layout change events, monitor 50 focus change events, focused title change events, and focused state change 51 events. 52 53 For more info on the IPC protocol implementation, visit the 54 [wiki](https://github.com/mihirlad55/dwm-ipc/wiki/). 55 56 57 dwm-msg 58 ------- 59 `dwm-msg` is a cli program included in the patch which supports all of the IPC 60 message types listed above. The program can be used to run commands, query dwm 61 for information, and listen for events. This program is particularly useful for 62 creating custom shell scripts to control dwm. 63 64 65 Download 66 -------- 67 * IPC Patch v1.5.7: 68 [dwm-ipc-20201106-f04cac6.diff](dwm-ipc-20201106-f04cac6.diff) 69 * IPC Patch v1.5.6 to v1.5.7 Update: 70 [dwm-ipc-v1.5.6-to-v1.5.7.diff](dwm-ipc-v1.5.6-to-v1.5.7.diff) 71 72 The latest releases of the patch will always be available first on the project 73 [Releases](https://github.com/mihirlad55/dwm-ipc/releases) page. There are also 74 "update" patches to update from previous versions of the patch. 75 76 77 Related Projects 78 ---------------- 79 * [dwmipcpp](https://github.com/mihirlad55/dwmipcpp) is a C++ client library 80 for interacting with an IPC-patched dwm 81 82 * [polybar-dwm-module](https://github.com/mihirlad55/polybar-dwm-module) 83 requires this patch 84 85 86 Authors 87 ------- 88 * Mihir Lad - <mihirlad55 at gmail>