https://github.com/jtmoulia/dotfiles
jtmoulia's layered dotfiles
https://github.com/jtmoulia/dotfiles
ansible-roles arch-linux-configuration dotfiles playbook shell
Last synced: 2 months ago
JSON representation
jtmoulia's layered dotfiles
- Host: GitHub
- URL: https://github.com/jtmoulia/dotfiles
- Owner: jtmoulia
- License: bsd-3-clause
- Created: 2012-10-11T03:15:19.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2026-02-02T20:51:22.000Z (5 months ago)
- Last Synced: 2026-02-03T10:45:37.252Z (5 months ago)
- Topics: ansible-roles, arch-linux-configuration, dotfiles, playbook, shell
- Language: Emacs Lisp
- Homepage:
- Size: 1.41 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dotfiles
My dotfiles. They're organized as ansible roles.
## Prelude
Set your root password to something secure:
```shell
# passwd
```
If you want to create a user account (`jtmoulia` for the sake of history):
```shell
# useradd --create-home -G wheel jtmoulia
# passwd jtmoulia
```
Note: the ansible deploy scripts will ensure that the user is properly configured.
Make sure that you've installed the necessary deps for running `wifi-menu`,
otherwise you won't be able to connect to the network:
```shell
# pacman -S dialog wpa_supplicant
```
Install the Python dependencies via uv:
```shell
# pacman -S python-uv
$ uv sync
```
## Basic Usage
To install everything run:
```shell
uv run bin/dotsible.sh
```
You can use alternate configurations; here it's run with configuration specific to my
Lenovo Flex 4:
```shell
dotsible -p lenovo-flex-4
```
### The `dotsible` executable
The first run will create an executable in your path named `dotsible`, which can
be called instead of `uv run bin/dotsible.sh -p $DOTSIBLE_PLAYBOOK`. The
following examples use this shortcut.
Sometimes you'll want to install only a few roles, say `ssh` and `net-utils`:
```shell
dotsible -t ssh -t net-utils
```
## Roles
Related configurations are organized into [Ansible
roles](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html).
All of the available roles are located under `playbooks/roles/` -- you can list
them by simply running:
```shell
ls playbooks/roles
```
Some roles have documentation under `$ROLE/README.md`.
## Playbooks
A set of roles and variables are organized into [Ansible
playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html).
Typically a playbook is used to define the overall configuration for a target
environment.
The currently available playbooks are:
- `base`: basic roles such as `git`, `bash`, and `tmux`
- `cli`: portable CLI specific configuration
- `lenovo-flex-4`: Arch Linux configuration for a Lenovo Flex 4
- `lenovo-yoga`: Arch Linux configuration for a Lenovo Yoga
- `osx`: OS X on a 2022 MacBook Pro M1 (Monterey)
## Portability
Roles and playbooks were typically designed against Arch Linux. Roles listed in
the `base` or `osx` playbooks will work under OS X.