/beep-beep

curated list of programs to accelerate your workflow on Linux, with a focus on TUI / CLI and RAM consumption.

beep-beep

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:

  1. search & select & sort things
  2. navigate
  3. windows manager & status bar & app launcher
  4. terminal emulator
  5. terminal customization
  6. terminal multiplexing
  7. network
  8. type faster & spell checking
  9. pagers
  10. json everything
  11. markdown everything
  12. CLI IDE
  13. password management
  14. listen music
  15. screenshots & images workflow
  16. pdf reading & editing
  17. code related
  18. manage your screen monitors
  19. get documentation

search & select & sort things


fzf: fuzzy-find in everything, especially your command history.

(Make sure to install it via git to activate keybindings automagically)

Examples (.zsh functions):


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.

navigate

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.

windows manager & status bar & app launcher


Choose a windows manager that fits your needs

Choose a status bar that fits your needs

rofi: fuzzy-find and launch your programs.

terminal emulator


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:

for choosing the right one (urxvt-unicode with daemon mode ;)).

terminal customization


use zsh + ohmyzsh

add plugins in your .zshrc, for example:

plugins=(git zsh-completions zsh-autosuggestions colored-man-pages extract ssh-agent gpg-agent tmux)

terminal multiplexing


  • tmux
  • screen
  • zellij
  • byobu: keep a terminal session active in background, easily switch between your sessions, name them.

network

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.

type faster & spell checking


typing club: learn touch typing

learn the shortcuts:

aspell: spell check CLI.

pagers


bat: read code with colour syntax in your terminal.

glow: read markdown in your terminal.

json everything


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.

markdown everything


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.

CLI IDE


learn how to use nvim or emacs

add modules like easymotion

password management


pass: manage your password the UNIX way with gpg.

rofi-pass: fuzzy find your passwords and get them to your clipboard quickly.

listen music


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.

screenshots & images workflow


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.

pdf reading & editing

apvlv: pdf reader with vim bindings.

xournalpp: note taking & pdf editor you're looking for.

code related


onefetch & tokei: quickly get stats & info about a .git repo.

gitui & lazygit: TUI for git.

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.

manage your screen monitors


get documentation

tealdeer & navi: common use cases of tools / cheatsheets instead of exhaustive man pages.

more utils

moreutils

conclusion

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.