This is the second spin on the dotfiles automation with ansible.
Notable changes from v1 is the
application of the vertical slicing for the system components.
A system consists of a bunch of modules that can be composed of ansible roles
(e.g. files, links, systemd services) as opposed to horizontal slicing (an app has its own role).
This allows for using a custom DSL
to define the components, making each module (a bunch of ansible roles)
responsible for a self-sufficient part of the system (e.g. hyprland).
00.48.10_23-08-2025.mp4
Some of the modules are tied specifically to the hardware the software runs on -- Framework 13 with AMD 7840u. Two major things for the battery life enhancements were:
- replacing the default mediatek Wi-Fi card with Intel AX210 non v-pro
- putting in the 120hz screen with VRR
You likely want to use the dots are reference, but here's how the project can be run:
# install asdf to pull python (pyenv) & setup venv
make dev
# debug, no changes applied
make MODE=debug provisioning
# standard bootstrap, installs everything
make provisioning
# apply only one module
# bg is the tag on the module, corresponding to `base packages`
make MODE=debug ONLY_MODULE=bp provisioningTheming is done by piping wallust to matugen, the former being good at terminal coloring while the latter is much better for UI elements, see wallust templates and matugen.
Most eye-candy effects are disabled when on battery by default; there are also static colorschemes in wallust that allow for fewer distractions (there is no wallpaper and the colors are purposedly muted; see screenshots).
The system is heavily tweaked for optimising power consumption (see the power management script module), this applies specifically to the hardware of the laptop so might not be transferable. With light usage (coding and browsing) pulls on average 8-10h of time on battery, idle is in the ballpark of 15h, video playback ~6-8h.
| Task | Draw | Notes |
|---|---|---|
| idle | 3.5W | wifi on, bluetooth off, 60hz vrr |
| light | 4-8W | firefox browsing, tmux + nvim, 60hz vrr |
| video | 7-10W | 720p 60fps ff video with hardware acc |