Skip to content

Latest commit

 

History

History
88 lines (66 loc) · 4.06 KB

File metadata and controls

88 lines (66 loc) · 4.06 KB

My Dotfiles and configs

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.

Main Applications

  • 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.

Development

  • 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.

CLI tools

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 ls with better colours, filtering and sorting.
  • ripgrep. Wickedly fast (parallel) recursive grep.
  • fd. A fast parallel find.
  • dust. Fast replacement for du with a more intuitive graph output.
  • cloc. Counts lines of code.
  • zoxide. A cd command 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

Ricing

  • 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.

Backups

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*

About this repo

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.

Cloning the repo

# 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

Updating the repo

# 1. Add a new config file
dot add .config/sample.conf
dot commit -m "Added sample.conf"
dot push