Files
myi3/CLAUDE.md
2026-02-14 21:23:19 +01:00

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