Movwin: My (Unpublished) TUI Framework
movq.de
movq.de
My framework is demonstrating the capability-passing approach to effects, which is the underlying architecture in most modern JS frameworks, Jetpack Compose, and "immediate mode" toolkits (though the authors are not necessarily aware of capability-passing as a concept). If you've read recent posts on "algebraic effects" or "effect handlers" it's in the same space. It makes for a quite pleasant user experience. I'm enjoying the work uniting theory and practice; one of the benefits of writing the book is I can justify these excursions.
The great thing about TUIs is that a simple text component is a universal widget. If the user can display text and capture events they can implement any interface components they want in terms of that.
That said, whatever the framework provides pushes users in a particular direction. The core of the things I'm thinking of (some links below) is providing easily accessible context for the user right at the point where they are working. This can be completions at the cursor, or a quick key to pop up a command palette. Fuzzy search is standard.
Here are some examples:
* Corfu: https://github.com/minad/corfu
* Vertico: https://github.com/minad/vertico
* which-key: https://github.com/justbur/emacs-which-key
* LazyVim: https://www.lazyvim.org/
I've included links that have screenshots showing how they work. The list is biased to Emacs, because I'm an Emacs user (Doom Emacs in particular) and so more familiar with that ecosystem.
Hope that helps!
I'm working on what is effectively a fork of prompt_toolkit [1], which supports many modern terminal features I needed for euporie [2], such as terminal graphics, extra text styles, color palette detection, terminal clipboard, synchronized outputs, CSI-u, mouse pixel positioning, etc.
I'd be very interested to test it's performance and to read your code (I'm not an AI, promise :)
[1] https://github.com/joouha/euporie/tree/dev/packages/apptk
Python has lazy imports coming soon in 3.15!
Source: https://docs.python.org/3.15/whatsnew/3.15.html#whatsnew315-...
As an aside, I really like your web page - simple and clean with images and demos, no bloat.
For example, aptitude has `Aptitude::UI::Menubar-Autohide` and midnight commander has options in the layout menu to disable menu/buttons/etc. That way beginners get to learn through discovery, and may later choose to switch to calling the menu/action with a keypress. Both of those respond to "standard" F1 for help too.
Would I prefer emacs M-x and C-h style interaction in mc? Yeah, probably. I'm used to it everywhere else(such as zsh). However, as a long term user I can execute basically all the functions even though I've long since disabled the buttons, menus and hints.