What is your most useful Linux app which others might not know about (please don't just give the name but a link and why it is good for you) ?
Why software do you use in your day-to-day computing which might not be well-known?
For me, there are two three things for personal information management:
for shopping receipts, notes and such, I write them down using vim on a small Gemini PDA with a keyboard. I transfer them via scp to a Raspberry Pi home server on from there to my main PC. Because it runs on Sailfish OS, it also runs calendar (via CalDav) and mail nicely - and without any FAANG server.
for things like manuals and stuff that is needed every few months ("what was just the number of our gas meter?" "what is the process to clean the dishwasher?") , I have a Gollum Wiki which I have running on my Laptop and the home Raspi server. This is a very simple web wiki which supports several markup languages (like Markdown, MediaWiki, reStructuredText, and Creole), and stores them via git. For me, it is perfect to organize personal information around the home.
for work, I use Zim wiki. It is very nice for collecting and organizing snippets of information.
oh, and I love Inkscape(a powerful vector drawing program), Xournal (a program you can write with a tablet on and annotate PDFs), and Shotwell (a simple photo manager). The great thing about Shotwell is that it supports nicely to filter your photos by quality - and doing that again and again with a critical eye makes you a better photographer.
I've used it a lot just to control audio or video playing on my computer from my phone. (Sometimes when I'm sat at my computer with multiple windows and workspaces open, I even find it easier just to hit my phone's lockscreen to pause the music.)
I'm starting to use some of its other features, too. E.g. copying & pasting and sharing files between phone and computer.
FreeTube, a desktop client to watch YouTube videos, without an account. Why not use a browser without an account? Well, it has a watch history, favorites and subscriptions as if you had an account - but its all "offline" account, without Google involved (besides watching their video). So it manages an account with subscriptions, without YouTube account. Plus it integrates an ad blocker and SponsorBlock, and has a few more features on its sleeve.
kdotool, a xdotool like program for KDE on Wayland. Just learned about it when setting up another application. But I will use it for independently too.
There are more, but this is what came to my mind right now.
xpipe – I use it to SSH into any of my servers, cluster nodes or directly into docker containers without having to remember hostnames, IPs, users. It can also bring your useful scripts to said ssh session without "installing" them on the target device, which is great because you don't have to set it up for every new server. Also the dev is a really nice guy.
Portmaster + SPN – I use it to route each app through different VPN paths with multihop support and per app firewall rules. (e.g. one app via Denmark, another via a random country, third app no VPN, fourth app gets no internet at all etc.) It really gives you full control over the traffic. afaik there is no other all in one app like this.
wdfs - It's an old project that is patched by this random github user. It's the only way I found to mount a webDAV storage cleanly into a directory from a bash script without fucking with my fstab or being root or giving specific privileges to my user. I mount it from a bash script because that way I can use KDE wallet to store the credentials instead of having a plain text file somewhere on my fs, the script waits until the wallet is unlocked, then reads the credentials from it and mounts the webDAV to a path in my home. That is more accessible to apps and other scripts (e.g. recent files) instead of doing it via Dolphin, which generates a random string in the path every time when opening network storage.
GNU parallel, to run commands on all cores, and for its filename pattern substitution.
For example: ls *.flac | parallel ffmpeg -i {} {.}.mp3 encodes a directory of FLAC files to MP3. parallel -a <(ls *.flac) -a <(ls *.mp3) --xapply copytags {1} {2} then copies each FLAC file's metadata to the corresponding MP3 file (which ffmpeg already does, just to illustrate the --xapply option).
Qalculate!, the calculator I use every time I need to do a calculation, especially if it involves units or currency conversion. Does everything I've ever needed out of an everyday calculator (even symbolic calculation and exact results), while keeping the usual simple calculator interface.
Pinta is the main one that comes to mind. I don't use it every day, far from it, and that's a part of why I love it. On the rare occasion that I have to do some image editing, I load up Gimp and then proceed to fight against it for at least a whole day to make it do the simplest of things before finally ragequitting. Then I load up Pinta and actually get the task done in either minutes or hours at most.
It's like old school MS Paint, but better. Simple, intuitive, no huge learning curve, just enough features to get my nonprofessional tasks done. It should be a distro default.
GNU Stow, definitely. I can't stress enough how wonderful this app has been for my sanity. I use it to manage my dotfiles and personal data.
I made one dotfiles folder, which contains home, etc and usr subfolders. I put all my configs in it (dotfiles, themes, custom keyboard layouts, etc) in the relevant subfolders, then with Stow I symlink dotfiles/home to /home/username, dotfiles/etc to /etc and dotfiles/usr to /usr, and poof symlinks are created for everything in it. That way all my configs are in one folder, I can sync it to my NAS easily, make it a git repo for version control, and even upload it to github. It's amazing 🥰 I also made a personal folder which contains Documents, Pictures, Videos, etc, all symlinked to /home/username/Documents and such, so I only have one folder to back up for my personal data. Yes I'm very lazy and hate doing backups 😅
Rofi (or here for the X11 version) : It's the best app launcher by miles, even if I used a DE I'd still use rofi. But I also use it for a lot of other stuff that it's much less well known for: the run mode for launching scripts and other executables, the ssh mode for ssh, rofi-calc for a very light and fast calculator that understand natural language, rofi-games as a games launcher, rofi-emoji as emoji selector... Rofi is life, rofi is love, rofi is God.
Libation to liberate audiobooks from Audible. There's tons of apps to download and un-DRM your files from various platforms, but most only work on Windows. This one does work on linux 🥳
Lots of self-hosted apps for my media server, but they are all pretty well known (Jellyfin, Audiobookshelf, Komga) except maybe Suwayomi Server for manga (it can sync progress to AniList, and there are plugins to enable downloading from online manga reading sites)
ani-cli for watching anime because I'm a crazy person who grew up with MS-DOS and TUI apps make me happy. Also it's often more convenient than having to check ten different websites to find the one anime you want to watch only to discover that half of them have been taken down.
yt-dlp to download videos from YouTube. I use wrapper scripts to make it more convenient to use because I'm lazy, but it's great.
Herbstluftwm, the window manager. I used i3 for a decade, then bspwm for a few months, then landed on hlwm which I've been happily using for over a year. I don't foresee changing until I'm forced to switch to Wayland. I've used almost every window manager and DE available for Linux and Solaris. Hlwm has things I can no longer live without:
It's entirely configuration-file-less, which means the CLI client is the first class citizen for C&C.
It's tiled and keyboard controllable is, again, a first-class citizen
It has a sane tree model, with no weird exceptions
It's stable
It's fast and small. You never see it in top, sorting either by CPU or memory
Zsh, the shell, in which I run 90% of my applications (the regular exceptions being the Luakit browser and Factorio, the game. everything else is CLI or a TUI). Zsh is bash backwards compatible, and it has a bunch of extra convenience syntax that makes scripting more powerful, pushing out the border where switching to a real programming language is necessary. I have lived in sh, bash, and csh over my life, and I've tried fish and a number of others; the rich data model for process communication is compelling, but I've always discovered it lacking, so on zsh I remain.
Tmux, the terminal multiplexer, which is (almost) invariably the first child of every terminal (rio -e 'tmux attach -t#'). Because terminals crash, because it survives session restarts, because it lets me log in remotely and continue what I started in my desktop, and because it works over ssh and having a consistent multiplexer environment across machines is nice. I used sceen for years before discovering tmux, and have tried almost every other terminal multiplexer; and none add any significant value for me over tmux.
Helix, the editor in which I spend most of my time. Because I started with emacs and used it for years before switching to vim. Then I used vim for decades before switching to Kakoune. Then I used Kakoune for about 2 years before switching to helix. Kakoune was too much like Emacs for my taste: heavy on chording, light on modality. Helix is much more like vim: lighter on chording, more mode-driven. Chording aggravates my carpel tunnel, and I'm more comfortable in modal editors. I switched from vim because the plugins necessary to be a competent development environment got insane, and my vim was starting to take as long to start up as emacs, which was unacceptable. Also, LSP integration was super flaky and broke every six months; it's what initially drove me to Kakoune.
I'm currently using Rio as my terminal. It has bugs, but it's actively developed and regularly releases will fix one more thing. It has both ligature and sixel support, and it's wildly fast and far, far less memory intensive than either kitty or ghostty, which are both pretty fat. I am not including it in "the list" because some remaining bugs are pretty big, like randomly crashing when it gets resized or sees some sequence of asci escape codes. It's not much of an issue because I run everything in tmux, and it crashes less with every release, but I hesitate to recommend it until it's more stable.
ffmpeg - www.deb-multimedia.org . I edit podcast videos for distribution to subscribers. High-quality video produces very large files but if they're only going to be watched on laptops, tablets, and phones, I can throw away a lot of bits without noticeably affecting quality on a phone screen.
And nothing does that better or faster than ffmpeg.
gnome-network-displays let's you cast your screen to a wireless display (Miracast) or to a Chromecast device.
It works with KDE no problem and even under Wayland.
It creates a virtual display that can be organized like any other display: unify with another screen or extend the desktop using your DE's default method/UI. And then it uses standard screen sharing conventions to send content to that virtual display.
I don't know what kind of dark arts the developer(s) employed to make this possible, but the end result is simple wireless display in Linux that just works! A MUST for using Linux in a business setting.
KDE's Dolphin + Konsole's integration to Dolphin is great for seamlessly managing files with an UI and terminal hybrid.
Though closed source (overly dramatic music plays), the text editor Sublime Text works great, and at least with major version 3 (last I checked it was in version 4), it can be converted to AppImage without major issues (at worst, paths with spaces have issues).
Firejail is great for starting specific programs offline.
Newsboat is the best RSS feed reader I could find for Linux, specifically due to, with its inbuilt macros, I can set it up to open in new tabs several posts from a comically large amount of feeds.
Boxbuddy makes it incredibly easy to use distrobox, a great way to install software that might not be available for your distro, but is available on another distro, or just a way to keep a piece of software in a stable state (like DaVinci Resolve with davincibox).
If you use a "gaming distro", I'm sure you've seen Input Remapper. It's a neat utility that can create macros for all your peripherals or rebind keys as you like. Want to bind you controller so it works like a mouse? Possible. Want to macro key pressed by using the forward button on your mouse? Possible.
Did you leave Foobar2000 behind when you switched to Linux? Why not give Fooyin a try. It's a relatively new audio player with aspirations of becoming just as configurable as FB2K. For me replaygain is quite important, and while some other FOSS audio players support it, not many has replaygain generation. And Fooyin does. While also being just as easy to set up and use as Foobar. Worth a look.
You’ve heard of it for sure, but shout out to Audacity. I used Cool Edit Pro for years before having to switch to Adobe Audition. The UI in Audacity feels surprisingly familiar and it does what I need it to do.
It's like apt for installing directly from Github releases. A plug, sure, but I still use it regularly for things like FreeCAD, Cura, OrcaSlicer, and so on.
Espanso Text Expander. Its not Linux specific but its got so many uses. You can even use it with bash scripts to have essentially alises/text shortcuts for short or massive amounts of text. I use it for so many code snippets and template texts in Neovim and other applications that involve typing.
Steam added an excellent screen capture feature to their overlay, but I like being able to capture my screen anytime, not just when playing games with the steam overlay.
gpu-screen-recorder is the perfect tool for this, you set up a command to run at startup and the software records the last X minutes in the background, with barely any hardware utilization. Add a hotkey for another command that saves the recorded clip to a file, and boom, simple and efficient replay recorder. I'm honestly surprised this app wasn't mentioned yet.
digiKam was the first Linux application I encountered that was so polished and useful for what it does that I tried to shoe-horn it into any and every DE I experimented with, as well as installing it onto my windows machines under KDE4Win.
I reconfigure ALT + i/j/k/l to ↑←↓→ globally, and more similar shortcuts.
It expands abbreviations of one's choice like "gCo" to git commit -m '
One can assign scripts to abbreviations and hotkeys. E.g., when I press CTRL + Shift + [ it surrounds the selected text with a tag:
text_selected = clipboard.get_selection()
text_input = dialog.input_dialog(title="Wrap with a tag.", message="E.g., type cite to get <cite>x</cite>.", default="")
keyboard.send_key("<delete>")
clipboard.fill_clipboard(f"<{text_input[1]}>{text_selected}</{text_input[1]}>")
keyboard.send_keys("<ctrl>+v")
I'm likely not even harnessing AutoKey's full capabilities and it's already absolutely indispensable for being a huge time-saver and annoyance reducer.
I used to edit family videos in Kdenlive without a problem — it handled footage from all our devices without complaining. But then I switched to DaVinci Resolve, and suddenly nothing worked right. My Sony Alpha 7C, my Galaxy S24, and my wife's iPhone all produced files that Resolve couldn’t handle without transcoding.
😤 Too Much Fuss, Too Many Steps
Every time I wanted to edit, I had to hunt down the right ffmpeg settings and manually run them on each video — a frustrating and repetitive task.
My typical workflow is simple: I create one folder per event on an external HDD and drop in videos from all our cameras. A script renames the files based on the date and time so I can easily sort them. But for Resolve, everything has to be transcoded to DNxHD — which only supports resolutions like 1920×1080 and 1280×720.
🔄 Vertical Videos? Extra Pain
That also meant vertical videos couldn’t work. So now, I rotate them during transcoding to preserve resolution and rotate them back in Resolve during editing.
✨ Enter Recoder
I built Recoder to automate this annoying step — so I could spend more time editing memories and less time fiddling with command-line tools.
Great topic. I'm going to have to investigate some of these suggestions later.
Since my first pick, helix, was already mentioned here and i commented on it, I'll add gitui. Git can be very overwhelming for me. Gitui arranges frequently used git commands in a sensible, visual layout and makes it easy for me to understand and interact with git.
I like game emulation and to manage my ROM library, I use Geode-GEM. It is simple but cusomizable app to manage your ROM based on console and emulator you have.
I don't know if it has been already mentioned but I love bat a lot. It's like the cat command but with colors and line numbers. Makes things a little bit easier.
UpNote. I use it like a combination of the gollum wiki described by OP, but I just put everything in there. I have watch and reading lists for things I want to check out, writing projects, notes for TTRPG games, I keep extensive notes on healthcare-related stuff, and so on. I like UpNote because it's lightweight, has windows, linux, and android apps, and because it has a one-time $25 lifetime membership that does free syncing forever instead of a monthly subscription like most other things seem to. I've tried OneNote, Evernote, Obsidian, Joplin, AnyType, and a bunch of others and didn't like them for various reasons, but UpNote is both pretty small and also has a pretty full-featured editor that can do rich text, all kinds of formatting, media files, etc.
The only thing I've run into that UpNote wasn't ideal for is I started writing a novel a couple months ago and managing the structure and notes and all that got a little unwieldy so I picked up Scrivener. Still wish they had an updated linux client or there was some good, complete, feature-rich linux-native equivalent, but it runs pretty good under wine, so.
For me it's Perl's rename, which of course cones in a variety of package names depending on the distro you use. In trying to find a link, I landed on this stack exchange answer that gives a great overview of how the tool works and the different packages available on different distros.
I have to bulk rename files every day, and using regex and the other features of Perl's rename makes it so much easier to do.
Sorry to thread jack. One little app I miss from Windows is a simple screengrab annotator? Wondering if people have anything to recommend.
Eg to circle some on screen text, add an arrow and maybe add some of my own text.
I cant get my Loigtech KB to screen grab, so I just use the Screengrab app in Mint, which is fine but zero annotation abilities.
I have tried Flameshot but it is a shitshow and doesn't work properly and is unstable (for me) and doesn't allow me to put it in the clipboard and paste in say Signal.
I would say Rymdport (https://github.com/Jacalz/rymdport). It's a GUI for the magic-wormhole tool (another recommendation in itself). It let's you easily and safely transfer files to another computer.
It's software for budgeting. You can run it entirely local, or set it up as a server. It stores everything in an SQLite dB, let's you import and export CSV files, and it gives you great options for querying and seeing reports on your financial records.
I've got a handful of accounts, so I set up a small python utility to parse the CSVs my banks give me to something actually sensible and readable for Actual. I do that once a month, add a reconciliation entry here and there, and it's all kept on sync very well.
I have one morbid report titled "money pissed down the landlord drain", and it's far higher than I'd like to be. But it's got close to every penny I've ever spent on that bullshit in one place.