Home - joamatab/dotfiles GitHub Wiki

Tools I use

Here is a list of tools I use on a daily basis. It is not exhaustive, but it is a good starting point for anyone looking to get started with the command line.

CLI

Tool Task
fish shell with oh my fish shell
neovim text editor
fd find files
ripgrep search in files
fastmod search and replace text in files
lf terminal file browser
zoxyde faster cd command, z jumps to frequently used dirs
bat show file contents (better less)
fzf fuzzy finder
tmux terminal multiplexer
atuin history manager (like mcfly)
dust check file sizes and disk usage
bottom btm system monitor (better htop)
aichat CLI for chatgpt
gh GitHub CLI
eza list files (better ls)
delta git diff viewer

Less frequently used CLI tools

Tool Task
httpie making HTTP requests
hyperfine CLI benchmarking / time tools
jq command line JSON processor
yq command line YAML processor
gitui CLI for git
lazygit CLI for git
mdp command line markdown presentation
tokei count lines of code
mcfly fly through your shell history (Control R) . Move to atuin.
tldr cheat sheets for command line tools
glow markdown viewer in terminal

Other CLI tools that I have used but replaced

Tool Task
sd replace files, I use fastmod instead
ag (the-silver-searcher) search in files, I use ripgrep instead
grep search in files, I use ripgrep instead
exa list files (better ls)

Vim plugins

Plugin Task
vimwiki wiki
lf.vim lf file browser
copilot copilot
codecompanion AI chat
fzf / telescope fuzzy finder
vim-gitgutter git diff, git status, commit ...
coc.nvim autocomplete (pyright, ruff)
vim-surround surround text objects
vim-commentary comment code (gcc)
vim-sneak jump to any 2-char match
ale linting (ruff)
vim-fugitive git integration
undotree visual undo history
img-clip.nvim paste images from clipboard
vim-test run tests

Non CLI

Tool Task
flameshot screenshot tool
baobab disk usage analyzer
kdiff3 merge conflict resolver
tmux terminal multiplexer
zellij terminal multiplexer

Listed in order of preference.

  • Tiling_window_manager:
    • Linux
      • i3wm
      • dwm
      • awseome
      • bspwm
      • sway
    • MacOs
      • Yabai
  • Terminal:
    • alacritty: GPU accelerated
    • Ghostty
    • kitty: GPU accelerated
    • st
    • tmux: terminal multiplexer
  • editor:
  • documents
    • sc-im: CSV reader/writer
  • Shell:
    • fish: friendly interactive shell
    • zsh: z-shell terminal
    • xonshrc: python-based terminal
    • starship: command prompt for bash
  • launcher
    • dmenu
    • rofi
    • synapse
  • Reader
    • zathura: pdf reader
    • newsboat: rss feed reader
    • fx: json
  • browse the web
    • googler
    • s-search
    • howdoi
    • tldr
    • cheat
  • documentation
    • zeal:
  • Terminal file manager
  • ucollage: images browser on terminal repo
  • move around
  • Search files
    • fd
    • fzf: fuzzy finder
  • video
    • mpv: player
    • kdenlive: editor
    • losslesscut: cutter
  • music
    • cmus
    • moc
    • ncmpcpp
  • Browser
    • firefox
    • qutebrowser
    • chromium
    • brave
  • System overview
    • glances
    • htop
    • neofetch
    • top
  • Monitor display management:
    • mons: manage monitors config from the terminal
    • arandr: manange monitors with GUI
    • xrandr: traditional command line tool
  • open files
  • System preferences
    • network manager for LAN and wifi
      • nmtui: text GUI
      • nmcli: command line
    • audio
      • pavucontrol
  • OS
    • Manjaro arch sudo pacman -Syu PackageName
    • fedora rpm PackageName
    • linux mint/ubuntu/debian. sudo dpkg -i PackageDebian.deb

MacOs only

  • documentation
    • dash:
    • Cheatsheet: hold on command to see which key bindings you can use for each application
  • keyboard
  • tiling window manager
    • yabai MacOS window manager
    • spectacle
    • amethist

VPS

  • aws services
    • lifecycle manager: snap machines
    • ec2: virtual private
    • eks: kubernetes
    • paralell-cluster: sun grid engine to queue and run bash jobs. can be ellastic.
    • s3: block storage
  • serving your website with github pages
  • netlify also has a nice free tier

Python tools

Youtube

