Merge pull request #2431 from zjeffer/fix/persistent-workspace-icon

hyprland/workspaces: Add "empty" icon and class
pull/2456/head
Alexis Rouillard 2023-09-01 09:09:32 +02:00 committed by GitHub
commit 347dd1c799
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -46,7 +46,8 @@ Additional to workspace name matching, the following *format-icons* can be set.
- *default*: Will be shown, when no string match is found. - *default*: Will be shown, when no string match is found.
- *active*: Will be shown, when workspace is active - *active*: Will be shown, when workspace is active
- *special*: Will be shown on non-active special workspaces - *special*: Will be shown on non-active special workspaces
- *persistent*: Will be shown on non-active persistent workspaces - *empty*: Will be shown on empty persistent workspaces
- *persistent*: Will be shown on non-empty persistent workspaces
# EXAMPLES # EXAMPLES
@ -74,6 +75,7 @@ Additional to workspace name matching, the following *format-icons* can be set.
- *#workspaces* - *#workspaces*
- *#workspaces button* - *#workspaces button*
- *#workspaces button.active* - *#workspaces button.active*
- *#workspaces button.empty*
- *#workspaces button.persistent* - *#workspaces button.persistent*
- *#workspaces button.special* - *#workspaces button.special*
- *#workspaces button.urgent* - *#workspaces button.urgent*

View File

@ -331,7 +331,8 @@ void Workspace::update(const std::string &format, const std::string &icon) {
auto style_context = button_.get_style_context(); auto style_context = button_.get_style_context();
add_or_remove_class(style_context, active(), "active"); add_or_remove_class(style_context, active(), "active");
add_or_remove_class(style_context, is_special(), "special"); add_or_remove_class(style_context, is_special(), "special");
add_or_remove_class(style_context, is_empty(), "persistent"); add_or_remove_class(style_context, is_empty(), "empty");
add_or_remove_class(style_context, is_persistent(), "persistent");
add_or_remove_class(style_context, is_urgent(), "urgent"); add_or_remove_class(style_context, is_urgent(), "urgent");
label_.set_markup(fmt::format(fmt::runtime(format), fmt::arg("id", id()), label_.set_markup(fmt::format(fmt::runtime(format), fmt::arg("id", id()),
@ -397,6 +398,13 @@ std::string &Workspace::select_icon(std::map<std::string, std::string> &icons_ma
return named_icon_it->second; return named_icon_it->second;
} }
if (is_empty()) {
auto empty_icon_it = icons_map.find("empty");
if (empty_icon_it != icons_map.end()) {
return empty_icon_it->second;
}
}
if (is_persistent()) { if (is_persistent()) {
auto persistent_icon_it = icons_map.find("persistent"); auto persistent_icon_it = icons_map.find("persistent");
if (persistent_icon_it != icons_map.end()) { if (persistent_icon_it != icons_map.end()) {