aboutsummaryrefslogtreecommitdiff
path: root/src/Wetterhorn
Commit message (Collapse)AuthorAge
* Have Meson orchestrate the whole build rather than stack.Josh Rahm11 days
| | | | | | | | As a part of this, I changed the file layout to: rt/ - the Montis runtime plug/ - the Montis plugin wlroots/ - wlroots
* Just a whole bunch of changesJosh Rahm2024-03-27
|
* Have macro support (again) and some type-level goodness.Josh Rahm2024-03-25
|
* Checkpoint.Josh Rahm2024-03-25
|
* Implement more stuff. Add DSL for binding to the new input handler.Josh Rahm2024-03-21
|
* Add Input.hs. This will be a more general version of Keys.Josh Rahm2024-03-21
|
* Implementing button presses and integrating it with the KeysM monad.Josh Rahm2024-03-19
|
* Higher fidelity for extensible state.Josh Rahm2024-03-19
|
* Add extensible state and macros. Fix some bugs with keys.Josh Rahm2024-03-19
|
* Change KeysM to use a ContT monad instead of rolling my own.Josh Rahm2024-03-19
| | | | | Turns out the haskell geniuses already figured out how to encapsulate such asynchronous control flow.
* Version bumpJosh Rahm2024-03-15
|
* Implement ability to customize the keys "putHandler" functionality.Josh Rahm2024-03-15
| | | | | This will be useful for the future when I will implement macro-recording functionality.
* Have Wetterhorn keep track of the windows.Josh Rahm2024-03-15
|
* More flexing with the new keysM system.Josh Rahm2024-03-05
|
* Added some escape-hatch keybindings for Wetterhorn.Josh Rahm2024-03-05
| | | | | | | 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.
* Better KeysM implementation and functions.Josh Rahm2024-03-05
| | | | This is making better key bindings possible and awesome!
* Added a new KeysM monad.Josh Rahm2024-03-04
| | | | | | | | | | | | | | | 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.
* wipJosh Rahm2024-03-01
|
* Huge refactor for the Haskell code.Josh Rahm2024-02-28
| | | | | | | 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.
* better surface handlingJosh Rahm2024-02-22
|
* Add wofi to the keylist and change the hotreload keyJosh Rahm2024-02-21
|
* Do not keylog myselfJosh Rahm2024-02-21
|
* Have the plugin handle more responsibility with keybindings.Josh Rahm2024-02-21
| | | | The plugin now passes the key events to the Wayland clients.
* Do a major garbage collection before hot reloading the plugin.Josh Rahm2024-02-21
| | | | | | | | | This is done to cleanup the dangling reference to the opaque state before unloading the plugin. This fixes the problem where the runtime gets a "strange object" during garbage collection after hot-reloading the plugin while keeping the RTS running.
* Add the typed codepoint as an argument to the keyboard handler.Josh Rahm2024-02-21
|
* Do most of keyboard handling in the plugin now.Josh Rahm2024-02-21
|
* Added ability to exit the program via a back-interface.Josh Rahm2024-02-16
|
* Framework for plugin to call into harness.Josh Rahm2024-02-14
| | | | | | 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.
* WIP: Working on the foreign interface.Josh Rahm2024-02-13
|
* Do not actually need to have the config wetterhorn function an FFI function.Josh Rahm2024-02-12
| | | | Remove it as such!
* Added event handlers for map/unmap/destroy surfaces, added Alt+F5 for hot ↵Josh Rahm2024-02-11
| | | | | | | | | | | | reload. It turns out I could actually remove the metaload handler from the plugin interface. As things turn out, when fully unloading the shared object and reloading it, the Haskell runtime no longer complained. This makes things much simpler, which is great. I do wonder if I'm going to run into issues because of this, but I'll cross that bridge when it's burning.
* Import tinywl into the project, starting the compositor phase.Josh Rahm2024-02-11
| | | | | | Right now nothing interesting is happening, but the new tinywl implementation is successfully loading a plugin and calling a handler for 'handle keybinding', which is pretty slick.
* Added some more commentsJosh Rahm2024-02-11
|
* Change up a lot of stuff.Josh Rahm2024-02-11
| | | | | Add more functions to the plugin interface and write some generators to generate an interface header file and the plugin's loading code.
* Just some minor changes. Proof of concept for state change.Josh Rahm2024-02-08
|
* Made some more complex state in Wetterhorn.Josh Rahm2024-02-08
Things are still purely for testing as I figure out how best to handle the ffi boundary, though things are starting to make sense.