terminal user interface to jujutsu. Focused on speed and clarity
1## Key remapping:
2
3How to hande key remapping:
4- Inside nottui:
5 - I coud allow users to specify some kind of key mapping function that looks for incoming keys and maps them to other keys.
6- Inside my own program.
7 - I could make all components take an `keyList` record and let the caller override that.
8 - This option is more versitile because it allows one list to use say, arrows, and the other to use something like hjkl
9
10## Handling unusual key combos:
11- Aparrently general ansi terminals don't properly distinguish many key combos. But kitty and newer protocols do.
12- Maybe I could use this protocol within notty.
13
14
15## Multithreaded/async support in picos.
16Currently if you set the timeout of nottui to 0 it will wait forever for input before it updates the ui.
17we need a way to interrupt the ui waiting if the internal state has changed.
18Basically the internal nottui loop should be:
19Wait on input/a lwd.var change.
20If there is a change, re-run
21- This allows for way less idle usage
22- This allows us to support selection
23 - Currently we cannot select becasue the terminal is constatnly re-rendering, I could fix that now probably, but the picos change would also fix it
24
25
26## Allow single threading support to also behave the same way
27I can make this work single threaded as well.
28Instead of using async await.
291. use a very small timeout in unix.select/ polling
302. on_invalidate set the invalidate flag true
313. Re-render when it's been set to true
32
33
34## locking issues
35Currently we have an issue with lwd and locking.
36Basically we want to observe all invalidation that isn't processed already
37- Nottui will reprocess the node before rendering if it's already invalid
38- Lwd has oninvalidate but it runs event lwd.set that is being delayed because we are during recomputation.
39I want to capture all invalidation between the last call to stabalize in nottui and the next event whether that be a invalidation event or a keypress
40
41
42
43
44# Small screen mode:
45mode that only shows the graph or diff for small screens
46
47
48## Fix focus issues.
49I need to use the new variant of Lwd.peek so that we are fetching the latest value when doing the focus switching. mostly the focus comparison is key