{"id":13343248,"url":"https://github.com/andreoliwa/dotfiles","last_synced_at":"2025-03-12T04:32:57.421Z","repository":{"id":49947487,"uuid":"85198043","full_name":"andreoliwa/dotfiles","owner":"andreoliwa","description":"Ansible playbook to setup a similar dev machine in multiple operating systems","archived":false,"fork":true,"pushed_at":"2025-02-28T22:46:12.000Z","size":6843,"stargazers_count":2,"open_issues_count":9,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-01T00:35:45.050Z","etag":null,"topics":["ansible","dev-machine","dotfiles","git","homebrew","pyenv","python","shell","tmux","vim","xonsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"sloria/dotfiles","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreoliwa.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}},"created_at":"2017-03-16T13:18:31.000Z","updated_at":"2025-02-28T22:46:15.000Z","dependencies_parsed_at":"2023-01-29T15:45:17.676Z","dependency_job_id":"ae1bcf27-c648-4d70-89d0-57e20dd01c87","html_url":"https://github.com/andreoliwa/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/andreoliwa%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreoliwa%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreoliwa%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreoliwa%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreoliwa","download_url":"https://codeload.github.com/andreoliwa/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243158974,"owners_count":20245668,"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","dev-machine","dotfiles","git","homebrew","pyenv","python","shell","tmux","vim","xonsh"],"created_at":"2024-07-29T19:30:42.949Z","updated_at":"2025-03-12T04:32:57.104Z","avatar_url":"https://github.com/andreoliwa.png","language":"Shell","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\nFully supports macOS. Red Hat and Debian support is good but not as complete.\n\n## a few neat features\n\n- [xonsh](https://xon.sh) (Python-powered shell)\n- zsh configured with [prezto](https://github.com/sorin-ionescu/prezto).\n- nice fonts for the terminal and coding.\n- iterm2 profile (w/ hotkey, themes, etc.)\n- python2, python3, pyenv (for managing Python versions), and pyenv-virtualenv (for managing virtualenvs)\n- alternative Python configuration with pyenv, pip, virtualenv\n- a tmux.conf that's pretty neat.\n- [tmuxp](https://tmuxp.git-pull.com/en/latest/) for tmux session management\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][].\n- Useful git aliases\n- Optional git commit signing with GPG\n- Preview the setup on Linux machines using Vagrant's virtual machines\n\n## prerequisites (install these first)\n\n- [macOS: upgrade to the latest version possible](https://support.apple.com/macos)\n- HomeBrew: [macOS requirements](https://docs.brew.sh/Installation#macos-requirements) first (e.g.: `xcode-select --install`)\n- [Install HomeBrew](https://brew.sh/)\n- ansible \u003e= 2.4:\n  - macOS: `brew install ansible`;\n  - Linux: [get the latest PPA](http://docs.ansible.com/ansible/latest/intro_installation.html#installing-the-control-machine).\n- Other tools to start working on this repo: `brew install fzf`\n- If you're installing a new computer, copy or create these files/directories:\n  - GPG config: `~/.gnupg/`\n  - Env variables: `~/.config/dotfiles/local.env`, set `export COMPANY_LAPTOP=` variable (set any value on the company laptop)\n  - Ansible Vault password: `~/.config/dotfiles/vault_password.txt`\n\n## install\n\n- [Fork](https://github.com/sloria/dotfiles/fork) this repo.\n- Clone your fork.\n  ```bash\n  # Replace git url with your fork\n  # NOTE: It is important that you clone to ~/dotfiles\n  git clone https://github.com/YOU/dotfiles.git ~/dotfiles\n  cd ~/dotfiles\n  ```\n- Update the following variables in `group_vars/local` (at a minimum)\n  - `git_personal.user_name`: Your name, which will be attached to commit messages, e.g. \"Steven Loria\"\n  - `github_username`: Your Github username.\n  - `git_personal.user_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 `playbook_local.yml` as you see fit. Remove any roles you don't use. Edit roles that you do use.\n- Run the installation script.\n  Comment out private roles (they will fail on first execution).\n  ```bash\n  ~/dotfiles/bin/dotfiles-setup --galaxy --bootstrap\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\ndotfiles-setup\n```\n\nYou can optionally pass role names\n\n```bash\ndotfiles-setup 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## command\n\nThere is a script `dotfiles-setup` in the `bin` directory for setting up and updating development environments:\n\n- bootstrap/updates the local environment\n- install Galaxy roles\n- run Ansible on Vagrant VMs\n\nType `dotfiles-setup -h` to see all possibilities.\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- for xonsh: **role/\\*.xsh**: Any files ending in `.xsh` 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**iterm2**\n\nTo import the iterm2 profile, go to your iterm2 preferences, and enable \"Load preferences from custom folder\" and select the iterm2 folder in the `misc/` directory.\n\n![iterm2 profile](https://user-images.githubusercontent.com/2379650/34223487-859f2752-e58d-11e7-8024-9e6af5c1ec4e.png)\n\n**macOS keyboard settings**\n\nThere are a few keyboard customizations that must be done manually:\n\n- Turning repeat speed up to 11.\n\n![Keyboard settings](https://user-images.githubusercontent.com/2379650/34223505-91f95072-e58d-11e7-9b36-78aec4203b0d.png \"Key repeat settings\")\n\n- Mapping Caps Lock to Ctrl.\n\n![Modifier keys](https://user-images.githubusercontent.com/2379650/34223523-a2c8e4e4-e58d-11e7-9532-d74b95d8408a.png)\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 macvim --HEAD --with-override-system-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## todo\n\n- Full Debian and Red Hat support\n\n[homebrew]: http://brew.sh/\n[homebrew-cask]: https://github.com/caskroom/homebrew-cask\n\n## license\n\n[MIT Licensed](http://sloria.mit-license.org/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreoliwa%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreoliwa%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreoliwa%2Fdotfiles/lists"}