Skip to content

jefftriplett/dotfiles

My Dotfiles

These are my personal dotfiles for macOS development environments. They provide a consistent setup across machines with automated configuration.

Key Tools

CLI

  • direnv: Securely loads or unloads environment variables depending on the current directory
  • Homebrew: Package management for macOS
  • Homesick: Manages dotfiles with Git and symlinks
  • Just: 🤖 Command runner for project-specific tasks
  • Starship: Minimal, blazing-fast, and customizable prompt for any shell

GUI

Python Environment

  • pip: PyPA recommended tool for installing Python packages
  • pyenv: Simple Python version management
  • uv: Fast Python package installer and resolver, written in Rust

Installation

  1. Install Homesick:

    $ gem install homesick
  2. Clone this repository:

    $ homesick clone jefftriplett/dotfiles
  3. Create the symlinks:

    $ homesick symlink dotfiles
  4. Bootstrap the environment:

    $ just bootstrap

Justfile Usage

$ just --justfile=./home/justfile

Available recipes:
    bootstrap                                 # installs/updates all dependencies
    cleanup DAYS="0"                          # clean up old homebrew packages and casks
    fmt                                       # format and overwrite justfile
    freeze                                    # Updates our lockfiles without installing dependencies [alias: lock]
    git-commit-msg                            # generate a commit message using llm template
    install                                   # create symlinks for dotfiles using homesick
    kill-tabs                                 # Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.
    open-claude-desktop-config                # open Claude desktop configuration file in Sublime Text
    open-docs                                 # open documentation in browser using tailscale/golinks
    open-go                                   # open tailscale/golinks homepage
    open-ha                                   # open Home Assistant interface in browser
    open-syncthing                            # open Syncthing interface in browser
    outdated                                  # list outdated packages from homebrew and pip
    pip-install *ARGS                         # install python packages using uv pip installer
    pip-uninstall *ARGS                       # uninstall python packages using uv pip installer
    postgresql-upgrade                        # upgrade postgresql to latest version and migrate databases
    pyenv-upgrade +ARGS="--skip-existing"     # upgrade python and update pyenv configuration
    pyenv-upgrade-all +ARGS="--skip-existing" # install or upgrade all python versions managed by pyenv
    python-update                             # update python environment and pyenv settings
    restart                                   # restart homebrew services
    stop                                      # stop all homebrew services
    update                                    # updates a project to run at its current version
    upgrade                                   # update and upgrade homebrew packages
    upgrade-all                               # upgrade all tools (pyenv and mise packages)
    uv-python-install *ARGS                   # install python versions using uv installer
    uv-python-reinstall *ARGS                 # reinstall python versions using uv installer
    uv-tool-install *ARGS                     # install common python CLI tools using uv installer
    homebrew ...
    llm ...
    macos ...
    ollama ...
    virtualenv ...
    virtualenvwrapper ...

Hammerspoon Keyboard Shortcuts

Action Key Combination
hyper ctrl + opt + cmd
meta cmd + shift
reload config hyper + r
show grid hyper + g
make full screen hyper + m
center and 60% hyper + c
move to left half hyper + left
move to right half hyper + right
move to top half hyper + up
move to lower half hyper + down
move to upper left (25%) ctrl + opt + shift + left
move to upper right (25%) ctrl + opt + shift + up
move to lower left (25%) ctrl + opt + shift + down
move to lower right (25%) ctrl + opt + shift + right
move to next monitor ctrl + opt + right
move to previous monitor ctrl + opt + left

Terminal theme

  • Dracula Dark theme for iTerm and 294+ apps.

Inspiration / Thank you!

Contact / Social Media

Here are a few ways to keep up with me online. If you have a question about this project, please consider opening a GitHub Issue.