sway/workspaces added current_output CSS class to buttons.

All workspace buttons that are visible on the same output as the current waybar can be styled with the `current_output` css class.

This is really only useful in combination with the `"all-outputs":
true`. Then the workspaces that are on the current output can be styled
differently than the workspace on other outputs, while all are visible
in the waybar.
This commit is contained in:
Michael Rodler 2020-05-04 16:16:09 +02:00
parent c45adddd8e
commit c602d38c8e
2 changed files with 10 additions and 0 deletions

View File

@ -128,3 +128,4 @@ n.b.: the list of outputs can be obtained from command line using *swaymsg -t ge
- *#workspaces button.focused* - *#workspaces button.focused*
- *#workspaces button.urgent* - *#workspaces button.urgent*
- *#workspaces button.persistent* - *#workspaces button.persistent*
- *#workspaces button.current_output*

View File

@ -154,6 +154,15 @@ auto Workspaces::update() -> void {
} else { } else {
button.get_style_context()->remove_class("persistent"); button.get_style_context()->remove_class("persistent");
} }
if ((*it)["output"].isString()) {
if (((*it)["output"].asString()) == bar_.output->name) {
button.get_style_context()->add_class("current_output");
} else {
button.get_style_context()->remove_class("current_output");
}
} else {
button.get_style_context()->remove_class("current_output");
}
if (needReorder) { if (needReorder) {
box_.reorder_child(button, it - workspaces_.begin()); box_.reorder_child(button, it - workspaces_.begin());
} }