This repo focuses on terminal tools and settings.
See macos_settup.sh for OS settings done through CLI. Almost all apps and tools are installed using homebrew. See
- Ghostty A new but fast and full featured terminal from Mitchell Hashimoto.
- Obsidian markdown notebook. I'm using it like a data lake for notes, using text search or a RAG for finding info later on.
- OrbStack Fast VM (headless) hypervisor and Docker containers manager.
- UTM OOS VM hypervisor. Seldom used now. Headless VMs through OrbStack is all I need.
- mise Manages multiple global environments for node, go, python, php. Decent Rust support was added recently.
- uv Python package and virt env manager. Replaces everything from pyenv to pip. Much faster too.
The Rust and Go communities have re-implemented the old unix tools for faster (multi-core support), better ui (TUI in some) and eye candy (colour schemes). Here's my current crop.
- atuin A shell command history. Sync mode is disabled so that history stays local.
- lsd. A
lswith better colours, filtering and sorting. - ripgrep. Wickedly fast (parallel) recursive grep.
- fd. A fast parallel
find. - zoxide. A
cdcommand with shortcuts - hyperfine. Benchmarking tool for CLI commands.
- glow. Markdown rendering on terminal.
- chafa Powerful image display for terminals. It also produces high-quality ASCII art from images as a side effect of supporting terminals with no graphical capabilities.
- entr File watcher. Run arbitrary command when a file changes.
- Others (The usual suspects): jq, dasel, git, gh, coreutils, gzip, openssl, rsync, wget, pandoc, exiftool, aws-cli, aws-cdk, tmux
- Current Theme: Tokyo Night Storm
Used in terminals, editors. - vivid LS_COLORS generator. Combine it with lsd config (color.yaml) to cover the full colorising of the listing command.
- starship Prompt customisation. Use sparingly to avoid prompt lag.
I use the bare repo technique described in a few posts online. Dotfiles and configs are tucked away in a bare repo so normal git tools never notice it.
# 1 · Clone it as a bare repo
git clone --bare https://github.com/gittycat/dotfiles.git $HOME/.dotfiles
# 2 · Handy alias. I only define it when working on the repo
alias dot='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
# 3 · Hide all files not in the repo
dot config --local status.showUntrackedFiles no
# 4 · Check out tracked files into $HOME
dot checkout# 1. Add a new config file
dot add .config/sample.conf
dot commit -m "Added sample.conf"
dot push