Guides

Awesome:

My shortcuts

neovim (leader = ')

General

key action
jj escape insert mode
space toggle fold
S search and replace all
Ctrl + s save file
Ctrl + h/j/k/l navigate splits
Ctrl + p paste from clipboard
Ctrl + y (visual) copy to clipboard
Y yank to end of line
// search lines in buffer (fzf)
?? ripgrep search (fzf)
cc command palette (fzf)
< / > (visual) indent and reselect
- (visual) replace spaces with underscores

Leader shortcuts

key action
'w save all
'q quit
'z save all and quit
'f / 'o fzf files
'b fzf buffers
'j fzf history
't new tab
'T open terminal
'- / '_ vsplit / hsplit
'l lf file browser
'N NERDTree toggle
'n toggle relative numbers
'u undotree toggle
'v paste image (img-clip)
'a autoformat
'y tagbar toggle
'k close buffer
'p / '" previous buffer
'' next buffer
'S replace word under cursor
'/ CtrlSF regex search
'c / 'C CtrlSF focus / toggle
'id insert date
'1 run file in ipython
'2 compile and run

Git (leader)

key action
'g git status (fugitive)
'ga / 'gw git add (stage file)
'gc git commit -va
'gd git diff split
'gp git push
'gb git blame
'gf / 'gj diffget //2 or //3 (merge)

Code navigation (CoC)

key action
gd go to definition
'd go to definition
'D go to declaration
'r rename symbol
'R refactor
'ch hover documentation
'cf code action
'ca quick fix
'cl diagnostics list
'cp copilot
'h toggle inlay hints
[c / ]c prev/next diagnostic
Ctrl + j accept copilot suggestion

Telescope

key action
'ff find files
'fg live grep
'fb buffers
'fh help tags

Testing

key action
'tn test nearest
'tf test file
'ts test suite

Spell check

key action
'ss toggle spell check
'sn / 'sp next / prev misspelling
'sa add word to dictionary
'sf suggest fix

Markdown folding

key action
Enter toggle fold under cursor
zj fold all headings level 1+
zk fold all headings level 2+
zl fold all headings level 3+
z; fold all headings level 4+
zu unfold all
zi fold heading above cursor

tmux (prefix = Ctrl-a)

key action
prefix + h/j/k/l navigate panes (left/down/up/right)
prefix + H/J/K/L resize pane
prefix + >/< swap pane with next/previous
prefix + + maximize current pane
prefix + _ split vertically
prefix + - split horizontally
prefix + Enter enter copy mode
prefix + Tab last active window
prefix + BTab last session
Alt + Left/Right navigate panes (no prefix)
Shift + Left/Right previous/next window
Alt + H/L previous/next window

fish shell

key action
Ctrl + f accept autosuggestion
Ctrl + w forward word
Ctrl + p history token search backward
Ctrl + n history token search forward
Ctrl + c kill whole line
Ctrl + b edit command in editor

fish abbreviations

abbr command
v/n nvim
e eza (ls with git ignore)
et eza --tree
l lfcd (lf and cd to dir)
o open
t trash
q exit
gs git status
ga git add
gc git commit -v
gd git diff
gl git pull
gp git push
glo git log --oneline
gco git checkout
gcb git checkout -b
sf source fish config
cc claude
ww open vimwiki
se source .venv/bin/activate.fish

AeroSpace window manager (macOS)

key action
alt + enter new terminal
alt + h/j/k/l focus left/down/up/right
alt + shift + h/j/k/l move window left/down/up/right
alt + f toggle fullscreen
alt + shift + space toggle floating/tiling
alt + 1..9/0 go to workspace 1..9/10
alt + shift + 1..9/0 move window to workspace 1..9/10
alt + q close window
alt + tab workspace back and forth
alt + e toggle tiles horizontal/vertical
alt + s layout stacking (v_accordion)
alt + w layout tabbed (h_accordion)
alt + r enter resize mode (then h/j/k/l)
alt + m move workspace to prev monitor
alt + ,/. focus prev/next monitor
alt + shift + ,/. move window to prev/next monitor
alt + shift + c reload config

sxhkd (Linux)

key action
super + c clipmenu
super + grave dmenu unicode
super + -/+ decrease/increase volume
super + shift + m mute toggle
Print flameshot screenshot
shift + Print maim full screenshot

Firefox extensions

⚠️ **GitHub.com Fallback** ⚠️