# 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`.