commit 9f53ba9bae9aee077aa72cbc3fb5af6d27d20ec2 from: Omar Polo date: Tue Sep 29 13:27:41 2020 UTC add ``match *'' to match everything Rationale: sometimes it can be useful to globally bind a key. For instance, some users may like to bind on "C-" do "" for every application. commit - fe0dcf4e2d945f528e2af9cbfc9d8eadb3b571bd commit + 9f53ba9bae9aee077aa72cbc3fb5af6d27d20ec2 blob - b02ff034fe7ec6b73083b8f43f90c995c9d0ba9d blob + 4e5955af2fe1ed655c3bba62b1fc22931d2df5d4 --- lex.l +++ lex.l @@ -53,6 +53,7 @@ KeySym key = 0; "ignore" return TIGNORE; "\n" yylineno++; return '\n'; +"*" return '*'; [-a-zA-Z0-9]+ { char *ident; blob - 0c76c3c970710a5bb2ef5bcf34fb6faaaa8e2a8f blob + 38d035c9d29844ffb29ddd28df94616f0668778f --- parse.y +++ parse.y @@ -72,7 +72,8 @@ matches : /* empty */ { $$ = NULL; } | matches match '\n' { $2->next = $1; $$ = $2; } ; -match : TMATCH TCLASS TSTRING { $$ = new_match(MCLASS, $3); } +match : TMATCH '*' { $$ = new_match(MANY, NULL); } + | TMATCH TCLASS TSTRING { $$ = new_match(MCLASS, $3); } ; keys : /* empty */ { $$ = NULL; } blob - 4deaff27e6ab5a1a8e4d28ce92a4b64fc10cd205 blob + 94e035c947c7e01e1002470e4c468cb20a6aaede --- star-platinum.c +++ star-platinum.c @@ -366,6 +366,9 @@ int match_window(struct match *m, Window w) { switch (m->prop) { + case MANY: + return 1; + case MCLASS: return window_match_class(w, m->str); break; blob - 7949d625573a5c7b59f6c7643c44965fdfd74716 blob + 4ed031b1a95ecbcdd4753c4ea0b3a6a416ac9298 --- star-platinum.h +++ star-platinum.h @@ -49,7 +49,8 @@ struct action { void do_action(struct action, Window, int); struct match { -#define MCLASS 1 +#define MANY 1 +#define MCLASS 2 int prop; char *str; struct match *next;