{"id":13942169,"url":"https://github.com/jefftriplett/dotfiles","last_synced_at":"2025-04-29T06:30:38.053Z","repository":{"id":11452572,"uuid":"13913435","full_name":"jefftriplett/dotfiles","owner":"jefftriplett","description":":hammer: My dotfiles for setting up my Macs with Ansible","archived":false,"fork":false,"pushed_at":"2024-10-24T02:13:56.000Z","size":2068,"stargazers_count":50,"open_issues_count":1,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-24T18:47:31.764Z","etag":null,"topics":["ansible","automation","development-environment","dotfiles","homebrew","mac","macos","pipsi","playbook","python","setup","shell"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jefftriplett.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-10-28T00:51:51.000Z","updated_at":"2024-10-24T02:14:00.000Z","dependencies_parsed_at":"2024-03-18T17:02:58.823Z","dependency_job_id":"e44b21e0-7a16-4dbc-affa-00226aeceede","html_url":"https://github.com/jefftriplett/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jefftriplett%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jefftriplett%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jefftriplett%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jefftriplett%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jefftriplett","download_url":"https://codeload.github.com/jefftriplett/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224151589,"owners_count":17264529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","automation","development-environment","dotfiles","homebrew","mac","macos","pipsi","playbook","python","setup","shell"],"created_at":"2024-08-08T02:01:43.983Z","updated_at":"2025-04-29T06:30:38.046Z","avatar_url":"https://github.com/jefftriplett.png","language":"Lua","readme":"# My Dotfiles\n\nThese are my personal dotfiles for macOS development environments. They provide a consistent setup across machines with automated configuration.\n\n## Key Tools\n\n### CLI\n\n- [direnv][direnv]: Securely loads or unloads environment variables depending on the current directory\n- [Homebrew][homebrew]: Package management for macOS\n- [Homesick][homesick]: Manages dotfiles with Git and symlinks\n- [Just](https://github.com/casey/just): 🤖 Command runner for project-specific tasks\n- [Starship][starship]: Minimal, blazing-fast, and customizable prompt for any shell\n\n### GUI\n\n- [Alfred][alfred]: Productivity tool with [Alfred Powerpack][alfred-powerpack]\n- [Hammerspoon][hammerspoon]: macOS automation tool (tiling windows manager)\n\n### Python Environment\n\n- [pip][pip]: PyPA recommended tool for installing Python packages\n- [pyenv][pyenv]: Simple Python version management\n- [uv][uv]: Fast Python package installer and resolver, written in Rust\n\n## Installation\n\n1. Install Homesick:\n   ```shell\n   $ gem install homesick\n   ```\n\n2. Clone this repository:\n   ```shell\n   $ homesick clone jefftriplett/dotfiles\n   ```\n\n3. Create the symlinks:\n   ```shell\n   $ homesick symlink dotfiles\n   ```\n\n4. Bootstrap the environment:\n   ```shell\n   $ just bootstrap\n   ```\n\n# Justfile Usage\n\n\u003c!-- [[[cog\nfrom scripts.run_command import run\nrun(\"just --justfile=./home/justfile --list --list-submodules\", with_console=True)\n]]] --\u003e\n\n```shell\n$ just --justfile=./home/justfile --list --list-submodules\n\nAvailable recipes:\n    claude:\n        config  # open Claude Desktop configuration file in Sublime Text\n        upgrade # update Claude Code CLI to the latest version\n    homebrew:\n        cleanup DAYS=\"0\" # clean up old Homebrew packages and cache\n        freeze           # freeze current Homebrew packages to Brewfile\n        outdated         # list outdated Homebrew packages\n        services         # list all Homebrew services\n        services-restart # restart all running Homebrew services\n        services-stop    # stop specific Homebrew services (with non-fatal errors)\n        update           # update Homebrew package database\n        upgrade          # upgrade all outdated Homebrew packages\n    llm:\n        install *ARGS # install LLM plugins with optional arguments\n        path          # open LLM templates directory in Sublime Text\n        upgrade       # upgrade all installed LLM plugins\n    macos:\n        timemachine-boost          # boost Time Machine backup speed by increasing IO priority\n        timemachine-boost-complete # restore normal IO priority after Time Machine backup completes\n        timemachine-delete *ARGS   # delete specific Time Machine backups\n        timemachine-list           # list all Time Machine backups\n        xcode-bootstrap            # install Xcode command line tools\n        xcode-upgrade              # upgrade Xcode command line tools by removing and reinstalling\n    ollama:\n        copy-plist  # copy custom ollama plist file to homebrew directory\n        diff-plist  # compare local ollama plist with installed version\n        download    # download various ollama models (- prefix makes failures non-fatal)\n        getenv      # display ollama environment variables from launchctl\n        list        # list all downloaded ollama models\n        serve *ARGS # serve ollama in a tandem process with optional arguments\n        setenv      # set ollama environment variables in launchctl\n    pyenv:\n        upgrade +ARGS=\"--skip-existing\"     # upgrade python and update pyenv configuration\n        upgrade-all +ARGS=\"--skip-existing\" # install or upgrade all python versions managed by pyenv\n    python:\n        bootstrap                 # bootstrap python environment with essential packages\n        outdated                  # list outdated Python packages\n        pip-install *ARGS         # install python packages using uv pip installer\n        pip-uninstall *ARGS       # uninstall python packages using uv pip installer\n        update                    # update python environment and pyenv settings\n        uv-python-install *ARGS   # install python versions using uv installer\n        uv-python-reinstall *ARGS # reinstall python versions using uv installer\n        uv-tool-install *ARGS     # install common python CLI tools using uv installer\n    virtualenv:\n        scan    # scan virtualenvs and display their python versions\n        upgrade # upgrade pip in all virtualenvs\n        workon  # list all virtualenvs with their python and pip versions\n    virtualenvwrapper:\n        get_env_details  # virtualenvwrapper hook for getting environment details\n        initialize       # virtualenvwrapper hook for environment initialization\n        postactivate     # virtualenvwrapper hook that runs after environment activation\n        postdeactivate   # virtualenvwrapper hook that runs after environment deactivation\n        postmkproject    # virtualenvwrapper hook that runs after creating a project\n        postmkvirtualenv # virtualenvwrapper hook that runs after creating a virtualenv\n        postrmproject    # virtualenvwrapper hook that runs after removing a project\n        postrmvirtualenv # virtualenvwrapper hook that runs after removing a virtualenv\n        preactivate      # virtualenvwrapper hook that runs before environment activation\n        predeactivate    # virtualenvwrapper hook that runs before environment deactivation\n        premkproject     # virtualenvwrapper hook that runs before creating a project\n        premkvirtualenv  # virtualenvwrapper hook that runs before creating a virtualenv\n        prermproject     # virtualenvwrapper hook that runs before removing a project\n        prermvirtualenv  # virtualenvwrapper hook that runs before removing a virtualenv\n\n    [database]\n    postgresql-upgrade # Upgrade PostgreSQL to latest version and migrate databases\n\n    [golinks]\n    open-docs          # Open documentation in browser using Tailscale/golinks\n    open-go            # Open Tailscale/golinks homepage\n    open-ha            # Open Home Assistant interface in browser\n    open-syncthing     # Open Syncthing interface in browser\n\n    [maintenance]\n    cleanup DAYS=\"0\"   # Clean up old Homebrew packages and casks\n    outdated           # List outdated packages from Homebrew and pip\n    update             # Update project to run at its current version\n    upgrade            # Update and upgrade Homebrew packages\n    upgrade-all        # Upgrade all tools (pyenv and mise packages)\n\n    [services]\n    restart            # Restart Homebrew services\n    stop               # Stop all Homebrew services\n\n    [setup]\n    bootstrap          # Install and update all dependencies\n    freeze             # Update lockfiles without installing dependencies [alias: lock]\n    install            # Create symlinks for dotfiles using homesick\n\n    [utils]\n    fmt                # Format and overwrite justfile\n    update-brewfile    # Update Brewfile from cog template\n    update-readme-docs # Update README.md docs using cog\n```\n\n\u003c!-- [[[end]]] --\u003e\n\n## Hammerspoon Keyboard Shortcuts\n\n| Action                    | Key Combination                                                        |\n| ------------------------- | ---------------------------------------------------------------------- |\n| hyper                     | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003ecmd\u003c/kbd\u003e                      |\n| meta                      | \u003ckbd\u003ecmd\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e                                      |\n| reload config             | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003er\u003c/kbd\u003e                                        |\n| show grid                 | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003eg\u003c/kbd\u003e                                        |\n| make full screen          | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003em\u003c/kbd\u003e                                        |\n| center and 60%            | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e                                        |\n| move to left half         | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003eleft\u003c/kbd\u003e                                     |\n| move to right half        | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003eright\u003c/kbd\u003e                                    |\n| move to top half          | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003eup\u003c/kbd\u003e                                       |\n| move to lower half        | \u003ckbd\u003ehyper\u003c/kbd\u003e + \u003ckbd\u003edown\u003c/kbd\u003e                                     |\n| move to upper left (25%)  | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eleft\u003c/kbd\u003e  |\n| move to upper right (25%) | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eup\u003c/kbd\u003e    |\n| move to lower left (25%)  | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003edown\u003c/kbd\u003e  |\n| move to lower right (25%) | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eright\u003c/kbd\u003e |\n| move to next monitor      | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003eright\u003c/kbd\u003e                    |\n| move to previous monitor  | \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eopt\u003c/kbd\u003e + \u003ckbd\u003eleft\u003c/kbd\u003e                     |\n\n## Terminal theme\n\n- [Dracula][dracula] Dark theme for iTerm and 294+ apps.\n\n## Inspiration / Thank you!\n\n- [The Geeky Way: What are dotfiles?](http://www.thegeekyway.com/what-are-dotfiles/)\n- https://github.com/epicserve/dotfiles\n- https://github.com/geerlingguy/mac-dev-playbook\n- https://github.com/JohnColvin/.maid/blob/master/rules.rb\n- https://github.com/mathiasbynens/dotfiles/blob/master/.osx\n- https://github.com/mitchty/src/blob/master/dotfiles/maid/rules.rb\n- http://blog.palcu.ro/2014/06/dotfiles-and-dev-tools-provisioned-by.html\n\n[alfred-powerpack]: https://www.alfredapp.com/powerpack/\n[alfred]: https://www.alfredapp.com/\n[direnv]: https://direnv.net/\n[dracula]: https://draculatheme.com/iterm\n[espanso]: https://espanso.org/\n[hammerspoon]: http://www.hammerspoon.org/\n[homebrew]: http://brew.sh/\n[homesick]: https://github.com/technicalpickles/homesick\n[modd]: https://github.com/cortesi/modd\n[pip]: https://pip.pypa.io/en/latest/\n[pyenv]: https://github.com/yyuu/pyenv\n[starship]: https://starship.rs/\n[uv]: https://github.com/astral-sh/uv\n\n## Contact / Social Media\n\nHere are a few ways to keep up with me online. If you have a question about this project, please consider opening a GitHub Issue.\n\n[![](https://jefftriplett.com/assets/images/social/github.png)](https://github.com/jefftriplett)\n[![](https://jefftriplett.com/assets/images/social/globe.png)](https://jefftriplett.com/)\n[![](https://jefftriplett.com/assets/images/social/twitter.png)](https://twitter.com/webology)\n[![](https://jefftriplett.com/assets/images/social/docker.png)](https://hub.docker.com/u/jefftriplett/)\n","funding_links":[],"categories":["Lua"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjefftriplett%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjefftriplett%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjefftriplett%2Fdotfiles/lists"}