I am currently running macOS.
Here’s a few examples of my workspace.
- Visible in the screenshot:
- nord colorscheme.
- SauceCodePro Nerd Font (Regular) font.
- neovim, running inside tmux
This whole repository isn’t really intended for anyone’s use but my own, and of course it’s catered to my way of doing things, so, be prepared for that.
Since I’m using evil-mode, I configured vim and emacs to have the same keybindings when possible.
- fzf: fuzzy finder to search for files, strings, or history
color: change terminal and Vim color schemetmux: terminal multiplexer to organize sessionszsh-autosuggestions: suggest previously entered commandszsh-history-substring-search: search previous command by substringzsh-syntax-highlighting: highlighting on zsh
and many more..
- coc.nvim: code completion engine + language server. easy plugin installation
- fzf.vim: fuzzy finder in vim
- nerdtree: tree representation for projects and folders
- vim-fugitive: git client on vim
and many more..
- evil-mode: vim emulation on emacs
- org-mode: must have outliner + planner + life management tool
- magit: git client on emacs
- lsp-mode: lsp support for emacs
- dired-sidebar: dired on sidebar
and many more..
Clone the repo (dotfiles are applied by chezmoi from home/, see .chezmoiroot)
git clone https://github.com/abrampers/dotfiles ~/.dotfiles
⚠️ WARNING: This install method will install every bit of my configuration. In the future, I’ll be supporting customized install method.
This repo uses Ansible to automate installation. Please follow Ansible installation guide to install Ansible.
Install ansible-core for a minimal footprint.
python3 -m pip install --user ansible-core
Install the community.general collection.
ansible-galaxy collection install community.general
Provisioning now lives under ansible/ and the main entry point is ansible/local_machine.yml. Only home/ is deployed as dotfiles (via chezmoi), so provisioning files stay out of your home directory.
ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook ansible/local_machine.yml
This step will get all dependencies only. Dotfiles apply will be handled separately
Use the dedicated playbook to run chezmoi apply.
ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook ansible/chezmoi_apply.yml
If you specifically want the main provisioning playbook to run the same real-apply path, you must opt in with both the dedicated tag and the explicit enablement variables:
ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook ansible/local_machine.yml --tags dotfiles,chezmoi_apply -e dotfiles_chezmoi_apply_enabled=true
That advanced route exists for parity with the dedicated playbook, but the dedicated ansible/chezmoi_apply.yml path is the normal documented cutover command.
Review the full bootstrap before applying it.
ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook ansible/local_machine.yml --check --diff
For the `chezmoi` migration path, this is also where you review the saved baseline and the chezmoi apply --dry-run --verbose output. The real apply step remains opt-in and outside the default local-machine workflow for now.
Run just one role slice by tag when you only want to inspect or apply a subset.
ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook ansible/local_machine.yml --tags dotfiles
To find the available role tags, inspect ansible/local_machine.yml.

