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.
pull/693/head
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());
} }