What are folks favorite TUI apps?
Posted by CoffeeTrashed@reddit | linux | View on Reddit | 114 comments
Hey guys, I've been using Linux for awhile now, and I'm finally getting into setting up a sway config from scratch (well, almost: https://github.com/EndeavourOS-Community-Editions/sway).
My goal for this setup is to use TUI applications for as many of my daily processes as possible. I know some of the obvious ones like cmus, cava, cbonsai, etc, but I was wondering if you guys have favorite TUI apps that you use as well? Thanks!
zoismom@reddit
My favorite one is for UI Testing: https://github.com/kusho-co/kusho-ui-testing-tui
Longjumping-Ad5863@reddit
Hi! I made a tiny TUI app for linux notifications (with waybar support). would love your feedback
https://github.com/andreivinca/notitui
corpse86@reddit
Btop, musickube, youtube-tui (not working i think), ranger
CoffeeTrashed@reddit (OP)
These are great! I've used htop before but btop looks way better. I'll try out ranger and musickube!
MrGOCE@reddit
YAZI IS BETTER THAN RANGER.
Vermoot@reddit
I AGREE BUT SHOUTING MIGHT NOT BE THE BEST WAY TO CONVINCE PEOPLE.
Xwire99@reddit
COME AGAIN !?
Vermoot@reddit
THANK YOU I CERTAINLY WILL
satriale@reddit
Musikcube is my favorite music app for my local library
MrGOCE@reddit
YAZI
NEOVIM
BTOP
NMTUI
MUSIKCUBE
DOES LY COUNT ?
genpfault@reddit
GREETINGS, FELLOW 7-BIT TERMINAL USER!
MrGOCE@reddit
U MADE MY DAY LOL !
I DIDN'T KNOW SUCH THING EXISTED HAHA. THIS IS THE 1ST TIME IN YEARS SOMEONE REPLIES WITH SOMETHING FUNNY INSTEAD OF THE USUAL TOXIC OUT OF THE TOPIC "RE UR CAPS BROKEN? 😵💫". NOW I HAVE SOMETHING TO REPLY :P
U MADE ME LAUGH, THANK U HAHA.
tblancher@reddit
I dunno, typing in all caps is already pretty toxic in itself. I get it if your keyboard can only produce all caps, but usually that's time to get a new keyboard, no?
If you are using a Model 33, you can't really operate a UNIX shell, anyhow. You can't even type the pipe (
|) character, which is a severe deal breaker in my opinion.grizzlor_@reddit
Annoying? Yes. Pointless affectation? Probably. Toxic? No.
Considering UNIX was around for roughly a decade before ASCII terminals standardized, I was curious about how this was done historically, so I looked it up.
Apparently, on 7-bit terminals, old shells would allow you to use a single backslash in place of a pipe.
FryBoyter@reddit
https://github.com/alexpasmantier/television
grizzlor_@reddit
This looks almost exactly like
fzfAgreeable-Prompt-666@reddit
btop is beautiful
Danrobi1@reddit
emacs -nw
CoffeeTrashed@reddit (OP)
Nice! What makes you choose emacs over other options? I've used Neovim a little, but haven't taken too much of a look at emacs
mrtruthiness@reddit
org mode is with looking at. It's basically the first simple mark-up tool and organizer for projects/lists
If you're a C/C++ dev. gdb integrates very nicely into emacs. I've never used it, but it has git integration as well.
If you're used to it, it has a directory editor that's very useful. There have been some filenames I've created accidentally that were nearly impossible to deal with at the shell level, that were easy to fix up with dired.
M-x diff is useful.
I'm assuming vi also has a record-macro mode.
MinervApollo@reddit
Org-mode is the best markup syntax, in my opinion. I switched from emacs to Obsidian because depression made it hard to maintain my custom config (I hadn't used an out of the box config like spacemacs or anything), and so I now mostly use Markdown, but I wish org-mode syntax had been popularized instead.
agumonkey@reddit
emacs is fully programmable, it's a blessing and a curse depending on your mindest
nvim has lua too, i don't know if you control as much though (possibly)
Danrobi1@reddit
Emacs is an entire eco system on is own. Yep, step learning curve. However, once you learn you're good 4ever! Anything you can think you can have it in Emacs. Rather you create the code or someone else already did it. There's a built-in compiler. So the possibilities are infinite. Documentation best I've seen. Imagine same workflow across all your apps. And of course, there's org-mode!
Alexander_Selkirk@reddit
Well, to be precise, this is not an app but a lisp machine and OS for text processing.
Jokes aside, I once put text-mode emacs as the login shell into my passwd entry. It worked quite nicely.
ILikeBumblebees@reddit
VisiData!
h4ck3r3000d1no@reddit
sl
Jimlee1471@reddit
Mutt+offlineimap for email; nvim for my editor; aptitude for Debian-based package manager; timg (terminal image viewer).
tblancher@reddit
Get yourself isync/mbsync, it's MUCH faster than offline-imap (I thought the latter was unmaintained? That's why I started using mbsync in the first place).
The only thing mbsync lacks is offline-imap's blinkenlights mode.
Jimlee1471@reddit
Maybe I'll take a look at that. Personally, I couldn't care less about Blinkenlights as it serves no purpose for me.
I've used offlineimap for so long without issues that, once everything was set up properly, I ever saw a reason to change. It works fast enough for me and it just keeps rolling like a tank.
tblancher@reddit
I want to say I ran into some issue with offline-imap on Arch, but I don't remember the specifics since it was years ago now. Maybe an incompatibility with whatever new Python version Arch had just upgraded to? That seems the most likely.
I also think that's when I discovered it was unmaintained (at least that's what I seem to recall).
Anyway, if it still works for you no reason to change. I liked Blinkenlights since color can add just that little bit more information at the quickest glance. It's about the only thing I miss with mbsync.
Jimlee1471@reddit
Not sure about it being unmaintained; seems that patches were being submitted at least as recently as August of last year. However, therre is a (supposedly) better-maintained drop-in replacement of it called IMAP-mirror; I have no idea how well it works but do find it interesting.
tblancher@reddit
As with everything open source, there are so many ways to skin every cat. Which one you choose is likely a matter of taste, and what works for you may not work for anyone else.
I probably should have kept that in mind when I replied to your post in the first place!
theNbomr@reddit
No one has mentioned gnu screen yet. Definitely my most used TUI application,next to vi.
tblancher@reddit
You poor soul. I switched to tmux years ago and am much happier.
I never realized how much GNU screen sucked until I started using tmux. I'm sure it's gotten better, but tmux is too ingrained in my workflows to switch back.
At least when I last used GNU screen, its config was definitely not orthogonal. Some options had way different syntax than others. Also, at least by default GNU screen doesn't give you any indication you're even in screen. And why is the default prefix key Ctrl+a? Especially for a GNU program, that conflicts with the emacs keystroke for "move cursor to beginning of line."
tmux is far more scriptable. And it even has plugins! I'd be lost without tmux-resurrect.
theNbomr@reddit
Unless things have changed, tmux lacks a few features that I rely heavily on. I use screen in system startup scripts that launch perpetual interactive applications on headless hosts. These are all launched in multiuser mode so everyone listed in the access control list can attach and monitor or interact with the application running in the screen session. It's a niche use case, but is heavily entrenched in a large-ish work flow.
If tmux could support that use case, I'd consider switching.
tblancher@reddit
I was actually reading about this the other day. tmux can do it like GNU screen, but it's different enough that it doesn't do it the exact same way as screen, at least not out of the box. You have to do a bit more configuration to get it to behave the same way. From what I read tmux is actually more flexible than screen in this regard (basically the multiple users don't have to be viewing the same window/pane/etc.). What I read was that screen is unable to do it the way tmux can in this regard.
Back when I heavily used screen that was my biggest use case, sharing the pane with another user so they could watch me as I work on their system, I could teach them, they could ask questions, and they could make sure I wasn't doing anything nefarious.
I haven't used tmux with other users, so I really can't comment on how feasible it is to set it up in this way.
Big_Wrongdoer_5278@reddit
Allow me to take this opportunity to do some shameless advertising-
I'm writing a bash script to add more fun to my terminal experience by gamifying it- the script gives out EXP points for using commands and tracks the "player" level, occasionally giving out achievements as well.
Feel free to check it out!
https://github.com/Divinux/linux-terminal-gamifier/
tblancher@reddit
I'll check this out! I'm curious as to how you maintain game state, how you keep state between sessions, login shells, etc.
I've contributed to something similar, a dungeon crawl game in Bash, bashcrawl. It's mainly a fun way to teach the user Bash concepts.
One thing that some users have complained about is it's too easy to "cheat" by updating the shell environment variables. Also, some things don't persist very well if you launch a subshell, or load a new login shell.
The primary developer basically said this is more like a tabletop game, where you maintain state with pencil and paper. There's nothing in that realm that prevents players from cheating, either, but since the primary goal is learning it doesn't matter that much.
Big_Wrongdoer_5278@reddit
Basically I hook into PROMPT_COMMAND from .bashrc, force a history file update, and read the last line. So it is persistent between any terminal window user with that edit in his .bashrc is logged into, looks like i can drop into the tty as well and have it work as long as the same user is logged in, for it to work in other shells, that would have to be added to their .zshrc or whatever as well, and subshells don't seem to work at all since I can't hook into those and they don't necessarily write to history. I have looked at the learning adventure game GameShell too, but that uses a subshell and doesn't write to history, so does unfortunately not work with my script.
It absolutely does work with your bashcrawl as I have just tested, that is great news and I appreciate the post, it seems like an adventure game and my script would be practically made for each other! I'll spend some time with it and will actually add it as a suggestion to my readme file if I find that my script doesn't break anything in the game.
As for cheating, yeah, I take the same approach as the bashcrawl dev- it's made for myself as a fun way to give that occassional dopamine boost on level ups, and for others to encourage learning the terminal. If anyone wanted to cheat, they could disable "ignore duplicates" for history and sit there just mashing the same command, better yet, just manually edit the exp file, but where's the fun in that? :)
tblancher@reddit
If you do find anything in bashcrawl that breaks due to your gamification, feel free to point it out, or better yet file a PR/MR to fix it.
And if you feel so inclined, contribute a room or section to bashcrawl! That's actually how I got started, I created the spire and the library over a binge session one all nighter during the Christmas holidays. Another user more recently contributed the cemetery.
Icy_Research8751@reddit
my discord user is literally nmtui (thats not the full user obv - thats js the display name). So ig i really like nmtui
tblancher@reddit
I don't like many TUI apps, it's arguable you're straying from the power of the CLI when you use them.
But here are the ones I couldn't live without: - vim - mutt
mirluka@reddit
I’m millennial who’s about to sound like a boomer but I’d say mc (midnight commander) I tried yazi and other file manager TUIs which are nice for some people but I’ve never felt the comfort in those apps
arnaclez@reddit
what are the benefits of file managers over commands?? (genuine question)
tblancher@reddit
As a counterpoint, I find all TUI file managers (like midnight commander/mc, ranger, vifm, etc.) have such a steep learning curve I never got the hang of them.
The only GUI file manager I'm at all comfortable with is Windows Explorer, and that has changed enough over the years that I'm really not all that proficient with it anymore. Especially now that I use Windows a lot less than I ever have.
I do everything with the terminal shell: ls, cd, pushd/popd, I even have a shell function that calls mkdir and changes directory into it. I also use mimeo to open the default GUI app for a file straight from the CLI. Since I use macOS at work, I have this aliased to
open.If I have to do bulk operations on a set of files, I'll just whip up an anonymous shell function (mostly just a for or while loop). If it gets really hairy I'll save it to a file for future use.
Alexander_Selkirk@reddit
In my opinion, the two-panel file managers are better for data transfer and for tidying up stuff. The command-line is better for normal work.
mirluka@reddit
Due to its interface I can navigate between two folders easily and exchange files with hitting one single key. Searching file is super easy and you can navigate to CLI by hitting ctrl +o on the folder you’re on mc. You can preview files by pressing F3 and navigate among zip files like a folder without extracting etc. I can open/edit terminal/non-terminal editors using shortcut and so on
I also don’t like GUI file managers who present the preview of images and they’re tend to be glitchy as well
arnaclez@reddit
thanks! ive only tried gui file managers and you’re right in saying that they’re buggy, so i ended up going back to commands. i’m gonna give mc a try now though
mirluka@reddit
Good luck!
CoffeeTrashed@reddit (OP)
Oh yeah this is cool too, I'm definitely going to give it a spin, thanks!
rabbit_in_a_bun@reddit
nmtui can save a lot of time.
Alexander_Selkirk@reddit
And try out stumpwm - it is an Emacs-style tiling window manager, programmed in Lisp, very supportive for a keyboard-only workflow.
Alexander_Selkirk@reddit
jujutsu
fourpastmidnight413@reddit
Tmux and Vim.... All day long.
skuterpikk@reddit
fpFreePascal's IDE, when you don't need the full Lazarus IDEmmmmmmpc@reddit
My favourite: mutt, midnight commander, yast, tmux, and lynx
N0NB@reddit
Midnight Commander, Neomutt, Vim, Aptitude (Debian package manager), and htop.
keirandev@reddit
ncspot and discordo are two i dont see many people mention
Mzivic@reddit
discordo inspired me to make an even better discord TUI client, still in development but already has a ton of features, like playing videos in terminal, and whatnot, check it out: https://github.com/mzivic7/endcord
dcherryholmes@reddit
I like the idea of a Discord TUI but I always hear warnings that anything other than their official client risks getting your account banned. Is there a risk of that here?
Mzivic@reddit
Ive been using dissent (graphical third party client) for a year now and I wasn't banned.
I quickly checked discord ToS and all the documents, but didnt find any explicit mention that "third party client is disallowed". The only related thing that is restricted are self-bots.
They actually confirm that there can exist "other clients" [1].
And according to [2], they will "unban any accounts that get accidentally caught up in a spam heuristic". So, third-party client should be fine as long as it doesnt do anything out of "ordinary".
There are few things that can trigger spam filter like: opening new DM, sending friend request Ii will not implement this in my client). And recently discovered: sending messages in new DM (message must be sent with official client beforehand), which is prevented in my client. Also abusing their rest API can lead to false-positive, which my client tries to use as little as possible and can be further decreased in config, check FAQ on my repo for more info.
So the risk is not zero, but it highly depends on what you do with the client.
dcherryholmes@reddit
Thank you for explaining that.
billcy@reddit
Which library and language did you use? I just recently was learning nurses library with c++
Mzivic@reddit
Python and curses. Other: for image processing - pillow, video - PyAV, emoji handling - emoji, RPC server and discord gateway - socket, discord rest API - http.client, spellchecking - aspell running with pexpect lib, and a few more
billcy@reddit
Cool, I'll check it out
CoffeeTrashed@reddit (OP)
TUI Discord!! That's sick as hell, ncspot looks cool too, thanks!
TornaxO7@reddit
I cam recommend https://terminaltrove.com/ if you want to go trhough a list
Rimadandan@reddit
Impressive
CoffeeTrashed@reddit (OP)
This is perfect, thanks a ton! I'm going to down a massive rabbit hole on this list haha
Monsieur_Moneybags@reddit
Alpine for email.
aerphanas@reddit
I like btop
sleepyooh90@reddit
The only one I regularly use is Ncdu. It's super easy to find what takes up X amount much space and where. It's like wiztree/windirstar but for Linux in Tui.
xkcd__386@reddit
if you're using an SSD try
gdu; it's about 6-8 times faster on a cold cache.Mostly compatible with ncdu in terms of keystrokes, but be warned there are differences
genpfault@reddit
On Windows
gduis also much faster than WinDirStat.Skinnx86@reddit
Can confirm, really helpful to drill down quickly when you support clients and have shell access to their machines.
Makes proactive monitoring & response easy.
Vermoot@reddit
Been using
dua, especiallydua i. Any differences worth mentioning?klu9@reddit
Have you tried diskonaut? A bit more "graphical" but still speedy.
EugeneNine@reddit
exiftool, lets me tag and sort images and videos in bulk
jq is a little tool that extracts data from json files. Since Garmin did away with their end user API I now to have to just do their download everything once a month and script out the data for that.
ffmpeg is easier to crop, flip, etc go pro videos and any GUI app.
x48ng https://github.com/gwenhael-le-moine/x48ng for my hp calculator emulation
daemonpenguin@reddit
nmtui It is a console tool for managing network connections. Makes setting up wireless networks super easy when you don't have a desktop tool to do it.
IanCrapReport@reddit
This has been a lifesaver since I found it.
Alternative-Ad-8606@reddit
My only gripe with nmtui is that there's no vim motions :( other than that that's what I use to trouble shoot wifi issues
Zatrit@reddit
neovim, ncdu
doc_willis@reddit
the /r/commandline sub often has some posts on cool 'tui' programs.
mc(midnight commander) Has been my go to TUI file manager for like decades now? :)dcherryholmes@reddit
There was a version of that in the Big Book of Basic Games. I remember typing that in on my grandfather's Commodore PET and playing it. Thanks for the memory!
doc_willis@reddit
the Google actually found it . ;)
https://en.m.wikipedia.org/wiki/Star_Trek_(1971_video_game)
jinekLESNIK@reddit
Far2l
Leonardo_Davinci78@reddit
https://github.com/lennart1978/servicemaster is my favorite TUI app. Looks great with several color schemes. ;-)
SpaceCadet2000@reddit
Main ones I use regularly: btop, htop and ncdu
Not sure if tmux or vim count as TUI.
dywedir@reddit
broot: fuzzy search + tree + cd
navi: interactive cheatsheet tool for the command-line
zellij: terminal multiplexer
btop: monitor of resources
nvtop: task monitor for GPUs
bandwhich: for displaying current network utilization
wavemon: wireless network devices monitoring
tminhdn@reddit
Yazi, btop, neovim, duf, diskonaut, impala, bluetui, pacseek, fzf, ani-cli
giorgiga@reddit
The one I use the most is definitely
bat(well, excluding the basic stuff likelsand similar that come preinstalled in any distro).RQuarx@reddit
cd
Hobscob@reddit
Not really interactive, but I like duf as a prettier df.
I have this line in
.bash_aliasiesto show disk info when opening a terminal.klu9@reddit
Diskonaut, displays "graphically" what's using your disk space and allows you to navigate it etc.
CrazyKilla15@reddit
I quite like bottom and use it exclusively as my process/system monitor.
for advanced GPU monitoring, I like amdgpu_top, which has two TUI options, as well as a GUI.
DoubleDotStudios@reddit
Yazi, LazyGit, BTOP, Neovim
BlendingSentinel@reddit
htop Good for when I need to handle a malfunction task on a server or something on desktop that isn't front facing therefore the system monitor doesn't pick up.
Shilionz@reddit
try btop, it's awesome
Misicks0349@reddit
fzf,zoxide,fishandatuinkudlitan@reddit
midnight commander as my file manager and tilde as my text editor.
T8ert0t@reddit
Wordgrinder
Newsbeuter
DriNeo@reddit
The installer of the (now defunct) Archlabs distro was easy without the need of a DE. Maybe this TUI app is used elsewhere. Htop also is nice and relatively easy to use.
qudat@reddit
This isn’t exclusively a tui but more about services built on top of ssh: https://pico.sh
All of the services are managed via remote cli commands and their TUI. It has been great for prototyping web apps.
biffbobfred@reddit
ncdu is probably my most useful.
k9s though I don’t do much k8s anymore
HenningBerge@reddit
nmtui
ragsofx@reddit
BitchX! Just kidding, irssi is what I use.
Mzivic@reddit
For a browser:
- lynx - real TUI browser
- brow.sh - runs firefox in background and shows graphics in terminal
serezhascream@reddit
Lazygit
hazyPixels@reddit
bash
Alienaffe2@reddit
Probably doom-ascii. A version of doom that can run in the terminal. Not very useful, but kinda fun.
xrothgarx@reddit
I’ve been maintaining a list of TUIs. The community sends PRs regularly and teaches me about new ones 👍
https://github.com/rothgar/awesome-tuis
CoffeeTrashed@reddit (OP)
This is great, between this and terminaltrove.com I think I'm just about set for life haha, thanks a ton!
Jhuyt@reddit
Does Neovim count or are text editors excluded?
CoffeeTrashed@reddit (OP)
I'll take text editors! Anything that keeps me in the terminal I'm interested