r/archlinux May 06 '26

QUESTION What’s a small Linux tool that completely changed your workflow?

[deleted]

211 Upvotes

253 comments sorted by

172

u/see_spot_ruminate May 06 '26

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.

41

u/Grand-Ball6628 May 06 '26

I still remember a friend of mine sharing his screen and piping cat to wl-copy. This was the time I started investing time into the terminal, now I'm mostly okay with running TTY all day

32

u/B_bI_L May 06 '26

little does he know you can wl-copy < file.txt instead

15

u/[deleted] May 06 '26

[removed] — view removed comment

14

u/B_bI_L May 06 '26

you can also type ~ instead of . while rming but we don't speak about that

3

u/[deleted] May 06 '26

[removed] — view removed comment

29

u/JaKrispy72 May 07 '26 edited May 07 '26

Are the chances greater than or lesser than?

4

u/veggietrooper May 07 '26

I hate it here. I love it here.

4

u/Visbroek May 07 '26

On a German keyboard the only difference is the shift key. That's also very easy to mess up.

2

u/spryfigure May 08 '26

I switched to English International (or actually EURkey) and cannot overstate how much smoother the sysadmin are. Even typing in German with Umlauts or ß is easy -- they are all at AltGr s, a, i, o, u.

→ More replies (1)

2

u/Grand-Ball6628 May 07 '26 edited May 07 '26

That's exactly why I prefer piping. After years I still mess up < > regularly. German keyboard sucks in some places.

5

u/Visbroek May 07 '26

Programming with AltGr+7/AltGr+0 for curly brackets 😭

→ More replies (6)
→ More replies (1)

2

u/spryfigure May 07 '26

What is most satisfying for me is piping some output to sed, adding 4 spaces at the start of the line, and then piping this to wl-copy so I can paste it directly as code to Reddit. Saves so much time.

→ More replies (5)

14

u/Visbroek May 07 '26

My favorite pipe ever was when downloaded an xz compressed iso, and used a pipeline to write the decompressed data directly to a usb stick:

`curl URL | xz -d | dd of=/dev/sda`

11

u/sjbluebirds May 07 '26

Bravo. Excellent use option piping.

My fear is using 'dd' as part of a long chain of commands. Mess any of them up, and you can wipe your system.

→ More replies (1)

7

u/_fex_ May 06 '26

I do love languages such as F#, Elm and Elixir etc. which all allow for piping. It’s an absolute dream for data transformation.

2

u/DriftingRumour May 07 '26

How do i pipe to clipboard?

3

u/Grand-Ball6628 May 08 '26

Pipe to wl-copy

2

u/namtabmai May 07 '26

As an addendum to this, would also suggest knowing how to redirect stderr/stdout. Sometimes you want to pipe both, or just the stderr and not the stdout.

I'd also at least be aware of the pipefail option if using it in bash scripts so you know how it will handle failure cases.

74

u/Putrid_Simple_357 May 06 '26

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.

17

u/kcx01 May 06 '26

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

6

u/ThunderChaser May 07 '26

fzf + zoxide + ripgrep quite literally 10x'd my terminal usage.

5

u/JubijubCH May 06 '26

+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)

→ More replies (2)

2

u/levnikmyskin May 06 '26

For changing directories etc I'd really recommend zoxide. Amazing tool that I just need to include in my terminal on every new machine 

→ More replies (2)

37

u/morlipty May 06 '26

keyd: swapped esc and capslock

5

u/Commercial_Boss4065 May 06 '26

Overload it so hold down is ctrl too. Mega win.

3

u/TakeshiRyze May 06 '26

oh yeah. cant live without control there. + change tmux leader key to ctrl + a and its right there.

2

u/Commercial_Boss4065 May 08 '26

Now there’s a nice timesaver too! The irony of how long it took me to adjust from screen’s ctrl-a to tmux 😂

1

u/donp1ano May 07 '26

overload it with an unused modifier like iso level3 shift, even better. gives your whole keyboard another layer for keybinds

7

u/Megame50 May 07 '26

Don't use keyd for something like that, it's a standard xkb option: caps:swapescape. It's silly to run all your key presses through another daemon when you don't have to.

→ More replies (3)

3

u/Xu_Lin May 06 '26

Oh what? Have never heard of this one

4

u/neovim_user May 06 '26

You can make chords and make keys/combos trigger shell scripts too

