Skip to content

gittycat/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

My macOS dev environment config files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages