{"id":15633642,"url":"https://github.com/sloria/dotfiles","last_synced_at":"2025-04-04T08:05:19.043Z","repository":{"id":19788344,"uuid":"23047513","full_name":"sloria/dotfiles","owner":"sloria","description":"sloria's dotfiles as Ansible roles","archived":false,"fork":false,"pushed_at":"2025-03-27T17:24:54.000Z","size":5400,"stargazers_count":155,"open_issues_count":0,"forks_count":69,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-27T18:29:37.577Z","etag":null,"topics":["ansible","dotfiles","git","homebrew","prezto","python","shell","tmux","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sloria.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2014-08-17T18:40:40.000Z","updated_at":"2025-03-27T17:24:57.000Z","dependencies_parsed_at":"2023-11-27T16:56:33.773Z","dependency_job_id":"95e446d2-523d-42c8-baf8-b6d4ddc2d49e","html_url":"https://github.com/sloria/dotfiles","commit_stats":{"total_commits":741,"total_committers":6,"mean_commits":123.5,"dds":0.01754385964912286,"last_synced_commit":"fb279a1b7f319bdd8e7d4da2ccd07c1635ccbcb9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sloria%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sloria%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sloria%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sloria%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sloria","download_url":"https://codeload.github.com/sloria/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142049,"owners_count":20890652,"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","dotfiles","git","homebrew","prezto","python","shell","tmux","vim","zsh"],"created_at":"2024-10-03T10:49:47.622Z","updated_at":"2025-04-04T08:05:19.016Z","avatar_url":"https://github.com/sloria.png","language":"Shell","funding_links":[],"categories":["Example dotfiles repos"],"sub_categories":["Ansible"],"readme":"# dotfiles\n\n[sloria's dotfiles](https://github.com/sloria/dotfiles-old), rewritten as Ansible roles. Sets up a full local development environment with a **single command.**\n\n**As of 2025, this repo only supports macOS.** There's still remnants of Red Hat and Debian support, but they are not maintained.\n\n## a few neat features\n\n- zsh configured with [prezto](https://github.com/sorin-ionescu/prezto).\n- nice fonts for the terminal and coding.\n- python managed with [uv](https://docs.astral.sh/uv/)\n- vim with [vim-plug](https://github.com/junegunn/vim-plug) for plugin management. All configuration in a single file [.vimrc](https://github.com/sloria/dotfiles/blob/master/roles/vim/files/vimrc).\n- pluggable. Everything is optional. Fork this. Remove what you don't use. Configure what you do use.\n- Mac packages installed with [homebrew][]. Mac apps installed with [homebrew cask][] and [mas][].\n- Useful git aliases\n\n## prerequisites\n\n- homebrew (If on macOS) - **Install this first**\n- git: `brew install git`\n- ansible \u003e= 1.6: `brew install ansible`\n\n## install\n\n- [Fork](https://github.com/sloria/dotfiles/fork) this repo.\n- Clone your fork.\n\n```bash\n# Replace git url with your fork\n# NOTE: It is important that you clone to ~/dotfiles\ngit clone https://github.com/YOU/dotfiles.git ~/dotfiles\ncd ~/dotfiles\n```\n\n- Update the following variables in `group_vars/local` (at a minimum)\n  - `full_name`: Your name, which will be attached to commit messages, e.g. \"Steven Loria\"\n  - `git_user`: Your Github username.\n  - `git_email`: Your git email address.\n- Optional, but recommended: Update `group_vars/local` with the programs you want installed by [homebrew][], [homebrew-cask][], and npm.\n  - `mac_homebrew_packages`: Utilities that don't get installed by the roles.\n  - `mac_cask_packages`: Mac Apps you want installed with [homebrew-cask][].\n- Edit `local_env.yml` as you see fit. Remove any roles you don't use. Edit roles that you do use.\n- Run the installation script.\n\n```bash\n./bin/dot-bootstrap\n```\n\n## authenticating with github\n\nYou won't be able to push to repos until you authenticate with GitHub.\nYou can use `gh` for this, which should have been installed by `dot-bootstrap` above.\n\n```\ngh auth login\n```\n\n## updating your local environment\n\nOnce you have the dotfiles installed you can run the following command to rerun the ansible playbook:\n\n```bash\ndot-update\n```\n\nYou can optionally pass role names\n\n```bash\ndot-update git python\n```\n\n## updating your dotfiles repo\n\nTo keep your fork up to date with the `sloria` fork:\n\n```\ngit remote add sloria https://github.com/sloria/dotfiles.git\ngit pull sloria master\n```\n\n## commands\n\nThere are three main commands in the `bin` directory for setting up and updating development environments:\n\n- `dot-bootstrap`: sets up local environment by executing all roles in `local_env.yml`.\n- `dot-update`: updates local environment by executing all roles in `local_env.yml` except for the ones tagged with \"bootstrap\".\n\n## special files\n\nAll configuration is done in `~/dotfiles`. Each role may contain (in addition to the typical ansible directories and files) a number of special files\n\n- **role/\\*.zsh**: Any files ending in `.zsh` get loaded into your environment.\n- **bin/**: Anything in `bin/` will get added to your `$PATH` and be made available everywhere.\n\n## notes\n\n**vscode**\n\nUse built-in Settings Sync to sync VSCode settings.\n\n**macOS keyboard settings**\n\nThere are a few keyboard customizations that must be done manually:\n\n- System Settings \u003e Keyboard \u003e Turn \"Key repeat rate\" and \"Delay until repeat\" to their highest settings.\n\n![Keyboard settings](https://github.com/user-attachments/assets/0c0e9ed6-3e5b-4996-b1e0-4aa4e9de3725 \"Key repeat settings\")\n\n- System Settings \u003e Keyboard \u003e Keyboard Shortcuts \u003e Modifier Keys \u003e Change Caps Lock key to Control.\n\n![Modifier keys](https://github.com/user-attachments/assets/79a883cd-9eec-472e-bdb6-0b4c2efeea9d)\n\n**mac mini**\n\nI also use this repo to configure my Mac Mini server which I have running in headless mode. My setup is documented in [docs/MAC_MINI.md](docs/MAC_MINI.md).\n\n## what if I only want your vim?\n\nFirst make sure you have a sane vim compiled. On macOS, the following will do:\n\n```\nbrew install vim\n```\n\nThe following commands will install vim-plug and download my `.vimrc`.\n\nAfter backing up your `~/.vim` directory and `~/.vimrc`:\n\n```\nmkdir -p ~/.vim/autoload\ncurl -fLo ~/.vim/autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim\ncurl -fLo ~/.vimrc https://raw.githubusercontent.com/sloria/dotfiles/master/roles/vim/files/vimrc\n```\n\nYou will now be able to open vim and run `:PlugInstall` to install all plugins.\n\n## troubleshooting\n\nIf you get an error about Xcode command-line tools, you may need to run\n\n```\nsudo xcode-select -s /Applications/Xcode.app/Contents/Developer\n```\n\n[homebrew]: http://brew.sh/\n[homebrew-cask]: https://github.com/caskroom/homebrew-cask\n[mas]: https://github.com/mas-cli/mas\n\n## license\n\n[MIT Licensed](http://sloria.mit-license.org/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsloria%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsloria%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsloria%2Fdotfiles/lists"}