Favourite TUI Apps

I personally don’t have my DevTerm yet (R01 + CM4) but I see it best used with as little GUI and as much terminal apps / TUI as possible.
Maybe even the whole OS/WM

Do you have any recommendations?

As a File manager midnight commander and ranger seems to be good options.

I’d love to see a terminal web browser (for checking stackoverflow and such) but there seem to be no project to be under ongoing development.

I’d choose neovim for coding, but vi, vim and emacs seem to be valid options as well.

I saw a Spotify TUI over at the Clockwork Instagram page … I believe ….

2 Likes

There are several terminal browsers out there. I seriously doubt any of them would work with most common sites. Here are some names of a few packages that I know of:

  • links
  • links2
  • lynx
  • netrik
  • w3m

I’ve used early “links” & “lynx” some … a long … long … time ago. They used to be quite useful. Since CSS and JS infected the vast majority of the Internet these have not been all that useful. Heck sites like this (forum.clockworkpi.com) won’t work with simple graphical browsers like: surf, netsurf.

But go ahead and try them out. Perhaps you’ll have better success than I.

Since we’re talking about doing things without a GUI you might want to get comfortable with apt-cache too. Its a useful tool to query the list of available packages, even if they aren’t installed locally. Here are some quick recipes:

apt-cache search 'text.*browser'

This will list known packages that have ‘text’ followed by ‘browser’ somewhere in their descriptive content. The search criteria is a regex. And… well that’s a big discussion.

apt-cache search --names-only 'text.*browser'

This is the same thing but limits the search to the short description and package names.

apt-cache show w3m

This shows the full package meta data, which includes the package description. man apt-cache for more information.

1 Like

Oh boy. I use mostly CUI (character user interface) applications.

Lynx — web/gopher
Mutt — e-Mail
Vim — text editor
Sc-im — spreadsheet
Tines — hierarchical notebook
Cmus — music
Fff — filemanager
Slack-term — slack
Epy — ebook reader
Pandoc — in scripts to convert mail attachments
Screen — terminal multiplexing
Irssi — IRC
Nickle — calculator (actually a language tho)
Calendar-cli — does ical client stuff

4 Likes

Slight self promotion here as I’m sort of part of the team that develops it but the Joplin note taking application has a TUI/CLI app which I use extensively to sync with my other clients - graphical + mobile. I want to give the terminal version a bit of love which it has been missing out on and I thought it was a perfect fit for a devterm - just need to wait for the thing to arrive before I can play around with it and get it working on there.

3 Likes

Oh wow @ChipMaster
You are a beautiful wizard.
I will give it a go!

@genbuckturgidson
This is what I am talking about!

Great!
What about a way to interact with this forum via the terminal?

I found this list of TUI tools:

Maybe some of you find something useful and give us feedback to form the “ultimate DevTerm CLI app list” … still searching for a catchy name.

2 Likes

You can kind of use lynx for that.

Thanks @jan-peter . I try to be helpful.

