- Standardize array and vector formatting for clarity. - Adjust spacing and indentation in examples and TUI code. - Ensure proper newline usage across files (e.g., LICENSE, TOML files, etc.). - Simplify `.to_string()` and `.ok()` calls for brevity.
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:
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:
- Hex RGB:
#rrggbb(e.g.,#ff0000for red,#ff8800for orange) - 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
- Basic:
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:
- Copy one of these files to
~/.config/owlen/themes/ - Rename and modify the colors
- Set
theme = "your-theme-name"in~/.config/owlen/config.toml - Or use
:theme your-theme-namein 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.