aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Submap.hs
Commit message (Collapse)AuthorAge
* 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.
* Fix issue where pointer and keyboard were not being properly ungrabbed.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.
* Fix issue where submapping keys does not work with numlock onJosh Rahm2023-12-08
|
* Clean the mask for button submaps.Josh Rahm2023-12-06
| | | | This fixes the bug where many bindings don't work if numberlock is set.
* Add new 'selected windows' featureJosh Rahm2023-12-06
| | | | | | | | | | | | This new feature creates a 'selected windows' buffer which allows the user to select windows. These windows are then automatically made the argument for a Wml window operation such as shifting. This is great for when one wants to apply an action to a set of windows which are too difficult to describe with Wml expressions. In addition, I have added a bunch of mouse bindings and key bindings to this.
* Change the rotate-screen-left/right to just swap current screen with ↵Josh Rahm2023-12-04
| | | | left/right. It is more intuitive and is more flexible. As a part of this, I incresed the timeout for multiple button bindings to 5000ms like how keystrokes work.
* Remove more unused imports.Josh Rahm2022-11-23
| | | | GHC left some of the unused imports as `import X ()`
* Change to use minimal imports.Josh Rahm2022-11-23
| | | | | This is achieved by using `stack build --ghc-options=-ddump-minimal-imports` and looking for the *.imports files.
* More consistent handling with button mapping.Josh Rahm2022-11-22
| | | | | Button mapping is now similar in architecture to KeyMapping. As a consequence it works with the pending buffer.
* Format with ormolu.Josh Rahm2022-11-21
|
* Change window border when selecting windowsJosh Rahm2022-10-09
|
* Add basic language for moving windows aroundJosh Rahm2022-10-09
|
* fix some hlint warningsJosh Rahm2022-10-09
|
* Make history much, much more reliable.Josh Rahm2022-10-09
| | | | | | This time history is being done using a hook to keep track of history. This means I don't have to manually call pushHistory every time I focus a new window.
* Consistent timeouts using the clock rather than counting threadDelay. Add ↵Josh Rahm2022-10-09
| | | | timeout to nextButton
* Replace submap and friends with my own versions that do the timeout.Josh Rahm2022-10-09
|
* Add a Polling-style timeout to mapNextString.Josh Rahm2022-10-09
| | | | | It's not the best thing in the world, but it should help keep things in a consistent state when dealing with many multi-stroke bindings.
* Rename Internal to Rahm.DesktopJosh Rahm2022-10-09