Commit Briefs

Omar Polo

reworked the tokenizer -- breaking change

The parser was pratically rewritten. Strings now are required to be quoted with single quotes, while keys (still) requires double quotes. In addition, the * is no longer a valid match argument: to match on everything you need to use the special keyword `all'. match all # before was `match *' on "C-a" do "<Home>" # unchanged match class 'Firefox' # before was `match class Firefox' # ...


Omar Polo

add exec action for keys

users can now exec command on specifics keys. For example: match class Something on "C-<F5>" do exec my-program


Omar Polo

improved error messages

yyerror now is a printf-like variadic function. This helps to generate custom error message like "invalid keysym %s" or "invalid key %s" during parsing.


Omar Polo

tabify


Omar Polo

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-<Up>" do "<Page_Up>" for every application.


Omar Polo

add an error handler

the default error handler violates the pledge "stdio" by trying to read (and possibly also write after) some files. Also, I don't like my program to be randomly killed if I try to get class hints on a window that doesn't have any.


Omar Polo

initial commit