wlr/taskbar: add support for rewrite rules
This commit is contained in:
parent
91588fb8bb
commit
c55cd82b39
|
@ -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.
|
||||
|
@ -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
|
||||
|
||||
```
|
||||
|
@ -124,6 +140,10 @@ Addressed by *wlr/taskbar*
|
|||
],
|
||||
"app_ids-mapping": {
|
||||
"firefoxdeveloperedition": "firefox-developer-edition"
|
||||
},
|
||||
"rewrite": {
|
||||
"Firefox Web Browser": "Firefox",
|
||||
"Foot Server": "Terminal"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
#include "util/format.hpp"
|
||||
#include "util/string.hpp"
|
||||
|
||||
#include "util/rewrite_string.hpp"
|
||||
|
||||
namespace waybar::modules::wlr {
|
||||
|
||||
/* Icon loading functions */
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue