Public Ansible-managed dotfiles and workstation setup.
This repo is meant to work on its own, while also staying usable as an upstream layer for a private or client-specific wrapper repo.
- Install the required Ansible collections:
ansible-galaxy collection install -r collections/requirements.yml- Run the default profile:
ansible-playbook main.ymlThe root main.yml currently defaults to the hyprland profile.
main.yml: friendly default entrypoint, currently equivalent to the publichyprlandpath.playbooks/main.yml: orchestration engine; loads base vars, selected profile vars, then runs the role graph.playbooks/desktop-wayland.yml: general GUI + Wayland baseline without compositor-specific ownership.playbooks/hyprland.yml: Hyprland-focused desktop path.playbooks/macos.yml: reusable public macOS baseline.
Public profiles live under vars/profiles/.
base: mostly neutral defaults for direct engine usage.desktop-wayland: GUI baseline.hyprland: default desktop profile.macos: public macOS baseline.custom: intentionally empty so downstream repos can define the full profile themselves.
Run a specific public scenario directly:
ansible-playbook playbooks/hyprland.yml
ansible-playbook playbooks/macos.ymlDrive the engine directly with a custom profile:
ansible-playbook playbooks/main.yml -e dotfiles_profile=customFor inline role-only iteration examples such as nvim or python_dev on a remote test machine, see docs/ansible-patterns.md.
Private or client-specific repos are expected to import one of the public playbooks and override globals or role toggles there.
The intended contract is:
- public repo provides reusable roles and a small set of archetypal profiles
- downstream repo overrides vars, enables/disables roles, and carries secrets or client-specific notes
dotfiles_profile=customis the escape hatch when the full profile should live downstream
See custom_profile_templates/ for copyable downstream starting points for:
hyprlandmacos- fully downstream-owned
custom
More detail lives in docs/playbook-interface.md.