Skip to content

Commit

Permalink
Merge pull request #2269 from Arcus92/master
Browse files Browse the repository at this point in the history
wlr/taskbar: add support for rewrite rules
  • Loading branch information
Alexays authored Jul 4, 2023
2 parents 265b4ed + 58bdc6a commit 65f73d3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
20 changes: 20 additions & 0 deletions man/waybar-wlr-taskbar.5.scd
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ Addressed by *wlr/taskbar*
typeof: object ++
Dictionary of app_id to be replaced with

*rewrite*: ++
typeof: object ++
Rules to rewrite the module format output. See *rewrite rules*.

# FORMAT REPLACEMENTS

*{icon}*: The icon of the application.
Expand Down Expand Up @@ -109,6 +113,18 @@ Addressed by *wlr/taskbar*

*close*: Close the application.

# REWRITE RULES

*rewrite* is an object where keys are regular expressions and values are
rewrite rules if the expression matches. Rules may contain references to
captures of the expression.

Regular expression and replacement follow ECMA-script rules.

If no expression matches, the format output is left unchanged.

Invalid expressions (e.g., mismatched parentheses) are skipped.

# EXAMPLES

```
Expand All @@ -124,6 +140,10 @@ Addressed by *wlr/taskbar*
],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
},
"rewrite": {
"Firefox Web Browser": "Firefox",
"Foot Server": "Terminal"
}
}
```
Expand Down
8 changes: 8 additions & 0 deletions src/modules/wlr/taskbar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#include "util/format.hpp"
#include "util/string.hpp"

#include "util/rewrite_string.hpp"

namespace waybar::modules::wlr {

/* Icon loading functions */
Expand Down Expand Up @@ -622,6 +624,9 @@ void Task::update() {
fmt::format(fmt::runtime(format_before_), fmt::arg("title", title), fmt::arg("name", name),
fmt::arg("app_id", app_id), fmt::arg("state", state_string()),
fmt::arg("short_state", state_string(true)));

txt = waybar::util::rewriteString(txt, config_["rewrite"]);

if (markup)
text_before_.set_markup(txt);
else
Expand All @@ -633,6 +638,9 @@ void Task::update() {
fmt::format(fmt::runtime(format_after_), fmt::arg("title", title), fmt::arg("name", name),
fmt::arg("app_id", app_id), fmt::arg("state", state_string()),
fmt::arg("short_state", state_string(true)));

txt = waybar::util::rewriteString(txt, config_["rewrite"]);

if (markup)
text_after_.set_markup(txt);
else
Expand Down

0 comments on commit 65f73d3

Please sign in to comment.