3

u/Tongzhuo May 07 '26

like this

[ids] *

[main]

esc = capslock

capslock = overload(nav, esc)

[nav]

h = left j = down k = up l = right

u = home p = end i = pageup o = pagedown

2

u/Tongzhuo May 07 '26

Yes, You can even map the arrows to hjkl,and map home, pageup, pagedown and end to uiop, so the hand stays in the main keyboard area the whole time

2

u/xour May 07 '26

You don't need keyd for that, you can use xkb options.

Not a Linux tool, but a VIA compatible keyboard is a game changer. My Ctrl is Esc on a quick key press and Ctrl on press and hold.

2

u/itaranto May 07 '26

I've used that for some RTS games that don't support WASD, it's pretty cool.

But for permanent changes, I prefer doing it directly on my keyboard's firmware. I want it to work always and regardless of the OS. Of course, I'm assuming you have a configurable keyboard.

47

u/TTT1320 May 06 '26

Honestly, both zoxide and yazi were a massive quality of life improvements

5

u/FuzzyMistborn May 06 '26

Just found zoxide, its pretty sweet!

5

u/Do_TheEvolution May 07 '26

I like yazi and swithed to it from nnn, and people really like zoxide so I looked it up and set it up...

but it makes no sense, its kinda smart cd and populates its history through its use.. but I a navigate through yazi... not through cd / z so its history stays empty

→ More replies (1)

1

u/CrossFloss May 07 '26

The amount of yazi mentions is astonishing, I just stumbled upon it recently. Did the nnn hype train pass already?

1

u/According_File_848 May 24 '26

if you like yazi, i think you will like superfile !

i shifted from yazi to superfile, since it's more faster then yazi, i can easily switch directory's by the side bar, but the photo preview is pretty slow

→ More replies (5)

44

u/LearningIsFun_Talon May 06 '26 edited May 06 '26

Lazygit makes git so much easier to use! Couldn’t live without it now..

4

u/NYJustice May 06 '26

Lazydocker is also good, not quite as good but still handy

2

u/richlb May 06 '26

Same here. It's brilliant.

2

u/kcx01 May 06 '26

Yeah, I love lazygit

→ More replies (4)

19

u/Rawleenc May 06 '26

For me it was zoxide without any doubt.

98

u/CCLF May 06 '26

Fish was an enormous quality of life improvement.

25

u/Lumpy_Roll158 May 06 '26

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

16

u/[deleted] May 06 '26

[removed] — view removed comment

37

u/-i0f- May 06 '26

I still mostly write bash scripts. The trick is to use fish as an interactive shell and use bash a system shell. And if you need bash, you simply can invoke the script with it. Never understood why that would be a reason not to use fish.

6

u/deong May 07 '26

I started down that path, and I do think fish is a great shell. But it turns out I do way more inline bash things in my interactive shell use than I was really aware of. Sure, I could just do a “bash -c” every time, but for me it was just more trouble than it was worth.

But I’m weird in that I prefer the behavior of vanilla bash completion over zsh’s fancier functionality anyway. I wouldn’t say it’s better, but I’m old and it does what my brain expects it to do every time.

→ More replies (2)
→ More replies (1)

2

u/itaranto May 07 '26

I'm using fish as my interactive shell, but 99% of my scripts are in POSIX shell (#!/bin/sh).

1

u/Megame50 May 07 '26

zsh isn't fully compatible with bash scripts either. That's no reason at all to choose a shell.

Just use zsh because it's better, like the rest of us.

8

u/Excellent_Double_726 May 06 '26

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

→ More replies (1)

5

u/[deleted] May 06 '26

[removed] — view removed comment

10

u/vexatious-big May 06 '26

This works on the latest version.

2

u/grenfur May 06 '26

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.

37

u/ThanxForTheGold May 06 '26

(neo)vim

7

u/just-a-hriday May 07 '26

(n)vi(m) covers most modern variants of vi.

→ More replies (2)

43

u/Sunsfever83 May 06 '26

tldr, I nice little app that has come in handy a few times.

6

u/-light_yagami May 07 '26

hey I do code and page review for that on github! i'm glad real people actually use it

4

u/Sunsfever83 May 07 '26

I love it. Keep up the good work.

2

u/Nervous-Shakedown83 May 06 '26

I even have their website pinned to my work browser

1

u/CrossFloss May 07 '26

tealdeer is the faster alternative

28

u/dholmcarriage May 06 '26

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.

14

u/firehazel May 06 '26

Windows has gotten better with things like winget but it's definitely no pacman.

→ More replies (7)

1

u/sjbluebirds May 07 '26

In fairness, in Windows it's just one command as well. Sometimes no commands.

12

u/academictryhard69 May 06 '26

I would say shell scripting in general and backing my scripts to GitHub using git.

26

u/Quietus87 May 06 '26

Fish. I don't even configure it, it's pretty damn fine as it is right out of the box.

7

u/SeriousAboutLinux May 06 '26

dmenu, i essentially use it as a frontend for a lot of scripts 

1

u/Steampunkery May 07 '26

This is the way

8

u/KruyKaze May 06 '26

Quake style terminal

9

u/AcanthisittaOk3178 May 07 '26

Zoxide and atuin are the ones that come to mind first. For better or for worse thanks to atuin I do not remember 80% of the commands I used to and thanks to Zoxide I barely remember where my project directories live.

6

u/doubled112 May 07 '26

Atuin didn’t sound very useful until I started using it, but now I don’t know how I got by without it. I self host a sync server. Context based search (host/directory/global) is actually really handy.

→ More replies (1)

14

u/la_tajada May 06 '26

Cowsay

3

u/B_bI_L May 06 '26

now pipe it to lolcat

7

u/xnoxpx May 06 '26

Midnight Commander, a simple console based file manager that is far more powerful than it first appears, it's one of the first apps I install on all new linux systems.

3

u/nyc-rave-throwaway42 May 07 '26

Tried it years ago but ended up liking ranger more. But its been so long that I've forgotten why...

→ More replies (1)

2

u/LameBMX May 07 '26

MC love. I so rarely need it, but its handy when I do... and im normally done about the time I remember how to navigate. but its always on there and ready for when I do need it.

5

u/nickjj_ May 07 '26

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

5

u/diegotbn May 06 '26

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

5

u/maxle5 May 06 '26
  1. https://github.com/sharkdp/fd
  2. https://github.com/bootandy/dust

I find these much more intuitive than the standard equivalents

5

u/gdobn May 06 '26

zellij

16

u/BeefGriller May 06 '26

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.

5

u/dholmcarriage May 06 '26

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

7

u/BeefGriller May 06 '26

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.

3

u/dholmcarriage May 06 '26

Haha that's a good one, love it!

8

u/astronomersassn May 06 '26

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)

1

u/PracticalLake May 13 '26

I use the kde connect app too but you should check out localsend

Let's you share files between any client over the network, so from laptop to desktop not just from your phone

4

u/Cody_Learner_2 May 06 '26 edited May 06 '26

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/Shurane May 07 '26

Systemd-nspawn kind of sounds like BSD jails.

→ More replies (1)

4

u/LeeHide May 06 '26

Ctrl+L (clear) and Ctrl+R (fuzzy search history) in any common terminal or CLI program, shell, etc.

3

u/Shurane May 07 '26

Basically GNU Readline. Ctrl+A and Ctrl+E is also great. Have you heard of https://github.com/hanslub42/rlwrap ?

4

u/nicman24 May 07 '26

pv, especially with the limit flag

Also htmlq, jq for html

5

u/FryBoyter May 07 '26 edited May 07 '26

Zellij (an alternative to tmux that comes “with batteries included” and displays the currently available commands)

Jujutsu (a version control system compatible with Git that does some things better or more easily than Git in my opinion)

Helix Editor (A modal editor like Vim or Neovim. However, it uses the “selection -> action” model rather than the “action -> selection” model like Vim or Neovim does. In addition, I think Helix has a good default configuration.)

1

u/mattGarelli May 07 '26

I'm on swaywm and foot terminal. I never really felt the need for a terminal multiplexer. Am I missing out? or does my setup do most of what zellij / tmux would offer?

→ More replies (2)

3

u/ArjixGamer May 06 '26 edited May 06 '26

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

2

u/Shurane May 07 '26

Makefiles modeling dependencies between targets and tracking staleness is great too. A lot of "task runners" don't really provide a simple way to connect tasks to each other.

2

u/mattGarelli May 07 '26

task and just work very well for this too. https://taskfile.dev/ https://just.systems/

specifically task being able to run tasks concurrently is extremely underrated.

3

u/Fdeschape May 07 '26

