Customizations

* Increased size of tag indication of clients
* In monocle mode, layout symbol shows number of clients in the tag
This commit is contained in:
Mahesh Asolkar 2022-11-24 17:59:57 -08:00
parent 63480f7fa4
commit fe3654cde3
3 changed files with 23 additions and 3 deletions

View File

@ -142,6 +142,16 @@ void Bar::setTag(int tag, int state, int numClients, int focusedClient)
t.focusedClient = focusedClient; t.focusedClient = focusedClient;
} }
uint32_t Bar::getSelectedTagNumClients()
{
for (auto &tag : _tags) {
if (tag.state == TagState::Active) {
return tag.numClients;
}
}
return 0;
}
void Bar::setSelected(bool selected) void Bar::setSelected(bool selected)
{ {
_selected = selected; _selected = selected;
@ -247,11 +257,11 @@ void Bar::renderTags()
renderComponent(tag.component); renderComponent(tag.component);
auto indicators = std::min(tag.numClients, static_cast<int>(_bufs->height/2)); auto indicators = std::min(tag.numClients, static_cast<int>(_bufs->height/2));
for (auto ind = 0; ind < indicators; ind++) { for (auto ind = 0; ind < indicators; ind++) {
auto w = ind == tag.focusedClient ? 7 : 1; auto w = ind == tag.focusedClient ? 7 : 3;
cairo_move_to(_painter, tag.component.x, ind*2+0.5); cairo_move_to(_painter, tag.component.x, ind*2+0.5);
cairo_rel_line_to(_painter, w, 0); cairo_rel_line_to(_painter, w, 0);
cairo_close_path(_painter); cairo_close_path(_painter);
cairo_set_line_width(_painter, 1); cairo_set_line_width(_painter, 3);
cairo_stroke(_painter); cairo_stroke(_painter);
} }
} }

View File

@ -65,6 +65,7 @@ public:
void show(wl_output* output); void show(wl_output* output);
void hide(); void hide();
void setTag(int tag, int state, int numClients, int focusedClient); void setTag(int tag, int state, int numClients, int focusedClient);
uint32_t getSelectedTagNumClients();
void setSelected(bool selected); void setSelected(bool selected);
void setLayout(const std::string& layout); void setLayout(const std::string& layout);
void setTitle(const std::string& title); void setTitle(const std::string& title);

View File

@ -246,7 +246,16 @@ static const struct znet_tapesoftware_dwl_wm_monitor_v1_listener dwlWmMonitorLis
}, },
.layout = [](void* mv, znet_tapesoftware_dwl_wm_monitor_v1*, uint32_t layout) { .layout = [](void* mv, znet_tapesoftware_dwl_wm_monitor_v1*, uint32_t layout) {
auto mon = static_cast<Monitor*>(mv); auto mon = static_cast<Monitor*>(mv);
mon->bar.setLayout(layoutNames[layout]); if (layout == 2) {
char lout[4] = "[M]";
uint32_t numc = mon->bar.getSelectedTagNumClients();
if (numc > 0) {
sprintf(lout, "[%d]", numc);
}
mon->bar.setLayout(lout);
} else {
mon->bar.setLayout(layoutNames[layout]);
}
}, },
.title = [](void* mv, znet_tapesoftware_dwl_wm_monitor_v1*, const char* title) { .title = [](void* mv, znet_tapesoftware_dwl_wm_monitor_v1*, const char* title) {
auto mon = static_cast<Monitor*>(mv); auto mon = static_cast<Monitor*>(mv);