# CLAUDE.md

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

## Overview

This is a Waybar configuration for the Niri Wayland compositor. Waybar is a status bar that displays system information (CPU, memory, battery, network, etc.) and workspace indicators.

## Architecture

### Configuration Files
- `config.jsonc` - Primary Waybar configuration (modules, layout, icons, click actions)
- `config_2.jsonc` - Alternative configuration variant with different module arrangement

### Theming System
The styling uses a layered CSS approach with theme variable support:

1. `theme.css` - Symlink pointing to the active theme in `themes/`
2. `themes/*.css` - Theme definitions (catppuccin-mocha, rose-pine-moon) that define `@define-color` variables
3. `colors.css` - Utility classes that map theme variables to CSS classes (`.red`, `.blue`, `.base`, etc.)
4. `style.css` - Main styling that uses `@theme_*` GTK variables and custom theme colors

**Theme switching**: Change the `theme.css` symlink to point to a different theme file in `themes/`.

### Module Layout
The bar uses three sections:
- **Left**: Logo/launcher, system monitors (CPU, memory), bluetooth
- **Center**: Workspace indicators (niri/workspaces)
- **Right**: Tray, power profiles, audio, network, battery, clock, power button

## Key Patterns

- Icons use Nerd Font glyphs wrapped in `<span font='14'>` for sizing
- Click handlers launch external tools: `wofi` (launcher), `wlogout` (power menu), `pavucontrol` (audio), `blueman-manager` (bluetooth)
- CSS uses `alpha()` function for transparency and `@theme_*` GTK theme integration
- Module styling uses consistent `border-radius: 20px` pill shapes with `5px 15px` padding
