https://github.com/jefftriplett/dotfiles
:hammer: My dotfiles for setting up my Macs with Ansible
https://github.com/jefftriplett/dotfiles
ansible automation development-environment dotfiles homebrew mac macos pipsi playbook python setup shell
Last synced: about 2 months ago
JSON representation
:hammer: My dotfiles for setting up my Macs with Ansible
- Host: GitHub
- URL: https://github.com/jefftriplett/dotfiles
- Owner: jefftriplett
- License: bsd-3-clause
- Created: 2013-10-28T00:51:51.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T02:13:56.000Z (8 months ago)
- Last Synced: 2024-10-24T18:47:31.764Z (8 months ago)
- Topics: ansible, automation, development-environment, dotfiles, homebrew, mac, macos, pipsi, playbook, python, setup, shell
- Language: Lua
- Homepage:
- Size: 1.97 MB
- Stars: 50
- Watchers: 6
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - jefftriplett/dotfiles - :hammer: My dotfiles for setting up my Macs (Lua)
README
# 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][direnv]: Securely loads or unloads environment variables depending on the current directory
- [Homebrew][homebrew]: Package management for macOS
- [Homesick][homesick]: Manages dotfiles with Git and symlinks
- [Just](https://github.com/casey/just): 🤖 Command runner for project-specific tasks
- [Starship][starship]: Minimal, blazing-fast, and customizable prompt for any shell### GUI
- [Alfred][alfred]: Productivity tool with [Alfred Powerpack][alfred-powerpack]
- [Hammerspoon][hammerspoon]: macOS automation tool (tiling windows manager)### Python Environment
- [pip][pip]: PyPA recommended tool for installing Python packages
- [pyenv][pyenv]: Simple Python version management
- [uv][uv]: Fast Python package installer and resolver, written in Rust## Installation
1. Install Homesick:
```shell
$ gem install homesick
```2. Clone this repository:
```shell
$ homesick clone jefftriplett/dotfiles
```3. Create the symlinks:
```shell
$ homesick symlink dotfiles
```4. Bootstrap the environment:
```shell
$ just bootstrap
```# Justfile Usage
```shell
$ just --justfile=./home/justfile --list --list-submodulesAvailable recipes:
claude:
config # open Claude Desktop configuration file in Sublime Text
upgrade # update Claude Code CLI to the latest version
homebrew:
cleanup DAYS="0" # clean up old Homebrew packages and cache
freeze # freeze current Homebrew packages to Brewfile
outdated # list outdated Homebrew packages
services # list all Homebrew services
services-restart # restart all running Homebrew services
services-stop # stop specific Homebrew services (with non-fatal errors)
update # update Homebrew package database
upgrade # upgrade all outdated Homebrew packages
llm:
install *ARGS # install LLM plugins with optional arguments
path # open LLM templates directory in Sublime Text
upgrade # upgrade all installed LLM plugins
macos:
timemachine-boost # boost Time Machine backup speed by increasing IO priority
timemachine-boost-complete # restore normal IO priority after Time Machine backup completes
timemachine-delete *ARGS # delete specific Time Machine backups
timemachine-list # list all Time Machine backups
xcode-bootstrap # install Xcode command line tools
xcode-upgrade # upgrade Xcode command line tools by removing and reinstalling
ollama:
copy-plist # copy custom ollama plist file to homebrew directory
diff-plist # compare local ollama plist with installed version
download # download various ollama models (- prefix makes failures non-fatal)
getenv # display ollama environment variables from launchctl
list # list all downloaded ollama models
serve *ARGS # serve ollama in a tandem process with optional arguments
setenv # set ollama environment variables in launchctl
pyenv:
upgrade +ARGS="--skip-existing" # upgrade python and update pyenv configuration
upgrade-all +ARGS="--skip-existing" # install or upgrade all python versions managed by pyenv
python:
bootstrap # bootstrap python environment with essential packages
outdated # list outdated Python packages
pip-install *ARGS # install python packages using uv pip installer
pip-uninstall *ARGS # uninstall python packages using uv pip installer
update # update python environment and pyenv settings
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
virtualenv:
scan # scan virtualenvs and display their python versions
upgrade # upgrade pip in all virtualenvs
workon # list all virtualenvs with their python and pip versions
virtualenvwrapper:
get_env_details # virtualenvwrapper hook for getting environment details
initialize # virtualenvwrapper hook for environment initialization
postactivate # virtualenvwrapper hook that runs after environment activation
postdeactivate # virtualenvwrapper hook that runs after environment deactivation
postmkproject # virtualenvwrapper hook that runs after creating a project
postmkvirtualenv # virtualenvwrapper hook that runs after creating a virtualenv
postrmproject # virtualenvwrapper hook that runs after removing a project
postrmvirtualenv # virtualenvwrapper hook that runs after removing a virtualenv
preactivate # virtualenvwrapper hook that runs before environment activation
predeactivate # virtualenvwrapper hook that runs before environment deactivation
premkproject # virtualenvwrapper hook that runs before creating a project
premkvirtualenv # virtualenvwrapper hook that runs before creating a virtualenv
prermproject # virtualenvwrapper hook that runs before removing a project
prermvirtualenv # virtualenvwrapper hook that runs before removing a virtualenv[database]
postgresql-upgrade # Upgrade PostgreSQL to latest version and migrate databases[golinks]
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[maintenance]
cleanup DAYS="0" # Clean up old Homebrew packages and casks
outdated # List outdated packages from Homebrew and pip
update # Update project to run at its current version
upgrade # Update and upgrade Homebrew packages
upgrade-all # Upgrade all tools (pyenv and mise packages)[services]
restart # Restart Homebrew services
stop # Stop all Homebrew services[setup]
bootstrap # Install and update all dependencies
freeze # Update lockfiles without installing dependencies [alias: lock]
install # Create symlinks for dotfiles using homesick[utils]
fmt # Format and overwrite justfile
update-brewfile # Update Brewfile from cog template
update-readme-docs # Update README.md docs using cog
```## 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][dracula] Dark theme for iTerm and 294+ apps.
## Inspiration / Thank you!
- [The Geeky Way: What are dotfiles?](http://www.thegeekyway.com/what-are-dotfiles/)
- https://github.com/epicserve/dotfiles
- https://github.com/geerlingguy/mac-dev-playbook
- https://github.com/JohnColvin/.maid/blob/master/rules.rb
- https://github.com/mathiasbynens/dotfiles/blob/master/.osx
- https://github.com/mitchty/src/blob/master/dotfiles/maid/rules.rb
- http://blog.palcu.ro/2014/06/dotfiles-and-dev-tools-provisioned-by.html[alfred-powerpack]: https://www.alfredapp.com/powerpack/
[alfred]: https://www.alfredapp.com/
[direnv]: https://direnv.net/
[dracula]: https://draculatheme.com/iterm
[espanso]: https://espanso.org/
[hammerspoon]: http://www.hammerspoon.org/
[homebrew]: http://brew.sh/
[homesick]: https://github.com/technicalpickles/homesick
[modd]: https://github.com/cortesi/modd
[pip]: https://pip.pypa.io/en/latest/
[pyenv]: https://github.com/yyuu/pyenv
[starship]: https://starship.rs/
[uv]: https://github.com/astral-sh/uv## 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.
[](https://github.com/jefftriplett)
[](https://jefftriplett.com/)
[](https://twitter.com/webology)
[](https://hub.docker.com/u/jefftriplett/)