diff --git a/src/config/parse_config.h b/src/config/parse_config.h index 28c7fbf..4b2f691 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -27,6 +27,7 @@ typedef struct { const char *animation_type_close; int isnoborder; int isopensilent; + int isunglobal; int isglobal; int monitor; int offsetx; @@ -1060,6 +1061,7 @@ void parse_config_line(Config *config, const char *line) { rule->isfullscreen = -1; rule->isnoborder = -1; rule->isopensilent = -1; + rule->isunglobal = -1; rule->isglobal = -1; rule->isterm = -1; rule->noswallow = -1; @@ -1119,6 +1121,8 @@ void parse_config_line(Config *config, const char *line) { rule->isnoborder = atoi(val); } else if (strcmp(key, "isopensilent") == 0) { rule->isopensilent = atoi(val); + } else if (strcmp(key, "isunglobal") == 0) { + rule->isunglobal = atoi(val); } else if (strcmp(key, "isglobal") == 0) { rule->isglobal = atoi(val); } else if (strcmp(key, "isterm") == 0) { diff --git a/src/maomao.c b/src/maomao.c index 4cc3005..cab75b9 100644 --- a/src/maomao.c +++ b/src/maomao.c @@ -1832,6 +1832,7 @@ applyrules(Client *c) { c->isnoborder = r->isnoborder > 0 ? r->isnoborder : c->isnoborder; c->isopensilent = r->isopensilent > 0 ? r->isopensilent : c->isopensilent; c->isglobal = r->isglobal > 0 ? r->isglobal : c->isglobal; + c->isglobal = r->isunglobal > 0 && (client_is_unmanaged(c) || client_should_ignore_focus(c)) ? r->isunglobal : c->isglobal; newtags = r->tags > 0 ? r->tags | newtags : newtags; i = 0; wl_list_for_each(m, &mons, link) if (r->monitor == i++) mon = m;