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.

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
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 😔
Oh, yeah. I installed fastfetch, not sure which one is better/newer.
There’s also zigfetch, but that doesn’t have a Nix logo :/

Just FYI , neofetch is dead/archived, though it still works afaik.

Here’s an article on it

Neofetch is Dead! Here are 7 Alternatives for Your Linux System

Neofetch is no more but fret not ASCII lovers, in the open source world, there is almost always alternatives.

It's FOSS
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.
Cockpit Project

Cockpit Project
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.
news.opensuse.org/…/new-launcher-aims-to-simplify…

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 localhost:9090 (with a certificate warning)

New Launcher Aims to Simplify Cockpit Installations

Members of the openSUSE community are tackling the complex undertaking of transitioning from YaST by developing a streamlined system management interface. Af...

openSUSE News

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 -Fxz to 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

Some recommendations:

  • baobab -> QDirStat
  • qalculate -> speedcrunch
  • ncdu -> 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.

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.

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
That’s what I’ve been using for aaages. It’s perfect, frankly. I highly suggest it.
Thanks, I will check 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.

Corner

Do you mean this ?

GitHub - bantamhq/corner: Terminal-based task journal for developers. Capture ideas without leaving your workflow, find them when you need them.

Terminal-based task journal for developers. Capture ideas without leaving your workflow, find them when you need them. - bantamhq/corner

GitHub
Yes, that’s the one.
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.
fish shell

A smart and user-friendly command line shell

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?
Just prepend the command with “bash”. If the script changes environment variables and you need that to happen in your fish environment there is github.com/edc/bass
GitHub - edc/bass: Make Bash utilities usable in Fish shell

Make Bash utilities usable in Fish shell. Contribute to edc/bass development by creating an account on GitHub.

GitHub
Thanks. So I guess if Bash is my default shell then fish <command> also works by analogy.

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.

Don’t change your login shell, use a modern terminal emulator

chsh is a small tool that lets you change the default shell for your current user. In order to let any user change their own shell, which is set in /etc/passwd, it needs privileges and is generally setuid root. I am of the opinion that setuid/setgid binaries are a UNIX legacy that should be deprecated. I will explain the security reasons behind that statement in a future post. In this “UNIX legacy” series of posts, I am looking at classic setuid binaries and try to find better, safer alternatives for common use cases. In this post, we will look at alternatives to changing your login shell.

Siosm's blog

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.

fish

“Watch out, Netscape Navigator 4.0!”

I’m sold.

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:

unix.stackexchange.com/…/preserve-bash-history-in…

Add the following to your ~/.bashrc:

# When the shell exits, append to the history file instead of overwriting it shopt -s histappend
Preserve bash history in multiple terminal windows

I consistently have more than one terminal open. Anywhere from two to ten, doing various bits and bobs. Now let's say I restart and open up another set of terminals. Some remember certain things, s...

Unix & Linux Stack Exchange

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 😉.

GitHub - mrzool/bash-sensible: An attempt at saner Bash defaults

An attempt at saner Bash defaults. Contribute to mrzool/bash-sensible development by creating an account on GitHub.

GitHub

I’ll list a few of my regularly-used tools, both CLI and GUI.

CLI:

  • ncdu: An interactive TUI variant of du, 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 tool podman-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.
Docker: Accelerated Container Application Development

Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.

Docker

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?

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.

I use it also.

I syncthing the database between phone, tablet, desktop, laptop, and home server.

Has worked beautifully for years now. Seamless.

fzf

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.

Find anything you need with fzf, the Linux fuzzy finder tool

One of the aspects of the open source community that excites me the most is having the opportunity to interact with people from different backgrounds, learn,...

Some applications I’ve not seen yet:

Terminal

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 usage
  • zstd - 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/folder
  • gdu <optional location> - like ncdu, but faster (written in go) - think TreeSize/WinDirStat for the terminal
  • stat <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 a Justfile in a project so I can run just to see the commands, or run just test, just clean, just … to run project-specific commands.
  • msedit - ye olde edit.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 compression
  • pngquant - 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, unlike oxipng.
  • upx - compress binary files
  • visidata - analyses csv files, and shows some stats. Like Data Wrangler for the terminal
  • oxfmt - 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. mlocate package, with the sudo updatedb and locate commands, if you prefer the terminal
  • keepassxc - password manager
  • speedcrunch - best GUI calculator, IMO. Just a bar for input, and a bunch of stored results above it. Use the ans variable to use the previous answer in the current calculation, like ans*2 to multiply the previous answer. Or use variables, like x=5, y=2, x+y: 7.
gzip, bzip2, xz, zstd, 7z, brotli or lz4?

Not long ago, I found myself pondering over the choice of a compression tool for backups in Infinite Ez, our self-hosted container platform that transforms a single server into a fully-fledged PaaS. Ordinarily, gzip would be the obvious choice, but I began to question whether…

ntorga's - security-driven software engineering

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.

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.

  • 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.

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

[email protected] is basically this for terminal programs like btop.