diff --git a/include/modules/river/tags.hpp b/include/modules/river/tags.hpp index bae16070..dca0873d 100644 --- a/include/modules/river/tags.hpp +++ b/include/modules/river/tags.hpp @@ -20,8 +20,8 @@ class Tags : public waybar::AModule { void handle_focused_tags(uint32_t tags); void handle_view_tags(struct wl_array* tags); void handle_urgent_tags(uint32_t tags); - void handle_focused_output(struct wl_output *output); - void handle_unfocused_output(struct wl_output *output); + void handle_focused_output(struct wl_output* output); + void handle_unfocused_output(struct wl_output* output); void handle_show(); void handle_primary_clicked(uint32_t tag); @@ -33,7 +33,7 @@ class Tags : public waybar::AModule { private: const waybar::Bar& bar_; - struct wl_output *output_; // stores the output this module belongs to + struct wl_output* output_; // stores the output this module belongs to Gtk::Box box_; std::vector buttons_; struct zriver_output_status_v1* output_status_; diff --git a/man/waybar-river-tags.5.scd b/man/waybar-river-tags.5.scd index 1966d335..7d6e9c7c 100644 --- a/man/waybar-river-tags.5.scd +++ b/man/waybar-river-tags.5.scd @@ -59,6 +59,7 @@ Addressed by *river/tags* - *#tags button.focused* - *#tags button.urgent* - *#tags button.output* +- *#tags button.tag-N* Note that occupied/focused/urgent/output status may overlap. That is, a tag may be both occupied and focused at the same time. diff --git a/src/modules/river/tags.cpp b/src/modules/river/tags.cpp index aac304ed..f08fdac5 100644 --- a/src/modules/river/tags.cpp +++ b/src/modules/river/tags.cpp @@ -35,12 +35,12 @@ static const zriver_output_status_v1_listener output_status_listener_impl{ static void listen_focused_output(void* data, struct zriver_seat_status_v1* zriver_seat_status_v1, struct wl_output* output) { - static_cast(data)->handle_focused_output(output); + static_cast(data)->handle_focused_output(output); } static void listen_unfocused_output(void* data, struct zriver_seat_status_v1* zriver_seat_status_v1, struct wl_output* output) { - static_cast(data)->handle_unfocused_output(output); + static_cast(data)->handle_unfocused_output(output); } static void listen_focused_view(void* data, struct zriver_seat_status_v1* zriver_seat_status_v1, @@ -183,6 +183,7 @@ Tags::Tags(const std::string& id, const waybar::Bar& bar, const Json::Value& con button.signal_button_press_event().connect( sigc::bind(sigc::mem_fun(*this, &Tags::handle_button_press), (1 << tag))); } + button.get_style_context()->add_class("tag-" + std::to_string(tag + 1)); button.show(); } @@ -306,7 +307,7 @@ void Tags::handle_urgent_tags(uint32_t tags) { } } -void Tags::handle_focused_output(struct wl_output *output) { +void Tags::handle_focused_output(struct wl_output* output) { if (output_ == output) { for (size_t i = 0; i < buttons_.size(); ++i) { buttons_[i].get_style_context()->add_class("output"); @@ -314,7 +315,7 @@ void Tags::handle_focused_output(struct wl_output *output) { } } -void Tags::handle_unfocused_output(struct wl_output *output) { +void Tags::handle_unfocused_output(struct wl_output* output) { if (output_ == output) { for (size_t i = 0; i < buttons_.size(); ++i) { buttons_[i].get_style_context()->remove_class("output");