I've been using LazyGit [1] for a while and its made me realize how much easier a terminal ui can make things. It often makes me wish there was a TUI for the specific workflows I have when working in a given repo. Are there any programs that take some config file and produce a TUI as output? Eg. you have a file with a list of commands and aliases and it produces the corresponding TUI? Or are there any libraries which take minimal effort to add TUI elements to?<p>[1] https://github.com/jesseduffield/lazygit
I know you're looking for something even more high-level, but here are the highest-level tools I've come across recently:<p><a href="https://docs.poshtools.com/powershell-pro-tools-documentation/powershell-module/tui-designer" rel="nofollow">https://docs.poshtools.com/powershell-pro-tools-documentatio...</a><p><a href="https://github.com/bczsalba/pytermgui" rel="nofollow">https://github.com/bczsalba/pytermgui</a><p><a href="https://github.com/Textualize/textual" rel="nofollow">https://github.com/Textualize/textual</a> - discussed here:
<a href="https://news.ycombinator.com/item?id=31143327" rel="nofollow">https://news.ycombinator.com/item?id=31143327</a><p>Auto-generation of UI was an area of active research circa the early 2000s. I don't know if anything came of said research.
I don't suppose Charm is the kind of thing you mean? Maybe it is.<p><a href="https://charm.sh/" rel="nofollow">https://charm.sh/</a><p>e.g. Bubble Tea <a href="https://github.com/charmbracelet/bubbletea" rel="nofollow">https://github.com/charmbracelet/bubbletea</a><p>HN discussion 4 months ago (213 comments) <a href="https://news.ycombinator.com/item?id=30048332" rel="nofollow">https://news.ycombinator.com/item?id=30048332</a>
As far as I know you'll still have to write a program for terminal applications.<p>Check out NotCurses (<a href="https://github.com/dankamongmen/notcurses" rel="nofollow">https://github.com/dankamongmen/notcurses</a>) for some nifty functionality (including pictures!)
There's dialog: <a href="https://linux.die.net/man/1/dialog" rel="nofollow">https://linux.die.net/man/1/dialog</a> , which you've probably seen in action if you've ever done a 'make menuconfig'.