hyprland/workspaces: allow using the original window class/title

This turns the values of window rewrite rules in hyprland/workspaces from static strings to format strings with the values {class} and {title} available.
This commit is contained in:
Emily Ellis 2023-12-30 21:07:40 -05:00
parent 99d26e44ee
commit ff09ef6d71
2 changed files with 4 additions and 2 deletions

View File

@ -24,7 +24,7 @@ Addressed by *hyprland/workspaces*
*window-rewrite*: ++
typeof: object ++
Regex rules to map window class to an icon or preferred method of representation for a workspace's window.
Keys are the rules, while the values are the methods of representation.
Keys are the rules, while the values are the methods of representation. Values may use the placeholders {class} and {title} to use the window's original class and/or title respectively.
Rules may specify `class<...>`, `title<...>`, or both in order to fine-tune the matching.
*window-rewrite-default*:

View File

@ -891,7 +891,9 @@ std::string Workspaces::getRewrite(std::string window_class, std::string window_
} else {
windowReprKey = fmt::format("class<{}>", window_class);
}
return m_windowRewriteRules.get(windowReprKey);
auto const rewriteRule = m_windowRewriteRules.get(windowReprKey);
return fmt::format(fmt::runtime(rewriteRule), fmt::arg("class", window_class),
fmt::arg("title", window_title));
}
WindowCreationPayload::WindowCreationPayload(std::string workspace_name,