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 the .Brewfile for the full list.
- Ghostty A new, fast (GPU accelerated) 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 except for when OrbStack doesn't support a specific ISO.
- 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. - dust. Fast replacement for
duwith a more intuitive graph output. - cloc. Counts lines of code.
- zoxide. A
cdcommand with shortcuts - hyperfine. Benchmarking tool for CLI commands.
- jdupes. Finds and remove file duplicates.
- 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, btop
- 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.
Use Time Machine without the bloat. Configure using:
tmutil addexclusion ~/Downloads
tmutil addexclusion ~/.Trash
tmutil addexclusion ~/Library/Caches
tmutil addexclusion ~/Library/Logs
tmutil addexclusion ~/Library/Saved\ Application\ State
tmutil addexclusion ~/Library/Containers/*/Data/Library/Caches
tmutil addexclusion ~/Library/Group\ Containers/*/*.Cache*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