diff options
Diffstat (limited to 'dwl-patches/patches/menurule/README.md')
-rw-r--r-- | dwl-patches/patches/menurule/README.md | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/dwl-patches/patches/menurule/README.md b/dwl-patches/patches/menurule/README.md new file mode 100644 index 0000000..8d8b757 --- /dev/null +++ b/dwl-patches/patches/menurule/README.md @@ -0,0 +1,70 @@ +### Description + +This patch adds a dmenu interface to [setrule][setrule], which allows to add or +change client rules at runtime. It must be applied on top of [setrule][setrule] +and [menu][menu] patches. + +You can invoke the menu by pressing `Alt+R`. The menu lists all the rules, plus +a shortcut to define a new one that would apply to the currently focused client +(marked with `(NEW)`). Rules that already apply to the focused client are marked +with `<`. + + + +To edit a rule, you need to select it, press `Tab`, change what you need and +finally press `Enter`. You can remove a rule by prepending it with `-`. To add a +new rule, just put new values into `[appid|title]`. + +To add support for new rules, you need to edit `fprintf` and `sscanf` calls in +`menurulefeed` and `menuruleaction` functions respectively. + +For example, this is what I did to add support for [swallow][swallow] patch +rules. + +```diff +diff --git a/dwl.c b/dwl.c +index 34397fc..f1b31ea 100644 +--- a/dwl.c ++++ b/dwl.c +@@ -2441,10 +2441,14 @@ menurulefeed(FILE *f) + fprintf(f, "%-*s " + " tags:%-4"PRIi32 + " isfloating:%-2d" ++ " isterm:%-2d" ++ " noswallow:%-2d" + " monitor:%-2d" + "%s\n", wid, buf, + r->tags, + r->isfloating, ++ r->isterm, ++ r->noswallow, + r->monitor, + (r == &t) ? " (NEW)" : match ? " <" : ""); + } +@@ -2465,10 +2469,14 @@ menuruleaction(char *line) + sscanf(line, "[%255[^|]|%255[^]]]" + " tags:%"SCNu32 + " isfloating:%d" ++ " isterm:%d" ++ " noswallow:%d" + " monitor:%d" + "%n", appid, title, + &r.tags, + &r.isfloating, ++ &r.isterm, ++ &r.noswallow, + &r.monitor, + &end); +``` + +[setrule]: /dwl/dwl-patches/src/branch/main/patches/setrule +[menu]: /dwl/dwl-patches/src/branch/main/patches/menu +[swallow]: /dwl/dwl-patches/src/branch/main/patches/swallow + +### Download + +- [v0.7](/dwl/dwl-patches/raw/branch/main/patches/menurule/menurule.patch) + +### Authors + +- [Nikita Ivanov](https://codeberg.org/nikitaivanov) ([GitHub](https://github.com/NikitaIvanovV)) |