cdepillabout / cdepillabout/termonad
figure out a way for the user to set default key bindings
- Dominant language
- Haskell
- Stars
- 418
- Forks
- 51
- PR merge metrics
- No merged PRs in 30d
Description
It would be nice for the user to be able to set default key bindings in their `termonad.hs` configuration file.
Currently there are two types of key bindings:
- Key bindings to the current menu actions, like `new tab`, `close tab`, `copy`, `paste`, etc. These are set in the following function:
https://github.com/cdepillabout/termonad/blob/77cb1089e9e3b0d89161fce806c709e7665a26ad/src/Termonad/App.hs#L317
- Other key bindings that aren't associated with a menu action, like `Alt-1` for switching to the first terminal tab. These are set in the following function:
https://github.com/cdepillabout/termonad/blob/77cb1089e9e3b0d89161fce806c709e7665a26ad/src/Termonad/Keys.hs#L110
https://github.com/cdepillabout/termonad/blob/77cb1089e9e3b0d89161fce806c709e7665a26ad/src/Termonad/Keys.hs#L63
It would be nice to give the user the ability to change both of these key bindings.
That is to say, the user should be able to change the key associated with the menu actions (like `new tab`). The user should also be able to change key bindings that aren't associated with a menu action (like `Alt-1` for switching to the first terminal). Finally, the user should be able to add new key bindings that aren't associated with a menu action to call arbitrary functions they define.
Contributor guide
No contributing guide indexed for this repository
Research direction
Read the key-binding setup in src/Termonad/App.hs around line 317 and src/Termonad/Keys.hs around lines 63 and 110. Trace how termonad.hs configuration is loaded and how menu and non-menu bindings are registered. Done means users can override both existing binding types and define bindings for their own functions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100