my dev config

.zsh dotfiles

Scripts go in ~/.scripts, which I add to my path.

Some of my favorite parts

Jump to directory by searching history using zoxide

z () { z "$@" }  
# also open in your default editor
ze () {z $1 && edit } 

Quick docker-compose with automatic file detection

dc() {
    open -a "OrbStack"
    if [[ -f "$1" ]]; then
        docker-compose -f "$1" "${2:-up}" "${@:2}" 
    elif [[ -d "$1" ]]; then
        docker-compose -f "$1/docker-compose.yml" "${2:-up}" "${@:2}"
    else
        docker-compose "${1:-up}" "$@"
    fi
}

Quick network tools

ip() { curl -sS ipinfo.io | jq '{ip:.ip, city:.city, country:.country}' }
# {
#   "ip": "147.209.170.11",
#   "city": "Townsville",
#   "country": "AU"
# }
port() { lsof -ti:$1 }
killport() { lsof -ti:$1 | xargs kill }

alias flushdns='dscacheutil -flushcache'

global config files

ruff configuration

$HOME/.config/ruff/ruff.toml
line-length = 110

[format]
indent-style = "tab"

ghostty terminal

~/.config/ghostty/configreference

theme = dark:ChallengerDeep,light:GitHub-Light-Colorblind

font-family = SF Mono
font-size = 20

cursor-style = bar
cursor-color = #2aff9c
window-colorspace = display-p3
shell-integration-features = true

mouse-hide-while-typing = true
window-padding-balance = true

background-opacity = .85
background-blur = true

auto-update = download

# write_scrollback_file = open
keybind = "cmd+.=text:"

lsd

~/.config/lsd/config.yml

total-size: true
layout: oneline
sorting:
  dir-grouping: first
icons: { separator: "  " }
blocks:
  - size
  - date
  - name
date: 'relative'
ignore-globs: [".git"]
hyperlink: auto

All posts