A list of tools to accelerate your workflow on a linux distro, with a focus on:
- ease of installation
- TUI / CLI
- RAM consumption
Table of contents:
- search & select & sort things
- navigate
- windows manager & status bar & app launcher
- terminal emulator
- terminal customization
- terminal multiplexing
- network
- type faster & spell checking
- pagers
- json everything
- markdown everything
- CLI IDE
- password management
- listen music
- screenshots & images workflow
- pdf reading & editing
- code related
- manage your screen monitors
- get documentation
fzf: fuzzy-find in everything, especially your command history.
(Make sure to install it via git
to activate keybindings automagically)
fuzzy select a running docker and jump in it.
function di(){docker exec -it "$(docker ps | fzf | cut -d' ' -f1)" /bin/sh}
fuzzy select a file, preview it with bat
and open it with nvim
.
function fz() {vim $(rg --files --hidden | fzf --preview "bat {}")}
fuzzy select an image while previewing it in the terminal and set it as your wallpaper.
function cwp() {feh --bg-scale --fullscreen $(rg --files ~/images/wallpapers/ | fzf --preview "termpix --width 100 --true-color {}")}
fuzzy select a password from your password vault and put it in your clipboard.
function fp() {
pass show -c $(fd -i --base-directory ~/.password-store .gpg \
| fzf --prompt="# " \
--ansi \
--delimiter "/" \
--no-multi \
--cycle \
--header='fuzzy_pass' \
--color='16,gutter:-1' \
--bind='tab:down' \
--bind='btab:up' | rev | cut -c5- | rev)
}
ripgrep: find patterns in files.
fd: find directories & files.
dragon: drag & drop files to other apps from the term.
procs: ps
with additional features.
bottom: htop
-like for CPU, RAM, network with additional.
huniq: sort things uniquely.
delta: perfect files diffs.
dust: check disk usage.
difftastic: diff that understands syntax.
hexyl: a hex viewer.
xsel: pipe in your clipboard with xsel -bi
.
ptf: share a file instantly over HTTP.
zoxide: cd
with teleportation.
broot: navigate, get overviews of directories & never lose track of file hierarchy.
vimfm: file manager with vim
bindings.
ranger: same as above.
hunter: not maintained anymore but still powerful.
Choose a windows manager that fits your needs
Choose a status bar that fits your needs
rofi: fuzzy-find and launch your programs.
Choose a terminal emulator that fits your needs:
- do you need to have it GPU accelerated?
- do you want a fast startup time?
- do you care about latency?
- do you want it to have a sessions feature?
- do you need kitty's graphics protocol?
- [...]
Here is:
- the wikipedia's list of emulators
- a benchmark
- some documentation
for choosing the right one (urxvt-unicode with daemon mode ;)).
add plugins in your .zshrc
, for example:
plugins=(git zsh-completions zsh-autosuggestions colored-man-pages extract ssh-agent gpg-agent tmux)
- tmux
- screen
- zellij
- byobu: keep a terminal session active in background, easily switch between your sessions, name them.
iwd: wireless daemon for Linux, lets you manage wifi from the cli.
nmtui: network manager TUI.
termshark: Wireshark but in TUI.
nload & bandwhich: monitor bandwidth usage.
rofi-bluetooth: manage & fuzzy-find bluetooth devices.
typing club: learn touch typing
aspell: spell check CLI.
bat: read code with colour syntax in your terminal.
glow: read markdown in your terminal.
jq / yq / xq: parse & switch between JSON / YAML / XLM seamlessly.
rq: parse switch & between JSON / protobuff / TOML / msgpack / [...] / seamlessly.
fq: parse binary formats.
gron: easily find the jq
select syntax you're looking for.
fx: interactive .json
traversal & finder.
pandoc: write markdown, generate PDF for your slides, or your thesis, fool everyone with LaTeX templates.
hugo: write markdown and make a static site out of it for your blog.
mdformat: format your markdown.
learn how to use nvim or emacs
add modules like easymotion
pass: manage your password the UNIX way with gpg.
rofi-pass: fuzzy find your passwords and get them to your clipboard quickly.
spotifyd: spotify deamon.
# configure `spotifyd` to auth itself seamlessly with your `pass` password manager.
# ~/.config/spotifyd/spotifyd.conf
password_cmd = "pass show Web/spotifyd | head -n 1"
spotify-tui: spotify TUI client.
playerctl: control spotify, mpv, vlc [...] with keybindings from anywhere seamlessly.
flameshot: screenshot any part of your screen and anotate it immediately.
normcap: screenshot any part of your screen and instantly OCR that part to your clipboard.
viu: view images in your terminal.
imagemagick: edit your pictures from the CLI.
apvlv: pdf reader with vim bindings.
xournalpp: note taking & pdf editor you're looking for.
onefetch & tokei: quickly get stats & info about a .git
repo.
mise & asdf: manage multiple runtimes versions with one tool.
hyperfine: benchmark any program.
watchexec: watches a path and runs a command whenever it detects modifications.
just: better make.
shellcheck: warning & suggestions for shell scripts.
ruff: fastest python linter & code formatter.
uv: pip install everything in a second.
Never mix your git identities anymore
# ~/.gitconfig
[includeIf "gitdir:~/documents/prog/perso/"]
path = .gitconfig-personal
[includeIf "gitdir:~/documents/prog/work/"]
path = .gitconfig-professional
# ~/.gitconfig-personal
[user]
email = your_email
name = your_identity
[core]
editor = vim
code projects under:
- perso/* will be committed with your
.gitconfig-personal
identity - work/* will be committed with your
.gitconfig-professional
identity
chezmoi: manage and sync your dotfiles.
tealdeer & navi: common use cases of tools / cheatsheets instead of exhaustive man pages.
Now that you know which tools to use, it's time to move to a lightweight distro that only ships what you really need, with the init system you want.