I noticed that there are quite a few UI glitches in vim-classic – and quickly found the cause: It comes with outdated Unicode tables.
I have to admit that I wasn’t aware that there’s a new Unicode release every year:
https://en.wikipedia.org/wiki/Unicode#Versions
Look at this huge number of changes. Every program has to keep track of that, often through libraries but sometimes not (like in Vim’s case).
I use Unicode extensively, but this shit is extremely expensive …
My TUI framework is having the same problem. At the moment, this is all offloaded to wcwidth, but if that library was to become unmaintained, I’d have to track Unicode myself.
Gah!
The DOS days were simpler. CP437, end of story. (Yes, I know that’s a lie.)
These commit messages… https://github.com/vergonha/garden-tui
@movq@www.uninformativ.de Regarding https://movq.de/blog/postings/2026-06-16/0/POSTING-en.html:
In my opinion, the KDE 3.5 menu was organized way better than the Windows Start menu. Granted, a typical KDE installation had much more applications to offer, too. So, there was more need to get it right. And it probably was also later in time.
Isn’t Notepad++ and Python cheating!? :-D
Crazy story on the clock’s seconds. I never heard of that before. Neat.
Yeah, UI these days is horrible. (That’s why my own TUIs suck, too!)
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
With multicolored TUIs, I find it usually hard to immediately tell which button is selected if there are just two.
Indeed, I wouldn’t be able to tell in that example, either. movwin works around that by (mostly) assuming that there is no support for colors at all, so there should always be a way to tell which widget has focus, even without colors. That’s why it puts brackets around a button’s label when focused:
The fewer colors you use, the better, I guess. 🤔
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
Another thing: With multicolored TUIs, I find it usually hard to immediately tell which button is selected if there are just two. I’m asking people for any relevant information. :-)
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
Getting the vim key bindings to work for focus switching in this modal dialog took me forever. Only cursors and (Shift+)Tab are supported out of the box. I absolutely understand that, it’s fine. I installed an input handler on the dialog, but the focus always stayed the same.
After two wasted hours, I was in despair to copy the tview.Modal into my own code base. Of course, I had to fix all the private tview field accesses first. But even installing the input handler directly on the buttons themselves did not work. Even though, the handler was definitely executed, the focus did not shift. Forcing redraws as a last resort also did not work.
Looking through all the messy chained input handling, I eventually stumbled across another place in the tview.Form, which is internally used by tview.Modal. This messed around with app focus receptions and input handlers. This gave me the idea to make the tview.Application refocus my modal dialog after I told the modal dialog which button to select. And would you look at that, this did the trick! I haven’t completely figured out what is going on exactly, but I could get rid of my Modal clone again.
I always go through hell with focus handling in tview. Each and every time. It just does not feel natural to me. Complete brainfuck to wrap my head around. The Urwid API felt sooo much more refined, it never was an issue. It just works. In fact, I cannot think of any other TUI library that has remotely the same pain level when it comes to focusing widgets as tview.
Now I’m curious how movwin deals with that. ;-)
Moana Trailer Review: Dwayne Johnson Movie Captures Disney Charm
Disney has released the final Moana live-action trailer ahead of its release. The latest look at the movie suggests the Dwayne Johnson-led live-action movie has captured the original’s charm. The Moana live-action movie is set to release in theaters on July 10, 2026. Alongside Johnson, the movie is led by Catherine Laga’aia, with John Tui, Frankie Adams, […]
The post [Moana Trailer Revie … ⌘ Read more
@movq@www.uninformativ.de That is really cool! Maybe it would look nicer if the selected entry highlighted the whole row, not just the individual cells in that row without the column spacers. :-? But maybe I’m wrong. Everyone has their own taste.
And no, it’s not pointless at all. I find this really interesting. The videos and photos are perfect for me. Even if I had the source code, I would not use that toolkit, as I’m not a fan of movable windows in TUIs. I want all my own programs to be fullscreen all the time. 8-) Having said that, it’s still an absolutely brilliant source of inspriation that will come in handy one day. So, keep posting. :-)
Kurzfristig statt früh gebucht in den Sommer
Der Krieg im Nahen Osten und die Sorge um die Verfügbarkeit von Kerosin haben auch Schatten auf die Sommerbuchungen bei Reisekonzernen geworfen. Österreichs größter Reiseveranstalter TUI ortet nun eine Trendwende. Die Nachfrage ziehe spürbar an. „Kurzfristig ergänzt Frühbuchen“, wie es bei TUI dazu heißt. ⌘ Read more
strace-ui, Bonsai_term, and the TUI renaissance
Article URL: https://blog.janestreet.com/strace-ui-bonsai-term-and-the-tui-renaissance/
Comments URL: https://news.ycombinator.com/item?id=48365904
Points: 4
# Comments: 0 ⌘ Read more
Slumber a TUI HTTP Client
Article URL: https://slumber.lucaspickering.me
Comments URL: https://news.ycombinator.com/item?id=48231938
Points: 4
# Comments: 0 ⌘ Read more
I’m still having some fundamental design issues with my TUI widget system, so I’m still not comfortable making this code public.
But after a day of work (and discussing AI ad nauseam at work), I just don’t have any energy left. 😑
MacPow – 实时显示 Mac 功率,精确到键盘、显示器、风扇、Wi-Fi、应用程序
MacPow 是一款可以实时显示 Mac 功率的 TUI 程序,它可以在终端中,以树形图表的方式显示 Mac 中各部件的实时功率消耗,包括 CPU、内存、硬盘、键盘、Wi-Fi、USB、蓝牙,甚至每一款正在运行的应用程序等。@Appinn 感谢 oh 同学的推荐。 炫酷,尽在掌握 说实话,青小蛙第一 ⌘ Read more
Archinstall 4.0 Released For Improved Arch Linux Installer Using Textual UI
Archinstall 4.0 is out today and just in time for the April 1 monthly refresh to the Arch Linux installer. With Archinstall 4.0, this Arch Linux OS installer is now using the Textual TUI library rather than the Curses library… ⌘ Read more
b4’s Review TUI With AI Integration Nearing Pre-Alpha Release
The b4 tool used for managing patch workflows to the Linux kernel has been seeing a lot of work recently on b4 review as the text user interface (TUI) to help expedite the patch review process for the Linux kernel. The b4 review TUI has been integrating AI agent code review helpers powered by the likes of Claude Code too for trying to help enhance the efficiency for Linux kernel patch reviews. That b4 review work is quickly approaching a pre-alpha sta … ⌘ Read more
v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
@bender@twtxt.net Here is a properly formatted version of your message:
Not yet — but that’s probably a good idea.
Instructions:
- Clone the repository
git clone https://git.mills.io/saltyim/saltyim.git
cd saltyim
- Check out the
v2branch
git checkout v2
- Build and install the CLI/TUI
make DESTDIR=$HOME/bin install
After installation, run:
salty-chat
👋 Looking for other interested folks to continue to evolve the development of Salty.im 🙏 I’ve been hard™ at work on the v2 branch and @doesnm.p.psf.lt@doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
- Double Ratchet by default.
- Group Chat (sender/client fan-out for now)
- Much better TUI with background agent.
- Mobile App coming soon™ (iOS in progress, Android next, same codebase)
I spent the day today integrating @xuu@txt.sour.is’s double ratcheting work and ratchet library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all “just works”™ and I’m quite happy with the outcome! 🤩 #saltyim #revamp
Linux’s b4 Kernel Development Tool Now Dog-Feeding Its AI Agent Code Review Helper
The b4 tool used by Linux kernel developers to help manage their patch workflow around contributions to the Linux kernel has been seeing work on a text user interface to help with AI agent assisted code reviews. This weekend it successfully was dog feeding with b4 review TUI reviewing patches on the b4 tool itself… ⌘ Read more
@lyse@lyse.isobeef.org It’s not super comfortable, that’s right.
But these mouse events come with a caveat anyway:
ncurses uses the XM terminfo entry to enable mouse events, but it looks like this entry does not enable motion events for most terminal emulators. Reporting motion events is supported by, say, XTerm, xiate, st, or urxvt, it just isn’t activated by XM. This makes all this dragging stuff useless.
For the moment, I edited the terminfo entry for my terminal to include motion events. That can’t be a proper solution. I’m not sure yet if I’m supposed to send the appropriate sequence manually …
And the terminfo entries for tmux or screen don’t include XM at all. tmux itself supports the mouse, but I’m not sure yet how to make it pass on the events to the programs running inside of it (maybe that’s just not supported).
To make things worse, on the Linux VT (outside of X11 or Wayland), the whole thing works differently: You have to use good old gpm to get mouse events (gpm has been around forever, I already used this on SuSE Linux). ncurses does support this, but this is a build flag and Arch Linux doesn’t set this flag. So, at the moment, I’m running a custom build of ncurses as a quick hack. 😅 And this doesn’t report motion events either! Just clicks. (I don’t know if gpm itself can report motion events, I never used the library directly.)
tl;dr: The whole thing will probably be “keyboard first” and then the mouse stuff is a gimmick on top. As much as I’d like to, this isn’t going to be like TUI applications on DOS. I’ll use “Windows” for popups or a multi-window view (with the “WindowManager” being a tiny little tiling WM).
Ncurses 6.6 Released With Improved Windows Terminal Support, Other Enhancements
Ncurses 6.6 was released today prior to closing out 2025. This programming library update for creating terminal-based text user interfaces (TUIs) features a variety of great improvements for ending out the year… ⌘ Read more
bluetui and restterm: two beautiful TUI applications
There’s something incredibly enticing and retrofuturistic about a well-designed TUI, or text-based user interface. There’s an endless list number of these, but two crossed my path these past few days, and I found them particularly appealing. First, we’ve got bluetui, an application for managing Bluetooth connections on Linux systems with bluez installed. The second is resterm. Resterm is a terminal-first client for working with … ⌘ Read more
i know yarn has a CLI client in yarnc but ngl i wish there was a TUI client. that’d be really fun
https://terminaltrove.com/chawan/ web browser #cli tui
there should be a yarn posting TUI. tbh
i love everything pico.sh i wish i had more of a use for their services but the paste service is SUPER handy omg i finally had a reason to use it (to send a friend my unfinished failed marvel API bash program lol) and it’s epic. i love SSH i love TUI apps they are the best
"twtxtfeevalidator/0.0.1" UA about? I thought I could ask before throwing a 1000GB file at it 🪤 could it be the same 'xt' thing @lyse was talking about the other day?
@lyse@lyse.isobeef.org yep, I gave it a spin locally! I freaking love the cute logo and the UI is fiiiine 👌 my TUI browsers love it just as much …
@abucci@anthony.buc.ci So.. The issue is that its showing the password by default? Would making an alias to always include the -c help? We can probably engage Jason with a PR to enable a more hardened approach when desired. I’ve spoken to him before and is generally a pretty open to ideas.
I found this app that was created by the gopass author that does copy by default and has a tui or GUI mode https://github.com/cortex/ripasso
Still two unresolved issues with WeeChat:
- How can I mark the current buffer as read? There is
/input set_unreadto mark it as unread (although I can’t tell that it does actually anything in the TUI) but there’s noset_readcommand that would put my read marker below the last message. Sure I can switch buffers and then the read marker is at the bottom, but this sounds like a silly workaround. There must be something better.
- I want the beep trigger to also fire when a regular message is sent. But the adjusted condition
${tg_displayed} && ${tg_tags} !!- ,notify_none,with the&& (${tg_highlight} || ${tg_msg_pv})removed then also includes joins and parts, which I don’t want to be alerted by. Now fiddling around with${tg_message_nocolor} !~ ^(-->|<--), let’s see.
How do you folks do that?
Maxime Buquet: Updates from the Poezio ecosystem
Releases have happened recently that revolve around Poezio, a TUI
(Terminal UI) client for XMPP, including Poezio itself, its backend XMPP
library Slixmpp, and also the poezio and
slixmpp plugins for OMEMO.

The TUI #XMPP client #Profanity released 0.8.0 https://profanity-im.github.io/blog/post/release-080/
Since beginning of this month the #XMPP TUI client #profanity started a blog: https://profanity-im.github.io/blog/index.html
@mox@tilde.town I am also using #i3 for some month and really like it. Also I switched to TUI/CLI programs for some tasks: https://blog.mdosch.de/2019/06/06/tui-programme/ (#German). It’s a lot more efficient when you don’t have to change between keyboard and mouse/touchpad so often.

