# OWLEN Built-in Themes This directory contains the built-in themes that are embedded into the OWLEN binary. ## Available Themes - **default_dark** - High-contrast dark theme (default) - **default_light** - Clean light theme - **gruvbox** - Popular retro color scheme with warm tones - **dracula** - Dark theme with vibrant purple and cyan colors - **solarized** - Precision colors for optimal readability - **midnight-ocean** - Deep blue oceanic theme - **rose-pine** - Soho vibes with muted pastels - **monokai** - Classic code editor theme - **material-dark** - Google's Material Design dark variant - **material-light** - Google's Material Design light variant ## Theme File Format Each theme is defined in TOML format with the following structure: ```toml name = "theme-name" # Text colors text = "#ffffff" # Main text color placeholder = "#808080" # Placeholder/muted text # Background colors background = "#000000" # Main background command_bar_background = "#111111" status_background = "#111111" # Border colors focused_panel_border = "#ff00ff" # Active panel border unfocused_panel_border = "#800080" # Inactive panel border # Message role colors user_message_role = "#00ffff" # User messages assistant_message_role = "#ffff00" # Assistant messages thinking_panel_title = "#ff00ff" # Thinking panel title # Mode indicator colors (status bar) mode_normal = "#00ffff" mode_editing = "#00ff00" mode_model_selection = "#ffff00" mode_provider_selection = "#00ffff" mode_help = "#ff00ff" mode_visual = "#ff0080" mode_command = "#ffff00" # Selection and cursor selection_bg = "#0000ff" # Selection background selection_fg = "#ffffff" # Selection foreground cursor = "#ff0080" # Cursor color # Status colors error = "#ff0000" # Error messages info = "#00ff00" # Info/success messages ``` ## Color Format Colors can be specified in two formats: 1. **Hex RGB**: `#rrggbb` (e.g., `#ff0000` for red, `#ff8800` for orange) 2. **Named colors** (case-insensitive): - **Basic**: `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white` - **Gray variants**: `gray`, `grey`, `darkgray`, `darkgrey` - **Light variants**: `lightred`, `lightgreen`, `lightyellow`, `lightblue`, `lightmagenta`, `lightcyan` **Note**: For colors not in the named list (like orange, purple, brown), use hex RGB format. OWLEN will display an error message on startup if a custom theme has invalid colors. ## Creating Custom Themes To create your own theme: 1. Copy one of these files to `~/.config/owlen/themes/` 2. Rename and modify the colors 3. Set `theme = "your-theme-name"` in `~/.config/owlen/config.toml` 4. Or use `:theme your-theme-name` in OWLEN to switch ## Embedding in Binary These theme files are embedded into the OWLEN binary at compile time using Rust's `include_str!()` macro. This ensures they're always available, even if the files are deleted from disk. Custom themes placed in `~/.config/owlen/themes/` will override built-in themes with the same name.