# dotfiles v2

This is the continuation of [my old dotfiles](/folliehiyuki/dotfiles) without all the Xorg stuff I don't use.

## 🧰 Usage

```bash
# Install non-core Ansible modules if only ansible-core package is installed
ansible-galaxy collection install -r requirements/collections.yml

# Create an encrypted vars file to store secret variables
# (see "Variables" section below)
mkdir -p host_vars/$HOSTNAME
touch host_vars/$HOSTNAME/secrets.yml
ansible-vault encrypt host_vars/$HOSTNAME/secrets.yml
ansible-vault edit host_vars/$HOSTNAME/secrets.yml

# Run the playbook
ansible-playbook playbooks/system.yml
ansible-playbook playbooks/dotfiles.yml
```

## Variables

Beside variables defined in [group_vars/all/](./group_vars/all), these are also available:
- `vault_password` (required): the password of the created user (used by [system.yml](./playbooks/system.yml) playbook)
- `pixiv_refresh_token`: in-browser refresh token used in gallery-dl to access Pixiv
- `google_calendar_id`, `google_oauth_client_id`, `google_oauth_client_secret`: used in calcurse CalDAV config
- `user_ssh_key_path`: configure Git to sign commits with this SSH key

## Playbooks

- [system.yml](./playbooks/system.yml) should be the first to be run. Needs to be run as `root`.
- [dotfiles.yml](./playbooks/dotfiles.yml) configures `$HOME` directory.
- [extend.yml](./playbooks/extend.yml) contains additional tasks unrelated to dotfiles and system deployment, but useful (for me).

## 📓 Notes

The playbooks gear toward my Linux distribution of choice - [Alpine Linux](https://alpinelinux.org). Tasks included in them might not work on other distributions (e.g. `apk` tasks)

## 🌟 Credits

- [eoli3n/dotfiles](https://github.com/eoli3n/dotfiles)
- [samhh/dotfiles](https://github.com/samhh/dotfiles)
- [zsugabubus/dotfiles](https://github.com/zsugabubus/dotfiles)
- [sircmpwn/dotfiles](https://git.sr.ht/~sircmpwn/dotfiles)
- [rjarry/dotfiles](https://git.sr.ht/~rjarry/dotfiles)
- [wangl-cc/dotfiles](https://github.com/wangl-cc/dotfiles)

## 📄 License

MIT
