PMRSYJRYQAXZ3OEDD7ANMXTECMT2DNJEC3XQABRNA63SAOUZWA3AC W32YIHMVPAREXUADJOAX45B6CTXZY42EE77RDDZYNJFEE2HLQ3HAC 52BEET6JL7L5PXXHSC6TN7K53HVSOIOVGUZTSQJ3OFF2YXC25UNQC 7JQD43QS55Q2YI6OQ6BGVAHSHKQHI3TKD6PXIKYKJZXOVOWFHMWAC 7XCGFU3GX4TQXZBOU7GFAQ62EEOTVRNWFYQGI3XULFPSUKDZ2EYAC 7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC 52ME2RULOPZQLH3ZKDKNRIR6FZK2BUOHRULMVN7EN5TO4APCKAOAC 7L3TU7JVWPBPHN7WF4TJ263BZ6BC3AYRRW6PULFUP5JZUGWWNUSAC S7RXJJZG4IEIVLPHEWFT5M2T3SRRO5US5SYBPXSYSWJJLXAKNNPAC 2QL2H4REDZT46FI3LQ4RYEMQYZBNBK3IC3KH3XERAJU3NCZWMNYQC D425ND7AT3F7QJ3CCSESMVDOC3J5C5P32M5SJDBHECZJXLHNQ2FAC J6OSBEBQXZR5JZ5TOCCUPELBPUVEQULGCXURXLPY7WFYTDEQOU2AC UXGT6OW6ENH6SWLVRF3JVS3WGTXPTKZPVOESJAGUSSLZT2WRASBAC MEMJUZF3HSX3M747YTV4LVUCOPRIS75IXAVXZIWLCZN2BHPUZHEQC HW2YJWC6AUWHZBS7KHF3PAWN44XGWSJ5WU47MCHTDCH32L5JN7EQC LQPHYO7IIMLXHUD5IK657BO4BE3SGT5HYDRJDU5OFDF5YUXKIRTAC QL6IFEPOHHUDBY2SGUZNNIRTDSZOSRJIHJKVU54LZSGTPTFPM2UAC XKWY25ZVEJIJU7R23CEG5CTYRAWKZ5FXSHY3ZEZRGCIWYIKQSLOAC applyrules(Client *c){const char *appid, *title;unsigned int i, newtags = 0;const Rule *r;Monitor *mon = selmon, *m;/* rule matching */c->isfloating = 0;if (!(appid = c->xdg_surface->toplevel->app_id))appid = broken;if (!(title = c->xdg_surface->toplevel->title))title = broken;for (r = rules; r < END(rules); r++) {if ((!r->title || strstr(title, r->title))&& (!r->id || strstr(appid, r->id))){c->isfloating = r->isfloating;newtags |= r->tags;i = 0;wl_list_for_each(m, &mons, link)if (r->monitor == i++)mon = m;}}setmon(c, mon, newtags);}void
/* Insert this client into the list and put it on selmon. */wl_list_insert(&clients, &c->link);wl_list_insert(&fstack, &c->flink);wl_list_insert(&stack, &c->slink);setmon(c, selmon);focusclient(c, c->xdg_surface->surface, 0);
/* Set initial monitor, tags, floating status, and focus */applyrules(c);