Defaults

My default choices for tools and technologies

When I need a tool for a task, these are my default choices.

Editor #

Neovim - For everything text-related. See Neovim Configuration

Fallback: Helix Editor for quick edits when neovim config is broken.

Terminal #

kitty - Primary terminal. See kitty Terminal

Fallback: WezTerm when I need better cross-platform consistency.

Shell #

zsh - With autosuggestions, syntax highlighting, and starship prompt. See zsh Configuration

Multiplexer #

tmux - For persistent sessions and popup workflows. See tmux Configuration

Fallback: Zellij when I want built-in multiplexer without external tool.

Version Control #

git - With delta for diffs and gitui for UI. See Git Configuration

Tool Management #

mise - For all language runtimes and dev tools. See mise Tool Management

Replaced: pyenv, nvm, rbenv, and friends.

Fuzzy Finder #

fzf - Integrated with shell and editor. See fzf

File Manager #

lf - Fast terminal file manager. See lf

yazi - Alternative with async I/O. See Yazi

Fallback: Standard shell commands for simple operations.

Window Manager #

Hyprland - Wayland compositor on main machine. See Hyprland Window Manager

Fallback: Awesome Window Manager when I need X11.

Browser #

Brave - Primary browser with good privacy defaults.

Fallback: Firefox for testing and sites that break on Brave.

ripgrep (rg) - For code search

fd - For file finding

Both integrated with fzf.

Notes #

Plain markdown files in git repos.

Todo: tmux Configuration todo session with backlog/doing/done files.

Communication #

  • Email: Fastmail
  • Chat: Signal, occasionally Discord
  • Video: Jitsi, Zoom when required

Operating System #

Arch Linux - Main development machine

Ubuntu - For servers and containers

Why Defaults Matter #

Having defaults reduces decision fatigue. When I reach for a tool, I already know what to use. This lets me focus on the actual problem instead of evaluating options.