diff options
Diffstat (limited to 'dwl-patches/patches/setrule/README.md')
-rw-r--r-- | dwl-patches/patches/setrule/README.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/dwl-patches/patches/setrule/README.md b/dwl-patches/patches/setrule/README.md new file mode 100644 index 0000000..bdb7408 --- /dev/null +++ b/dwl-patches/patches/setrule/README.md @@ -0,0 +1,46 @@ +### Description + +This patch adds an ability to add or change client rules at runtime. + +Sometimes it happens that some client rule I've set is not relevant in the +current circumstance and adds major disturbance and annoyance to my work +(e.g., `isfloating` is set or unset and I want the opposite). Changing the rule +is not an option because it will require recompilation and restarting dwl, which +is even worse. Having an option of always being able to change a rule solves +this issue. + +The patch only adds one keybinding (`Alt+Shift+R`) to toggle `isfloating` +option. Upon pressing it, dwl will try to find a matching rule for the focused +client and change its `isfloating` setting. If there's no such a rule, a new +rule will be added. The new rule will inherit an appid of the focused client. + +It's very easy to add support for more rule options from other patches as well. +You just need to define a new function similar to `setruleisfloating` and add a +new keybinding to `config.h`. For example, this is a function I created for my +build to toggle `noswallow` option from the [swallow][swallow] patch: + +```c +void +setrulenoswallow(const Arg *arg) +{ + Rule *r = getrule(focustop(selmon)); + if (!r) + return; + r->noswallow = !r->noswallow; +} +``` + +You can also try [menurule][menurule] patch if you want to be able to edit rules +with dmenu. + +[swallow]: /dwl/dwl-patches/src/branch/main/patches/swallow +[menurule]: /dwl/dwl-patches/src/branch/main/patches/menurule + +### Download + +- [v0.7](/dwl/dwl-patches/raw/branch/main/patches/setrule/setrule.patch) +- [2025-02-14 v0.7](https://codeberg.org/dwl/dwl-patches/raw/commit/268bee3cee239e5bd52cceed88a52bfc21143cc3/patches/setrule/setrule.patch) + +### Authors + +- [Nikita Ivanov](https://codeberg.org/nikitaivanov) ([GitHub](https://github.com/NikitaIvanovV)) |