Tmux!
May I request for the people that answer, don't just answer with the name of the program, tell us what it does, why you like it, bonus points if you post a link to where to get it as well.
I'm a relatively new Linux user and I've been going through threads that ask the same sort of question and 90% of the answers are just "[app name]" and nothing else. I know I could just search it for myself, but be kind and write a few words extra.
Disclaimer: I tried searching for something like “useful programs”, “useful packages”, “useful tools”, “recommended packages”, etc. Don’t see any posts like that, if this is a duplicate, then it’s not intentional and my search skills have failed me.
btop
!commandline@programming.dev is basically this for terminal programs like btop.
Here are some useful programs I use:
console utilities/programs:
-
zoxide: memorizes which directories you cd into, so you can later type shorthands for them
-
procs: modern replacement for the ps command. basically lists your processes
-
neofetch/fastfetch: displays your system info in a fancy way. 99% Linux users use that
-
inxi: displays detailed system info but in a less fancy way. people usually attach the output of
inxi -Fxzto a forum post where they need help troubleshooting -
asciinema: cool program that records your terminal sessions as text files
-
agg: converts asciinema recordings to gif
-
yt-dlp: insanely powerful youtube downloader (remember to only download things you are permitted to!)
-
sl: ragebait when you misspell ls
-
yazi: fancy file manager with image previews! minimal or no configuration required
-
cava: audio visualizer. when you press f it cycles colors!
-
htop/btop: you already mentioned. task managers basically
-
ncdu: interactively shows disk usage per file
GUI apps:
-
qalculate: very powerful calculator (has both qt and gtk frontends)
-
gparted: probably the best gui disk management tool so far
-
localsend: send files locally over wifi direct
-
blueman: gui bluetooth manager
-
freetube: awesome youtube client (NOTE: against youtube terms of use!)
-
baobab: gui disk usage analyzer
-
cheese: photo taking app with funny effects
Great list! And just to add a bit:
yt-dlp is indeed insanely powerful, and works for way more than just YouTube, for both audio(music) and video. Supported sites
LocalSend is supported on all platforms, and is perfect for situations where you traditionally use a USB to move files.
Some recommendations:
baobab->QDirStatqalculate->speedcrunchncdu->gdu("I am you, but faster")
I prefer lsd to ls or eza/exa (RIP exa).
thanks for suggestions. but a couple of controversial things:
- lsd is written in Rust, which I personally have no problem with but there are people that do
- eza and lsd development appear to have been assisted by AI, which I don't really know a lot about but generally dislike
i have no problems with qdirstat or gdu, so i'll give them a try. i'll maybe try speedcrunch as well
lsd is written in Rust, which I personally have no problem with but there are people that do
Huh? Do you mean to say it's non-GPL? Some people have been going around rewriting GPL C/C++ utilities in Rust, but publishing them under non-GPL licenses, and that has been controversial. I don't think I've seen people having a problem with Rust specifically.
baobab: gui disk usage analyzer
taking some advantage from this thread, does any of you know a tool like baobab, but for android?
there's DiskUsage on F-Droid
Thanks, I will check it
That's what I've been using for aaages. It's perfect, frankly. I highly suggest it.
- I use ferdium to concentrate all my communication accounts into a single place and not get lost
- Syncthing is really nice to keep my files readily available between devices
- Zotero is amazing if you do academic research. I can't imagine making references without it
- distrobox allows me to run things that aren't available or that would conflict with my distro's repos
- frog saves me a lot when I have to copy text from an image. It's a simple and easy to use ocr tool that can quickly get text from screenshots or image files
- personaldnsfilter allows me to block ads on the phone, system-wide
- changedetection.io checks a few sites for me automatically
- Well caibrated guesslron and openoise are handy measuring tools
- Just knew about paperknife recently, and it has been useful to process pdfs on the phone
- Plainapp is really useful to share files from the phone with other devices
Those are the ones that came to my mind
Seconded on ferdium, it's nice to have all my emails and messages in one place. That said, it can def be a bit of a memory hog.
I'll list a few of my regularly-used tools, both CLI and GUI.
CLI:
ncdu: An interactive TUI variant ofdu, for tracing disk usage across targeted directories.podman: An alternative runtime to Docker that is arguably just better at this point. Can handle rootless containers with ease, works with SELinux, can handle Docker compose files with add-on toolpodman-compose, can automatically update containers intelligently, can integrate well with SystemD, and more.mtr: Another network tool. Effectively traces network routes to a given IP. Great for diagnosing faults in latency or major packet loss.ffmpeg: A very complicated, but powerful tool for converting, manipulating video and audio files in all sorts of ways. FFMpeg can essentially be the answer to any 'do X to Y file' question.
GUI:
- Kdenlive: A powerful video editor developed by KDE. For free and open source, it is impressive how little you can't do when editing videos with this tool. A bit buggy at times, but has gotten significantly more reliable over years.
- Handbrake: A FFMpeg frontend that allows for mass transcodes of video files based on created profiles. Great for archiving, finalizing videos down for web upload, or just converting content to a more efficient format. Specializes in lossy/destructive operations.
- LosslessCut: A FFMpeg frontend that allows for trimming videos, stripping and/or exporting tracks from videos, editing mkv metadata, editing video chapters, and any other lossless/non-destructive operations that can be done on video files.
- Subtitle Composer: An outright semi-professional-grade subtitle editor developed by KDE. Supports and can convert between pretty much any subtitle format you might encounter. Great for creating, editing, timing, and translating subtitles for videos.
- KeepassXC: My password manager of choice. Has browser autofill integration, though requires some holepunch work to function with Flatpak browsers. Explicitly is based on local files. Does not rely on cloud providers.
- Limo, R2Modman: Native mod-managers that allow for modding various Steam games (native and Proton) on Linux.
- Blender: A powerful 3D editor. Capable of hard and soft 3D modeling, character rigging, animation, material creation and UV mapping, compositing and rendering. Pretty much an all-in-one tool for 3D art and design.
- FreeCAD: A somewhat daunting, but functional 3D CAD software. Has received a lot of recent (~3 years) patches to improve on a lot of long-standing pain points in the software.
KeepassXC: My password manager of choice. Has browser autofill integration, though requires some holepunch work to function with Flatpak browsers. Explicitly is based on local files. Does not rely on cloud providers.
I use Proton Pass and Bitwarden. How do you backup your KeePass database? Do you sync it with mobile?
I use it also.
I syncthing the database between phone, tablet, desktop, laptop, and home server.
Has worked beautifully for years now. Seamless.
It's probably not a case for everyone due to the obvious limitations, but I primarily use KeepassXC from my main workstation. I have backup scripts that periodically run for my user on said workstation that capture my Keepass database among other user files and backup to external storage, cloud storage as dictated.
For my laptops, mobile devices; I periodically push the database from either the main workstation or pull from a backup to these devices. I do not write new entries from these devices in order to avoid having to handle writeback to the main instance of my Keepass db. This can be done, but inherently starts to hinge on needing network access all the time to ensure an up-to-date copy of the DB is present as well as being explicitly a single-user db to prevent a syncing protocol from accidentally writing over new entries from any given device. Obviously, if network sync and the potential for multi-user is important to you, continue using Bitwarden. It is a perfectly fine solution.
Thanks. Yeah, I do add or edit the entries on all my devices and I need them to sync fast. :) I used KeePass many, many years ago but at the time I only used it on my PC. That might have been before smartphone era, so my needs were different.
- Zoxide: it's
cdwith superpowers and memory - Ripgrep: it's faster
grepwith superpowers - Atuin: global, fast, searchable terminal history
fish - Ever since I've made the switch to Linux, the terminal has been part of the experience. And, honestly, I wouldn't want it any other way. Besides its efficiency, I also very much enjoy how it automatically keeps track of everything I do within. I don't get that functionality whenever I do something within a GUI. But bash left a lot to be desired in that regard; its history simply didn't record everything. It was also pretty bare-bones; no syntax highlighting, no auto suggestions etc. Thus, after trying to bend bash (and later zsh) to my will and ultimately being dissatisfied with the janky mess I was left with, I finally gave in to at least give fish a honest try. The rest is history. Heck, fish is the very first thing I install on a machine.
But bash left a lot to be desired in that regard; its history simply didn’t record everything.
Bash doesn't merge history from multiple bash instances into your ~/.bash_history by default. If you want that to persist:
https://unix.stackexchange.com/questions/1288/preserve-bash-history-in-multiple-terminal-windows
Add the following to your ~/.bashrc:
# When the shell exits, append to the history file instead of overwriting it shopt -s histappend
Thank you for that! IIRC, it was one of the settings I took from bash-sensible. I can say that it definitely improved after just a couple of changes to ~/.bashrc. Add in ble.sh and it suddenly seemed somewhat modern instead of archaic.
Unfortunately, I don't remember exactly what broke the camel's back. However, FWIW, contrary to how I recall my experiences with bash and zsh, I don't feel any frustration while using using fish. So it's definitely doing something for me 😉.
fish
"Watch out, Netscape Navigator 4.0!"
I'm sold.
yeah Fish along with DOOM Emacs are the first two things I install on my machine.
I used to use zsh with oh my zsh and various plugins and it would totally slow down my nixos system so then I decided to give fish a try and surprise surprise it had all the stuff I had to add on to zsh already baked in.
easily the best shell out there.
I saw fish recommended for new users in openSUSE's documentation. I want to try that. There is a way to switch to Bash for a particular script, right? I know that file-based scripts have the shebang line, so that's a non-issue, but what if I have a Bash command I copied from the Internet and my default shell is fish?
As I suppose the other user already went over your main query, I'll instead focus on what might have felt rather innocuous.
my default shell is fish
I subscribe to the school of thought that one should not change their default shell^[I suppose it could be fine~ish as long as it's POSIX compliant AND compatible with bash. Which, unfortunately, fish happens to be neither of the two.] through invoking chsh (or whatever other method that applies changes to /etc/passwd). This article does an excellent job at laying down the reasoning (and the recommended alternative). FWIW, the alternative's day-to-day experience provides all of the pros without any of the cons.
Just prepend the command with "bash". If the script changes environment variables and you need that to happen in your fish environment there is https://github.com/edc/bass
Thanks. So I guess if Bash is my default shell then fish <command> also works by analogy.
IDE:
DOOM Emacs. It's my IDE, my email client, sometimes my terminal, my calendar, my regular word editor, it's just everything I need.
NVChad. It's Neovim but with all the smart plugins as default. I prefer it over lazyvim as it just has everything I need good to go.
CLI/TUIs:
If you like watching anime than Ani-CLI is the best thing out there. has everything and you can watch whatever you want in the terminal.
Bat. It's like Cat but better.
lazygit. really great git interface that makes things easy.
cmus. easiliy the best TUI music player
yazi. my go to file manager. has everything I need, easy to theme and customize.
osxiv. straight forward image viewer
Browser:
Qutebrowser. I like using vim navigation for everything so Qutebrowser is my browser of choice. very easy to customize and configure with custom scripts. works fantastic with various password managers.
DOOM Emacs
NVChad
You might be the first person I've found on Lemmy that actively uses both DOOM Emacs and a Neovim distribution. Could you perhaps do a deeper dive on your work flow? Thanks in advance!
Sure. I use NVChad for web development/simple HTML since it's preconfigured perfectly for that stuff right out of the box. for example hex color codes it shows a visual representation of the colour which is awesome when using tailwind or just regular css. It's simple to set up right away so I can easily install it quickly on any machine and be good to go.
DOOM Emacs I use for larger projects/builds, compiling stuff, working with configurations (I primarily use NixOS) as I find it works better with that stuff. having a built in terminal is also very nice as well as a built in email client and the built in file manager makes managing projects much easier combined with the added built in git. Also with DOOM Emacs if I create a new file for something it will have stuff preconfigured, kinda like a bootstrap, for various things.
Thank you so much for the elaborate answer! Have a good one!
For audio work, I use 4 programs: LMMS, yt-dlp, demucs, and audacity
My workflow usually goes yt-dlp to download audio/samples, then either audacity and demucs. Audacity I use for splicing the clips I need, and if its necessary, I use demucs to split stems either on the full song before splicing clips with audacity or splitting stems after getting the clips I want. I then use LMMS to sample and layer drums and other samples usually.
Some applications I've not seen yet:
Terminal
https://ntorga.com/gzip-bzip2-xz-zstd-7z-brotli-or-lz4/
lz4- fastest compression/decompression (several GB/s); compression is good, but not amazing; very little CPU usagezstd- very fast compression, fast decompression (few GB/s compression; ~600MB/s for decompression; better or equal compression compared to zip, depending on level)cloc <folder>- gets lines of code for a project/foldergdu <optional location>- likencdu, but faster (written in go) - think TreeSize/WinDirStat for the terminalstat <file>- built-in application to show the modified, created, etc stats for a file.hyperfine- benchmark for binaries - run this in front of a command to have it run multiple times, and show some statistics.jpegli- great to recompress JPEG files into smaller filesizes, with only very few/minor visual effects.just- used with aJustfilein a project so I can runjustto see the commands, or runjust test,just clean,just ...to run project-specific commands.msedit- ye oldeedit.com, reborn! Feels a little bit cursed to use an MS text editor on the terminal, but it's better for beginners than nano or micro or whatever.oxipng- lossless png compressionpngquant- lossy png compression (it forces the file to use a palette of n colors, which reduces the colors used, so it will affect your files, unlikeoxipng.upx- compress binary filesvisidata- analyses csv files, and shows some stats. Like Data Wrangler for the terminaloxfmt- think "oxidized prettier" (file formatter for programmers)
GUIs
Whatpulse- I've been tracking my keypresses since 2005. not a terminal application, unlike the rest.fsearch- Linux alternative to Everything by Voidtools. It will be a little bit different, but it does the job.mlocatepackage, with thesudo updatedbandlocatecommands, if you prefer the terminalkeepassxc- password managerspeedcrunch- best GUI calculator, IMO. Just a bar for input, and a bunch of stored results above it. Use theansvariable to use the previous answer in the current calculation, likeans*2to multiply the previous answer. Or use variables, likex=5,y=2,x+y:7.
upx - compress binary files
Just to be clear, the parent poster means "binary as in executable binaries", rather than "binary as in non-text".
mlocate
This was replaced by plocate some time back in Debian, which IIRC was generally faster. Some distros used a compatibility package for some time; you may actually have plocate installed yourself.
Fuzzy search the output from any command. The most commonly used for me is the ctrl + r hotkey for fuzzy searching in my bash history. But I have multiple scripts and aliases that utilize it.
https://cockpit-project.org/ is a webui primarily meant for servers but I find it great to get a graphical overview of both services and logs on my workstation too.
I think that's the thing that openSUSE is moving towards? I read that YaST will be deprecated in the future, but currently I think some features are only available in either of those tools. I didn't try Cockpit yet.
Seems like they've made cockpit easier to use on openSUSE.
https://news.opensuse.org/2026/03/18/new-launcher-aims-to-simplify-cockpit-installations/
On Fedora installing and autostarting is as simple as:
sudo dnf install cockpit
sudo systemctl enable --now cockpit.socket
And to allow it through the firewall, if active:
sudo firewall-cmd --add-service=cockpit --permanent
Then it will be available on https://localhost:9090/ (with a certificate warning)
Neofetch is a command line tool that prints your system information in the terminal, it is the standard way to let everyone know you're using arch
Oh, yeah. I installed fastfetch, not sure which one is better/newer.
There's also zigfetch, but that doesn't have a Nix logo :/
Reminded me that I messed that up somehow when I swapped from bash to zsh. Neofetch no longer prints my system info and I forgot about trying to fix it 😔
Here's my list
- K9s, it's a TUI kubernetes dashboard/management tool. Since I work a lot in my terminal, having this kind of tool there just made sense.
- Corner, it's a task manager, and yes, It's TUI as well.
- Yazi, a really amazing file manager, and yes it's of course TUI.
- Absorb, it's an android app that integrates with audiobookshelf, and honestly it is just amazing.
linux4noobs
linux4noobs
Noob Friendly, Expert Enabling
Whether you're a seasoned pro or the noobiest of noobs, you've found the right place for Linux support and information. With a dedication to supporting free and open source software, this community aims to ensure Linux fits your needs and works for you. From troubleshooting to tutorials, practical tips, news and more, all aspects of Linux are warmly welcomed. Join a community of like-minded enthusiasts and professionals driving Linux's ongoing evolution.
Seeking Support?
- Mention your Linux distro and relevant system details.
- Describe what you've tried so far.
- Share your solution even if you found it yourself.
- Do not delete your post. This allows other people to see possible solutions if they have a similar problem.
- Properly format any scripts, code, logs, or error messages.
- Be mindful to omit any sensitive information such as usernames, passwords, IP addresses, etc.
Community Rules
- Keep discussions respectful and amiable. This community is a space where individuals may freely inquire, exchange thoughts, express viewpoints, and extend help without encountering belittlement. We were all a noob at one point. Differing opinions and ideas is a normal part of discourse, but it must remain civil. Offenders will be warned and/or removed.
- Posts must be Linux oriented
- Spam or affiliate links will not be tolerated.