Way back when (~`87) I received a 64180 (aka Z180, probably the very first SOC) and with that 512K RAM capacity and 2 built in terminal ports (UARTs) I immediately had visions of a windowing TUI. Basically I’m still dreaming of that to this day, but apparently few others are. :laughing: Although TWIN is a good start… if it worked. I might try this out on the R-01…

But then we have the R-01 and running a TUI is not all that much of an advantage. Let me explain: The R-01 (and likely all the other CMs that go in the DevTerm) does not have character based video hardware like is the norm in most IBM style PC hardware. It has a “frame buffer”, which is a nice way of saying, “a huge slab of RAM dedicated to holding pixel color data to be reflected onto the display.” So, while manipulating the display content a character at a time, as opposed to a pixel at a time, is HUGELY faster, due to the reduction in data, we don’t have that advantage here. The kernel is making up for the lack of character based hardware by essentially being a very limited GUI: Characters are rendered into a pixels based on a font. The screen is cleared by writing it full of black pixels and its scrolled one pixel at a time.

For comparison: the original IBM PC display cards (mono, cga, ega, vga in text mode) used a 2K buffer for the 80x25 character display. At 24bits per pixel the DevTerm needs somewhere in the neighborhood of 2MB, a 1000x increase in resources and work.

On top of that I’m relatively certain that the screen is getting rotated 90degrees, completely by software. This adds an additional amount of work that is then multiplied by the screen size.

Now with the other modules there is hardware for manipulating those pixels. And more cores! As advertised the R-01 does not provide any hardware assistance (at this time) so the only core you have has to share compute time with your app and push around and rotate a large amount of RAM to pretend to be a character based terminal.

NOTE: The lack of hardware video acceleration appears to be a software problem. I haven’t spent a huge amount of time with the D1 data sheets yet… but it appears to have hardware acceleration for normal 2D graphic manipulations, including rotation. What it doesn’t have is hardware 3D rendering used by things like OpenGL. But it does have video codecs and pixel manipulations. So it seems the slow video is a result of drivers not being available.

On top of that the R-01 has another interesting drawback (bug?): no native cursor. On that thread we have a partial solution that kind of works but many common terminal based apps break it (vi, nano, …), by resetting the terminal.

While a full fledged GUI does eat up a lot more storage and has more moving parts to put in RAM it provides advantages on the DevTerm+R-01 that makes me prefer to work in X rather than at the console… even if that is just to use xTerm. :slight_smile: Your mileage will likely vary but I don’t find working at the R-01 console all that useful (especially when the cursor disappears) and I do like having more than one thing on the screen at a time… after all we are running a double VGA monitor here! :wink:

Just some food for thought… while your waiting for the kit to arrive. That was a terribly long wait…

Lynx does JS? I haven’t looked at it in a long time.

It doesn’t, but you can read this forum without JS.

If you really wanted more functionality, however, you would need to use Brow.sh

Since you are involved with this project and promoting it here, I’m going to say this here: application programs that require SUID pems, will NEVER have a place on my system. They are a security risk in more directions than I shall enumerate here. Anything based on Chromium, and that includes itself, has this problem. And since the time this was implemented in Chromium, nothing based on Chromium (Chrome, Brave, Slack, MatterMost, …) has been on my system nor will be, until this is fixed. I don’t get how people allow themselves to get suckered into this… A browser has no need for or right to ask for this permission. :male_detective:

For the record I’m involved purely voluntarily (and relatively recently at that) - I’m not involved financially in any way shape or form in regards to donations or subscriptions to the cloud service - I even host my own server for myself. Only saying it as ‘promoting’ can sound loaded whether intentionally or not.

Honestly its not a topic I’ve seen come up before, I’m by no means a “real” developer nor that well versed in many of the specifics, it is simply a tool that I use and liked enough that I started getting involved with the community. I’m happy to be educated on the matter if you wish to PM me with any resources.

As far as I’m aware the terminal version doesn’t have any such issues (and most certainly doesn’t use electron or chromium) and it is in this application where most of my focus for development and improvement exists.

I don’t think I would ever bother trying to install the electron version on a devterm anyway, I don’t think it is a good fit compared to the terminal one.

In the spirit of not wanting to derail the topic I’ll also contribute some more TUI/CLI apps I rather like:

  • helix - Vim-like text editor
  • micro - non-modal nano-like text editor
  • nnn - File manager
  • taskwarrior - todo manager
1 Like

Oh! And that’s a loaded topic too! Unfortunately I’m coming to the conclusion I know too much to be content with the state of things anymore. ::sigh:: This would be a really great pair of topics to launch in a security channel if there were such a thing on this forum. I suppose it could go in “uncategorized”. But in the interest of not hijacking this thread I’ll PM you AND mention another of my favorite TUI tools:

I use joe for terminal based editing. It even works with the known cursor hack I previously mentioned.

1 Like

im also using the devterm exclusively through the console, i’m trying to create a DE/WM like experience using just the virtual console

Thanks for the details/thoughts.
I love linear framebuffers from the half-old days (Acorn Archimedes :), but of course the character based gfx even more (from the 8bit area).
So there is hope, that the devterm output could be significantly improved at some point nice.

@all
dillo https://www.dillo.org/ works pretty well for surprisingly many webpages on the R01!

1 Like

I played with Dillo some in the past. I’ll have to give it another look. But its not a TUI. :wink:

1 Like

No, but as you pointed out, there is likely just the same amount of tearing and all for plain console output as there is for bitmap graphics.

2 Likes

Vim with lots of plugins like nerdtree for editing,
Cmus for mp3s
Taskwarrior and vit for todos
elinks for web.

1 Like

My 50 cents:

  • ripgrep, fzf and fd for searching
  • bat as a better cat
  • vifm for file manager, very extensive, can view images, play video etc.
  • ipython as a better python REPL
  • minicom for interfacing with ancient relics
  • orca for fun midi stuff
1 Like