| Commit message (Collapse) | Author | Age |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Turns out the haskell geniuses already figured out how to encapsulate
such asynchronous control flow.
|
| |
|
|
|
| |
This will be useful for the future when I will implement macro-recording
functionality.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Specifically a way to reload the plugin and switch vterms. This is
important in case the plugin is borked and stops accepting keyboard, the
user can switch to a vterm, fix the plugin and reload it to get things
working again without running into data loss.
|
| |
|
|
| |
This is making better key bindings possible and awesome!
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This monad allows keybindings to look and feel like one is writing
blocking code with constructs like:
key <- nextKey
when (key == x) $ do
key2 <- nextKey
...
...
but this code does not block or do any io shenanigans, it under the hood
just changes the handler on the state. It seems pretty awesome and opens
the doors for some pretty expressive key bindings.
|
| | |
|
| |
|
|
|
|
|
| |
This adds new layout configuration, preparing for actually using the
layouts. This also restructures the code and tries to keep code
interfacing with the foreign structures together and rename them to more
sensible names.
|
| |
|
|
| |
The plugin now passes the key events to the Wayland clients.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This is done by passing an interface to the plugin from the harness. The
plugin can then request the harness do some things (such as reload), and
the harness will do that.
|
| |
|