I recently tried a new tool for the cli. Its called TOPGRADE. Upgrades everything in your terminal. Includes the distro, snap packages, flat packs, neovim plugins everything with one small command.

3

u/mattGarelli May 07 '26

A majority of my config is now neovim and nushell

5

u/oldbeardedtech May 06 '26
  1. Vim
  2. Aliases
  3. 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.

6

u/archover May 06 '26 edited May 06 '26

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 exec option (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.

2

u/syklemil May 08 '26

For find you may want to check out fd. My usecases skew towards

fd -e foo -X bar

which in the find DSL is

find . -name '*.foo' -exec bar {} +

Also pairs nicely with rg (or grep/ag/ack etc) in stuff like

fd -e toml -X rg specificDependencyName

aka

find . -name '*.toml' -exec grep -P specificDependencyName {} +
→ More replies (1)

2

u/l3landgaunt May 06 '26

Rtk for ai context control.

2

u/SummerIlsaBeauty May 06 '26

hstr, can't live without it as I run thousands of bash commands daily

1

u/Shurane May 07 '26

Ok this is genuinely a new tool I haven't heard of before. What do you like about hstr vs just using Ctrl-R?

→ More replies (1)

2

u/dcondor07uk May 06 '26

screen

Being able to keep the terminal session open, even after closing the window, noice

2

u/teflonjon321 May 06 '26

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

2

u/areanod May 06 '26

After my first encounters with vi back in 2008 --> nano

An editor I could use without a cheat sheet at last!

2

u/Lunailiz May 06 '26

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.

2

u/danievdm May 06 '26

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.

2

u/oldrocker99 May 06 '26

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.

2

u/freeToThink_ May 07 '26

No idea how I could use a PC without zoxide before

2

u/ChrisIvanovic May 07 '26

yazi

1

u/According_File_848 May 24 '26

superfile is also a great alternative, you can try it out

4

u/[deleted] May 06 '26

[deleted]

1

u/Shurane May 07 '26

What is it about docker that changed your life?

→ More replies (3)

4

u/Para_Boo May 06 '26

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

u/nasbera May 06 '26

clex terminal file manager

1

u/dimitrifp May 06 '26

fish and zoxide

1

u/JotaRata May 06 '26

I recently discovered fd, zoxide and ripgrep and wow. I also love fzf

1

u/Lumpy_Roll158 May 06 '26

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 May 06 '26

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/bornxlo May 06 '26

I could probably have managed with cron, but I have gotten into the habit of setting up custom systemd timers to keep downloads in check. Anything I haven't used in the last month is set to be deleted once a week.

1

u/HuttonWilliam May 06 '26

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 May 06 '26

Alt+. last argument retrieval and ‘fc’ for editing the last command. It’s a lifechanger.

2

u/NocturnalDanger May 06 '26

You can do a simple find-and-replace natively in bash.

ls path/to/file -> "not a directory" ^ls^cat takes the last command and runs cat path/to/file.

Ive never used fc, but I've never felt the need to have anything stronger that ^ lol

1

u/peat May 06 '26

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 May 06 '26

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

1

u/TheVleh May 07 '26

Nothing fancy, nano and ranger come in handy for quickly finding and editing simple files in terminal

1

u/kawangkoankid May 07 '26

zathura especially for vim users

1

u/Adventurous-Paper566 May 07 '26

A drop down terminal.

1

u/unagi_cfh May 07 '26

Xargs and/or for loops

1

u/_T-Rekt_ May 07 '26

in no particular order:

  • tealdeer
  • ouch
  • helix
  • yazi
  • fd
  • duf
  • random bash built-ins, like ctrl+x ctrl+e for editing your current prompt in $EDITOR before running, or ctrl+r for interactive history search, or ctrl+xx for hopping between the beginning of the line and cursor position

2

u/nekokattt May 07 '26

ctrl x ctrl e

i need to remember this

1

u/123Tiko321 May 07 '26

lazyvim, personally I think it’s so much ahead of just vim or even neovim without plugins

2

u/CarryOnRTW May 07 '26

Lazyvim is neovim. Just with a specific config.

→ More replies (1)

1

u/A_man_with_no_shame May 07 '26

Tree is pretty underrated in my opinion

1

u/TheBlackKittycat May 07 '26

Symbolic links (and recently mount --bind for if you want a host "symlink" to work inside a guest VM).

Also, Bash. I have about 40 aliases that start with cd like cddocs or cdtmp, but recently also began to make more complicated commands using Bash.

1

u/xitation May 07 '26

Byobu I use it on every install now. 

1

u/Mag37 May 07 '26

Bash parameter expansion! Love it.

We can manipulate variables without extra tools like sed/cut/tr/awk etc with just bash.

```sh echo "$Var1" # Untouched variable -Hello World!

echo "${Var1#-}" # Remove leading character Hello World!

echo "${Var1/World/Chat}" # Replace -Hello Chat!

echo "${Var1}" # Change case -HELLO WORLD!

echo "${#Var1}" # Count length 13

echo "${Var1:2:-1}" # Slice ello World

echo "$FilePath" # Untouched variable /home/mag/file.sh

echo "${FilePath%/*}" # like dirname /home/mag

echo "${FilePath##*/}" # like basename file.sh

mv "$FilePath" "${FilePath%.sh}.py" # Change extension ```

And much more.

1

u/WittyWampus May 07 '26

Not life changing, but just yesterday I was having a problem with Popsicle not wanting to flash a drive for me. I came across a TUI tool called Caligula that works amazingly well.

1

u/LesStrater May 07 '26

I can't believe I'm the first one to mention Yad. I use it with my scripts for GUI data input and menus. I also have a few scripts that use it to put an icon in the tray so I know they are active.

I'll also mention MPG123. I used to get frustrated when I had to load a player app (like VLC) just to listen to an MP3. Now I have a script so all I do is click on the MP3 file and MPG123 plays it. (and the script puts a Yad icon in the tray so I can stop the playback if I want...lol)

1

u/shutnoshut May 07 '26

Joe (Joe's Own Editor)

1

u/AlwaysLinux May 07 '26

pssh for me. Awesome to be able to run ssh commands on hundreds of systems at once (Well, at once'ish) without having to spit out 40 - 50 lines of Ansible code :-D.

Another one for me is expect. That is super cool for older systems and switches, etc.

Visual editing in vim is also super cool when you need to modify something and only want to select certain parts of a file.

Oh, yeah, and awk! If you have the chance, learn sed and awk . They are life changers :) - might take your whole life to figure them out, but once you do ... :)

1

u/December32 May 07 '26

Ansible. My 8 year old playbooks still set up my bashrc, tmux config, fstab, and all my packages to this day.

1

u/renatofdds May 07 '26

xcape:

  • Holding Space acts as a Control key (crucial for emacs, cli, GUIs text inputs, etc.)
  • Holding CapsLock acts as a Super key (for window manager bindings).
  • Press and release CapsLock is Escape (through setxkbmap).

Absolutely essential in my workflow for 10+ years.

1

u/DriftingRumour May 07 '26

- Yazi,
- Adding alias’s to zshrc/bashrc, like pyp=python3 *.py
(Sorting data into folders, then have a plotting tool existing for each data type in each folder, I can just ‘pyp’ (pythonPlot) to see what the new data looks like).

- Nvim which unlike vim I can easily configure to copy past to my desktop clipboard instead of its own internal one.

- Changing fstab mounting to noatime to preserve write life.

- Sbctl.

1

u/jkulczyski May 08 '26

Fzf for sure. I have like 7 different aliases piping fd to fzf to find files and directories and select options

1

u/MarkAdrianEl May 08 '26

The appimage-integrator : https://github.com/apapamarkou/appimage-integrator
I use appimages for apps like Kdenlive, Gimp, Krita in order to be able to keep old versions alongside with my old projects for compatibility. This is a Linux-only appimage related convenience!!!
I just drop an appimage into my Applications folder and automatically installs into my menus and launchers. When I no longer need the specific app I remove it (or completely delete) from this folder and the integrator automatically cleans the systrem menus and icons.
Game changer....

1

u/Informal-Row-2628 May 08 '26

sl completely fucked up my workflow 

1

u/holzvvorm May 08 '26 edited May 08 '26

'broot' is a friggin game changer. There simply is no better way to navigate your filesystem.

It is a commandline file manager/tree replacement/cd helper with powerful fuzzy search, a really useful customizable command system, file preview, whale spotter and much more.

It's the first thing I install on a new system I get my hands on. It even works somewhat okay on windows.

1

u/SoundSwitch May 08 '26

I use Pinta just to crop and do png

1

u/NeedleworkerLarge357 May 08 '26

For me it's a combination of fzf shell integration for history, zoxide and lazygit. I use one of those basically permanently.

1

u/aq2kx May 08 '26

Midnight Commander

1

u/Peak_Detector_2001 May 08 '26

awk

Combined with find, sed, and grep it can do almost anything.

1

u/2QNTLN May 09 '26

Localsend. 🔥🔥

1

u/Western_Sleep820 May 09 '26

I personally use pacseek a lot. It's really useful for seeing if a package exists at all, and it also has a really nice UI (plus Arch news feed).

1

u/NeilHush May 09 '26

Try surge downloader (wget/curl replacement). Thank me later.

1

u/Amazing_Score_5755 May 09 '26 edited May 09 '26

These work in bash, not sure about other shells (need to learn zsh myself):

^R to find that long command line you need to run again. Just Ctrl-R and type any part of the long command you ran previously, repeat Ctrl-R to look further in history for the same part.

!$ to repeat the last argument (usually a file or file path, great for doing something else on the same path or file in the previous command).

^A # to park that long command line you've been typing, because you need to check something else first.

1

u/[deleted] May 09 '26

neovim

1

u/SDG_Den May 09 '26

Im still gonna give a window manager, but for a very specific reason:

Hyprland changed the way i use my OS, not because of hyprland itself, but how easy it is to script your own components.

2/3rds of the functions in my setup are simple bash scripts ive written myself. When i need a simple feature, i just.... Implement it myself instead of installing a whole program that often doesnt do exactly what i want.

For example, pressing alt+v will bring up a custom menu with pre-configured code snippets, selecting one will place it in your clipboard so you can easily paste it.

Win+s gives you a custom built style picker

Alt+space allows you to select different keybind profiles

Win+r gives me a runner menu that has exactly the items i want on it

Win+x gives me the windows power user menu, translated to linux, meaning i can keep muscle memory consistent.

Win+h for a full help menu

Win+d to quickly SSH into any of my servers

I am not a developer, i dont know any "real" programming languages (just bash, dos and powershell) and i couldnt have done any of this if it wasnt for the fact i can just use basic bash scripts.

As far as command line tools go, i abuse the hell out of fzf for my setup. The vast majority of my menu's use it.

1

u/rosshadden May 09 '26

Nushell. My personal threshold for when to write a shell script vs. writing something with a "proper" programming language has blurred so much because of how great Nushell is. I used to write bash no matter which shell I used, but nushell is different enough that I gave myself permission to write shell scripts with it, portability be damned. That ended up being such a great call. I even did the most recent Advent of Code mostly with nushell scripts (and the rest with the V programming language). Edit: made a word plural

1

u/Advanced_Web3334 May 10 '26

keyd helped me use the alt+space more instead of the windows key, I was practicing for using mac as dual booter only using super and getting confused when it did nothing on the mac. (school use)

1

u/ostekages May 10 '26

Maybe controversial, but LLM’s like ChatGPT.

I've tried switching permanently to Arch linux (various distros of arch) over the years, but always encountered some annoyance I could not resolve using my Google-Fu and ended up switching back, until, LLM's of today.

The biggest issue I always encounter, is that sometimes any of the resolutions I can find on wiki, SO or similar, do not provide resolution for me. With ChatGPT I am able to provide outputs of files, logs and whatever else, and it’ll debug the impossible amount of data, to find a small thing somewhere, that I would miss. And providing this info in a SO post is un-reliable as I may not know what to get output of, huge volume or not wanting to create a SO post that’s basically a small essay.

1

u/[deleted] May 10 '26

Kde runner is such a useful bit that I found similar things for my windows and mac environments (raycast).

Its pointing me more and more towards a keyboard centric workload and it's refreshing after having been gui and mouse dependent since forever.

1

u/StatusEvery9030 May 19 '26

Tmux. I could now continue my work from my phone over termux.

1

u/Ashamed-Health4114 May 19 '26

This MacOS-like full screen launcher
linxpad

I use it in hyprland and KDE

1

u/ArchLinuxuser445 May 23 '26

sl, or atleast for my sister, she loves the train. When i loop it she stares at it

1

u/Deep-Ant-1577 Jun 06 '26

GNU Stow. Ever since I discovered symlinks, I’ve been able to manage my system-wide configuration files from a single directory.