85 lines
3.5 KiB
Markdown
85 lines
3.5 KiB
Markdown
# 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`. |