aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Keys/Dsl2.hs
Commit message (Collapse)AuthorAge
* Overhaul how Wml is implemented.Josh Rahm2024-02-04
| | | | | | | | | This adds a new "KeyFeed" monad which is reminiscent of a parsec-type monad. This allows keys like 'g' to be mapped using a subbind and the actual WML part be handled in the catch-all handler. This also significantly cleans up the typing and complexity of the Wml implementation.
* Break out some stuff in Dsl2.Josh Rahm2024-02-03
| | | | | Create new Grab and KeyCodeMapping modules to support keycode mapping. That subsystem did not belong in Dsl2.
* Add support for root-level keycode mappings.Josh Rahm2024-02-02
| | | | | | | | | The code is a bit of a mess, and should probably be moved out of Dsl2 and into a dedicated place, but it works. I had to do a bit of a hack to get around XMonad's ungrabbing the keyboard after a Mapping event, which is not the best, but I don't have a better way of doing it.
* Add limited ability to bind directly to keycodes.Josh Rahm2024-01-31
| | | | | | | | | | | | | | | Binding to keycodes is good for nonmnemonic key bindings -- where the choice of key is due to its position on the keyboard rather than the character associated with it. Right now only window bindings and subbindings can use keycode bindings. Root bindings can still only be keysyms and buttons. I've been using this feature to map some movement keys to Hyper. This emulates the function key on my M770 keyboard where fn+ijkl are used as arrow keys. I use the tab key as my hyper key. With xcape it can operate as a Tab key when release, or a modifier key when held down, which is awesome.
* Add some documentation to Dsl2.hsJosh Rahm2023-12-14
|
* Added documentation ability for Dsl2 keys.Josh Rahm2023-12-13
|
* Replacing existing binder DSL with a better and more expressive DSL.Josh Rahm2023-12-13
This new DSL is cleaner and more powerful. This new DSL allows mixing key and mouse bindings in submappings, which can be very useful.