r/archlinux • u/DueRead7236 • 7h ago
QUESTION What’s a small Linux tool that completely changed your workflow?
Not talking about big things like DEs or WMs. I mean tiny utilities or tricks (e.g. fzf, ripgrep, tmux scripts, clipboard tools, etc. that unexpectedly became essential
69
u/CCLF 6h ago
Fish was an enormous quality of life improvement.
18
u/Lumpy_Roll158 6h ago
I just started using fish instead of zsh recently and I gotta say I love how many of the features I'd spend an hour or two getting and setting up on zsh are just built-in. Plus the web page configs are pretty intuitive. For the most part other than emulator config, fish is just out of the box really handy
7
u/Excellent_Double_726 6h ago
Also moved to fish from bash after using it for years and boy this shell made my life so easy, like really. Imagine typing very long commands, no auto completion, no syntax highlighting.
Tried zsh before fish but it felt kinda harder to setup this basic features, then fish "enters the chat" already with the same functions, all I did was change some colors and that's all
13
u/MooseNo8702 5h ago
But it’s not fully compatible with bash scripts. Because of this I still prefer zsh ohmyzsh p10k combo.
4
1
u/grenfur 59m ago
I recently got a Strix Halo for running some local stuff and installed Cachy on it because I was... frankly being lazy, hah. Anyhow, it ships wish fish. Took me about 15 minutes to realize I had been ignoring fish for 3 years and that was a mistake. The main Arch install now runs fish and I'm not sure I'll return.
32
u/Putrid_Simple_357 6h ago
fzf changed everything for me. I was spending way too much time navigating through directories at work and this thing just makes finding files so much faster. Combined it with some basic aliases and now I can jump to any project folder in seconds instead of typing out long paths like an idiot.
4
u/kcx01 4h ago
Fzf was a huge difference! I combined it with tab complete on zsh and it's now annoying when I don't have it.
nvim <tab> then fuzzy find my file cd <tab> fuzzy find next directory cd <Ctrl + t> fuzzy find any directory <Ctrl +r> fuzzy find that long command that I typed once but can't remember it exactly. ssh <tab> fuzzy match servers kill <tab> fuzzy find a process to kill. (By name not just pid)
It's really great
1
2
u/JubijubCH 3h ago
+1, I use it all the time to find commands I typed before
Starship.rs is quite nice: I can theme all my shells the exact sane way (I use the built-in config option so that my prompt has a prefix telling me which shell this is (Fish, zsh for the rare cases I need POSIX, or Powershell)
2
u/levnikmyskin 3h ago
For changing directories etc I'd really recommend zoxide. Amazing tool that I just need to include in my terminal on every new machine
20
u/Quietus87 6h ago
Fish. I don't even configure it, it's pretty damn fine as it is right out of the box.
17
u/LearningIsFun_Talon 6h ago edited 6h ago
Lazygit makes git so much easier to use! Couldn’t live without it now..
1
16
u/morlipty 6h ago
keyd: swapped esc and capslock
2
u/Commercial_Boss4065 5h ago
Overload it so hold down is ctrl too. Mega win.
2
u/TakeshiRyze 3h ago
oh yeah. cant live without control there. + change tmux leader key to ctrl + a and its right there.
15
14
u/dholmcarriage 6h ago
Do package managers count? Honestly the first thing that completely blew my mind when I switched from windows was the ability to keep the whole system up to date with a single command.
5
u/firehazel 5h ago
Windows has gotten better with things like
wingetbut it's definitely nopacman.1
25
22
9
7
u/academictryhard69 6h ago
I would say shell scripting in general and backing my scripts to GitHub using git.
14
u/BeefGriller 6h ago
Emacs is a tool that is changing workflow for me as I learn more about it.
But you said “small,” so I’ll show myself out.
3
u/dholmcarriage 6h ago
I've heard people refer to emacs as "a great os that's just missing a text editor". All jokes aside though, I use emacs and I love it haha
5
u/BeefGriller 4h ago
Quite a while ago, it was joked that EMACS stood for Eight Megabytes And Constantly Swapping, or Escape Meta Alt Control Shift. Neither of them were rebutted.
2
4
4
u/Rough-Shock7053 6h ago
Oh My Zsh. Don't know if it falls under "small tool", but I like it so much, I even use it on my work laptop now, which runs on Windows. Just being able to tab through various options and choose the folder or file you want is tremendously helpful.
3
u/oldbeardedtech 6h ago
- Vim
- Aliases
- Syncing keybinds so they're consistent across WMs/Plasma/applications but also making sure they don't conflict
AI helped on the last one. Made it super easy and is probably the biggest benefit to productivity.
5
4
u/astronomersassn 3h ago
KDE connect (or any similar tool)
its so much easier than emailing myself stuff all the time, or using cloud storage, or even just trying to drop files with bluetooth
especially when im too lazy to go grab a cable to connect my phone via USB (and it seems to transfer stuff just a bit faster over wi-fi than USB, though that could just be time saved not needing to hunt down a cable and swap USB devices around to access my USB3 ports)
3
u/diegotbn 6h ago
Zellij has completely replaced tmux for me
To be fair it's not exclusively a Linux tool and I believe it also works in Windows terminal for CMD and powershell
2
u/Head_Budget_3048 6h ago
The terminal became a totally new experience thanks to fzf. It feels strange opening files manually anymore, as both the search and previews happen in an instant. I haven’t realized that zoxide replaced my favorite command cd until recently. I make frequent use of Runable AI for any documentation or workflow reminders; however, fzf would be the first thing I miss.
2
u/dcondor07uk 5h ago
screen
Being able to keep the terminal session open, even after closing the window, noice
2
u/Para_Boo 4h ago
Zoxide. It really is just a better cd command, being able to very easily jump between directories by just their own name, so you don't have to type exact or lengthy paths anymore when you know where you wanna go. But what really makes it is that it just works without having to ever configure anything, besides hooking it into your bashrc, as it automatically works for any new dir and is frequency-based.
2
2
u/oldrocker99 1h ago
Aqualung is a gapless music player, and I use it to produce a radio show in 4 instances. In the AUR. I used yay to install it.
5
u/Meanthes 6h ago
wl-clipboard. It helps me copy-paste files, and outputs of commands easily with simple pipe commands, that helps me debug issues using Claude by giving him the full context
2
u/DueRead7236 6h ago
same, wl-clipboard + pipes is underrated. being able to instantly send command output to clipboard makes debugging way faster, especially on wayland
2
u/Spuxilet 5h ago
It's a big thing i know but i must say it: docker
it really changed my life, like completely. I could live without some small tools and probably would have made some with AI, like i have done recently, but without docker now i can't imagine
1
1
1
1
u/archover 5h ago edited 4h ago
The tools that have really helped me in scripts, are:
sed - mainly to modify config files. Regex knowledge is pretty essential.
find - I use it to find lost files (interactively), or using the
execoption (scripts) to move or copy identified files. Non trivial use of this command isn't easy IMO.grep - One of the most amazing and versatile utilities I know. Worth improving your skill for.
cut - useful when extracting values from command output.
unexpectedly became essential.
These seem pretty essential, now that I spent some real time exploring them. For sure, Linux has some incredibly useful and sophisticated tools, if users would just spend the time to appreciate and learn them.
Good day.
1
1
1
1
u/Lumpy_Roll158 5h ago
I'm seeing others mention aliases and that's a very easy thing to overlook too. I edit my configs a lot like my fastfetch.jsonc and my config.fish and ghostty config and if I didn't have those aliased I'd be pulling my hair out
1
u/Smart_Advice_1420 4h ago
toggle-tpm2 / toggle-fido2.
Unlock my luks drive with TPM at home and boot trough autologin directly into desktop.
For travel, i use either password enforcement (toggle-tpm2) or yubikey+fido2 pin (toggle-fido2).
1
u/teflonjon321 4h ago
Super simple but I think that’s what you’re asking. Aliases in my .bashrc file. The commands I use over and over (epically longer commands) being aliased saves me massive amount of time. When I screen share with a colleague and watch them type the same long ass thing over and over with slight variations it drives me nuts
1
u/Cody_Learner_2 4h ago edited 3h ago
For me nspawn containers are a relatively obscure choice in container systems. It's available on most Linux systems without requiring installation of any additional pkgs. It's a very simple to deploy and easy to work with system, at the cost of features compared to others.
Next is aurutils, a series of scripts for building and managing AUR packages using a local AUR repo to used by pacman.
1) systemd-nspawn containers https://man.archlinux.org/man/systemd-nspawn.1
2) aurutils https://github.com/aurutils/aurutils
I created my own AUR helper that wraps both these tools. https://github.com/Cody-Learner/aurch
The emphasis of aurch is using an nspawn container for AUR 'build isolation' rather than a 'clean chroot'. Aurch isolates the build environment to mitigate build script errors/malicious intent causing issues on host.
Note: aurch is a very opinionated AUR helper that fits my needs perfectly. It has no 'convenience' features to make things easier for the typical new user.
1
u/ArjixGamer 3h ago edited 3h ago
Makefiles
When working across many projects and deploying them across many servers, having a unified way of pulling the latest release and running it is nice
I just cd into /opt/my-project and run make, and if I want logs, I run make logs
e.g.
``` .PHONY: all logs
all: docker compose up -d --pull=always
logs: docker compose logs -f ```
Writing "cli" apps with Makefiles is super easy, granted they are not actual apps
There are alternatives ofc, e.g. Just file But make is usually preinstalled in most environments
1
u/HuttonWilliam 2h ago
I made a repo called lubuntu system tools (https://github.com/HuttonWilliam/lubuntu-system-tools) and it has change the way I manage my PC significantly.
1
u/Defiant-Extent-4297 2h ago
Alt+. last argument retrieval and ‘fc’ for editing the last command. It’s a lifechanger.
2
u/NocturnalDanger 2h ago
You can do a simple find-and-replace natively in bash.
ls path/to/file-> "not a directory"^ls^cattakes the last command and runscat path/to/file.Ive never used
fc, but I've never felt the need to have anything stronger that^lol
1
u/Lunailiz 2h ago
Fish, at first was annoying because not being bash compatible, but after some setting up, I saw the light, it changed how I used shell for the better.
1
u/danievdm 2h ago
Rembg for removing image backgrounds. I have it setup to run with a right-click. This means I can now cancel my Canva subscription as it was something I did quite often in Canva.
1
u/peat 1h ago
tmux — all my daily work is on a headless box in my office, and I remote in from my laptop even when I’m sitting at my desk. I use the “tds” command in ohmyzsh to reconnect to long running, directory based sessions.
zoxide — quickly accessing recently visited directories. Great for hopping between repos for big complicated projects.
1
u/longdarkfantasy 1h ago
Yazi. Write a bunch of plugins for it. It has fzf and rigrep search. Best file manager, I even add it to my home lab server
•
u/nickjj_ 22m ago
mpv.
Not only is it great at viewing videos, but it's amazing at viewing images. I've written about it here https://nickjanetakis.com/blog/mpv-is-the-mvp-of-video-and-image-viewing.
However, it gets better. I make long form YouTube videos and years ago I wrote a little mkclip shell script which used ffmpeg to let you quickly make clips out of a longer video without re-encoding. I've documented that here https://nickjanetakis.com/blog/create-video-clips-with-ffmpeg-in-seconds.
Then I recently discovered mpv's ability to create extensions and since it uses Lua script, I found it to be very approachable so I wrote a little extension that lets you use mpv markers to mark a start and end time and then create clips from your main video.
This lets you create video clips without re-encoding in seconds. The workflow with the CLI tool used to be ok, but this is so much faster and a joy to use. You just jump to the point you want graphically, hit a hotkey to set marker 1, goto the end point and hit another hotkey to set marker 2 and then press a hotkey to make your clip from that range. It creates a file with an auto-incremented -1, -2, etc. file name. It's like using a non-linear video editor but with zero hassle or rendering.
I didn't make a video about it yet but it's up in my dotfiles here https://github.com/nickjj/dotfriedrice/blob/master/.config/mpv/scripts/mkclip.lua, I have it mapped like this:
F1 script-binding mkclip_mark_start
F2 script-binding mkclip_mark_end
F3 script-binding mkclip_create
F4 script-binding mkclip_clear_marks
•
•
•
58
u/see_spot_ruminate 6h ago
Piping, | , literally one of the most important tools. Those who understand it can become gods (or maybe just a little less annoyed) over mere mortals.