# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Repository Overview

This is an Arch Linux Hyprland desktop setup automation repository based on [omarchy.org](https://omarchy.org). It provides a comprehensive collection of shell scripts to set up a fresh Arch Linux installation with the Hyprland window manager and various desktop applications.

## Project Structure

### Main Scripts
- `base_install.sh` - The main entry point script (currently empty, but serves as the base installer)
- `scripts/` - Contains all installation and configuration scripts organized by category:
  - `config/` - System configuration scripts (keyboard, network, timezones, etc.)
  - `desktop/` - Desktop environment installation scripts (Hyprland, themes, applications)
  - `aur.sh`, `development.sh`, `firewall.sh`, etc. - Specialized installation scripts

### Theme System
- `themes/` - Contains multiple theme configurations, each including:
  - Color schemes for various applications (alacritty, waybar, mako, etc.)
  - Hyprland configuration files (`hyprland.conf`, `hyprlock.conf`)
  - Background images and icon themes
  - Application-specific styling (CSS, config files)

Available themes: catppuccin, catppuccin-latte, everforest, gruvbox, kanagawa, matte-black, nord, osaka-jade, ristretto, rose-pine, tokyo-night

## Development Commands

This repository consists entirely of shell scripts for system configuration. There are no build, test, or lint commands as this is a collection of installation scripts.

### Running Scripts
```bash
# Make scripts executable
chmod +x script_name.sh

# Run installation scripts
./base_install.sh
./scripts/desktop/hyprlandia.sh
./scripts/desktop/theme.sh
```

## Architecture and Key Components

### Package Management
All scripts use `yay` (AUR helper) for package installation with standard flags:
- `--noconfirm` - Non-interactive installation
- `--needed` - Only install if not already present

### Theme Management System
The theme system uses symlinks to manage active themes:
- Themes are linked from `~/.local/share/omarchy/themes/` to `~/.config/omarchy/themes/`
- Active theme is symlinked to `~/.config/omarchy/current/theme`
- Individual application configs are symlinked from the current theme

### Configuration Approach
- Configurations are copied from `~/.local/share/omarchy/config/` to `~/.config/`
- GPG configurations are set up system-wide in `/etc/gnupg/`
- Git aliases and user information are configured globally
- PAM faillock settings are modified for security

### Key Installation Categories
1. **System Config** - Keyboard layout detection, network setup, timezone configuration
2. **Desktop Environment** - Hyprland compositor and related tools
3. **Applications** - File managers, media players, web browsers
4. **Development Tools** - Available via `development.sh`
5. **Theming** - Comprehensive theme support across all applications

### GPU-Aware Installation
Scripts detect GPU type and install appropriate software:
- NVIDIA GPUs: `wf-recorder` for screen recording
- Other GPUs: `wl-screenrec` for screen recording

## Working with Themes

Each theme directory contains configuration files for:
- Terminal emulator (alacritty)
- Status bar (waybar)  
- Notifications (mako)
- Application launcher (walker)
- Screen locker (hyprlock)
- System monitor (btop)
- Text editor (neovim)
- Volume/brightness OSD (swayosd)

Theme switching is handled through the symlink system managed by `scripts/desktop/theme.sh`.