45 lines
2.0 KiB
Markdown
45 lines
2.0 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
Ansible playbook project that automates the installation and configuration of a personalized i3 window manager desktop environment across multiple Linux distributions (Arch/Manjaro, Fedora, Ubuntu/Debian).
|
|
|
|
## Running the Playbook
|
|
|
|
```bash
|
|
ansible-playbook -i inventory setup.yaml
|
|
```
|
|
|
|
**Important:** The username in `setup.yaml` (variable `myuser`) must be changed from the default `venkatn` to the actual user before running.
|
|
|
|
**Prerequisites by distribution:**
|
|
- Arch/Manjaro: `sudo pacman -S ansible i3`
|
|
- Fedora: `sudo dnf install ansible`
|
|
- Ubuntu: `sudo apt install git ansible python curl i3`
|
|
|
|
## Architecture
|
|
|
|
**`setup.yaml`** is the main entry point. It runs against localhost with sudo and conditionally loads tasks based on the detected OS family (`ansible_os_family`).
|
|
|
|
### Task Flow
|
|
|
|
1. **Distribution-specific package installation** — one task file per distro family:
|
|
- `tasks/configure-software-manjaro.yaml` (Arch Linux)
|
|
- `tasks/configure-software-ubuntu.yaml` (Debian)
|
|
- `tasks/configure-software-fedora.yaml` (RedHat)
|
|
2. **`tasks/configure-user.yaml`** — sudoers config, tmux config, wallpaper, `~/opt/scripts` directory
|
|
3. **`tasks/configure-i3.yaml`** — deploys all i3 configs, status bar scripts, and system-wide scripts (i3exit, blurlock)
|
|
|
|
### Configuration Files (`files/configs/`)
|
|
|
|
- `i3/i3/config` — main i3 window manager configuration
|
|
- `i3/config/picom.conf` — compositor settings
|
|
- `i3/config/dunst/dunstrc` — notification daemon
|
|
- `i3/config/rofi/config.rasi` — application launcher
|
|
- `i3/config/i3blocks/config` — status bar configuration
|
|
- `i3/myi3blocks/` — custom bash scripts for i3blocks status bar segments (memory, load, weather, date, battery, temp)
|
|
- `misc-scripts/i3exit` — system exit actions (lock, logout, suspend, hibernate, reboot, shutdown) using systemctl
|
|
- `misc-scripts/blurlock` — blurred lock screen script using i3lock
|