Commits
- Commit:
f63db357ac95baa4d1d2115c1da2aa7ba9e24c58
- From:
- Omar Polo <op@omarpolo.com>
- Date:
point out the limitation with reparenting window managers
- Commit:
f8f64f0968e941dae8f92007f221914c47a2851b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
-etags ... || true
improves the error that most make implementation given when etags is not
present: it doesn't seem scary anymore.
- Commit:
c21d6eaf97dbcc03bbf6bd90096349dba8e1b071
- From:
- Omar Polo <op@omarpolo.com>
- Date:
grabkey only on the targeted windows
now we grabkey() only on the window that matches what the user
requested. That is, given
match class 'Firefox'
on "C-n" do "<Down>"
we only bind C-n on windows that match the class Firefox, and not on
the root window as we did before.
In order to do this, we traverse the tree during startup and grabkey
on matching windows, than we subscribe also to SubstructureNotify so
that when a window gets mapped we receive an event.
There are still some downsides to this. Firefox uses also
'/usr/local/lib/firefox/firefox' as class name on my machine, and
sometimes it seems like we don’t grab the key at the first try (maybe
Firefox changes the class after the window gets mapped?)
- Commit:
c85d4bf338efd6371825dfe51680c62ee65be408
- From:
- Omar Polo <op@omarpolo.com>
- Date:
make grabkey accept the target window as parameter
This is needed so we can later grabkey on particular window and not on
the root one.
- Commit:
c7063e0ecdd508cad67bdb8d072630315fbac265
- From:
- Omar Polo <op@omarpolo.com>
- Date:
exec only on key press
it seems to me the most sensible approach
- Commit:
2eb11d8ec14963a978a1811f5d0beca158d64f50
- From:
- Omar Polo <op@omarpolo.com>
- Date:
rework send_fake: copy as much as possible from the original event
send_fake now copies almost all field from the original event, except
for the the window, keycode and state field.
When we grab a key we grab it onto the root window, so every event we
receive has a field window that is equal to the root. (this will
change in the future), so we need to change that.
The keycode and state obviously need to be changed, it's the whole
point of the function.
It doesn't seem to fix the known bug that occur in dino thought.
- Commit:
7c6a610b98e344ef485f60862db46ec271a50c5a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
improved readme. also mention bison
- Commit:
5f4cdf4fa31e121c74571a03ef5c81a4fa7376d4
- From:
- Omar Polo <op@omarpolo.com>
- Date:
explicitly pass -b y to ${YACC}
OpenBSD yacc doesn't require the option (it's the default value after
all), but bison do.
- Commit:
089324928d5a51ea263347aca4b5b30c6e223f8b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
improved and added documentation
- Commit:
eb90e50e34471fcbe785588d8113c4d581754f99
- From:
- Omar Polo <op@omarpolo.com>
- Date:
trying to improve error message
on some cases, user will get better errors, instead of "foo.conf:5
syntax error". This is the yacc complement for what's been done
previously in the parser also.
- Commit:
7d3286caede96d7b813eff7dc3691d683d0f9bf9
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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'
# ...
- Commit:
e0041ee5139dcd4173fe8f47ff691c0d41951341
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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
- Commit:
13cc0916743705e32211da7fcf5499197e36e883
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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.
- Commit:
ecc6fa05e1c8a3082eb9612873a27f1ebf8ffcce
- From:
- Omar Polo <op@omarpolo.com>
- Date:
tabify
- Commit:
9f53ba9bae9aee077aa72cbc3fb5af6d27d20ec2
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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.