Themes

Customize lla's appearance with themes.

Themes

Customize colors and styles using TOML theme files.

theme

Theme Organization

Themes live in ~/.config/lla/themes/ with a .toml extension:

~/.config/lla/themes/
├── dark.toml
├── light.toml
├── poimandres.toml
└── custom.toml

Themes Installation

Pull built-in themes:

lla theme pull # pull all builtin themes

Install custom themes:

lla theme install /path/to/theme.toml
# or a directory with multiple themes
lla theme install /path/to/themes/

Theme Architecture

Each theme has these sections:

# Theme metadata
name = "my_theme"
author = "Your Name"
description = "A description of your theme"
 
# Core colors for basic elements
[colors]
file = "#FFFFFF"
directory = "#89AFFF"
...
 
# Special file rules
[special_files]
...
 
# Extension-based colors
[extensions]
...

Color Expression

Define colors in several ways:

[colors]
# 1. Named Colors (Basic terminal colors)
file = "white"
directory = "blue"
symlink = "bright_cyan"
 
# 2. RGB Format
file = { r = 255, g = 255, b = 255 }
directory = { r = 81, g = 154, b = 255 }
 
# 3. Hex Format
file = "#FFFFFF"              # 6-digit hex
directory = "#89F"           # 3-digit hex
symlink = "#89DBFFFF"       # 8-digit hex (alpha ignored)
 
# 4. HSL Format (h: 0-360, s: 0-1, l: 0-1)
directory = { h = 180, s = 0.5, l = 0.6 }
 
# 5. No Color
disabled = "none"

Available Named Colors

Basic:

  • black, red, green, yellow, blue, magenta, cyan, white

Bright variants:

  • bright_black (or gray/grey)
  • bright_red, bright_green, bright_yellow
  • bright_blue, bright_magenta, bright_cyan, bright_white

Additional:

  • navy, teal, maroon, purple, olive, silver

Core Elements

Core UI colors:

[colors]
# Core UI Elements
file = "#FFFFFF"        # Regular files
directory = "#89AFFF"   # Directories
symlink = "#89DBFF"     # Symbolic links
executable = "#5DE4B3"  # Executable files
 
# Metadata
size = "#5DE4B3"       # File sizes
date = "#FCBCFA"       # Timestamps
user = "#D0679D"       # User names
group = "#8A9092"      # Group names
 
# Permissions
permission_dir = "#89AFFF"   # Directory permission
permission_read = "#5DE4B3"  # Read permission
permission_write = "#FFFFC2" # Write permission
permission_exec = "#D0679D"  # Execute permission
permission_none = "#282E30"  # No permission

Special File Handling

Rules for specific files and patterns:

1. Custom Folders

[special_files.folders]
# Exact folder names
"node_modules" = "#666666"  # Dim gray for node modules
"target" = "#444444"        # Dark gray for build outputs
".git" = "#FF6B6B"          # Red for git directory
 
# Folder patterns
"build*" = "#444444"        # Any folder starting with "build"
"*.cache" = "#666666"       # Any folder ending with ".cache"
"*-env" = "#5DE4B3"        # Any folder ending with "-env"

2. Dotfiles

[special_files.dotfiles]
".gitignore" = "#89DBFF"
".env" = "#FFFFC2"
".dockerignore" = "#89DBFF"

3. Exact Matches

[special_files.exact_match]
"Dockerfile" = "#89DBFF"
"Makefile" = "#D0679D"
"README.md" = "#FFFFC2"

4. Pattern Matches

[special_files.patterns]
"*rc" = "#89DBFF"         # Files ending in "rc"
"*.min.*" = "#282E30"     # Minified files
"*.test.*" = "#5DE4B3"    # Test files

Extension System

Group related file types:

1. Extension Groups

[extensions.groups]
# Group multiple extensions
rust = ["rs", "toml"]
web = ["html", "css", "js"]
docs = ["md", "rst", "txt"]
 
# Define colors for groups
[extensions.colors]
rust = "#FF5733"    # All rust-related files
web = "#61AFEF"     # All web files
docs = "#98C379"    # All documentation files
 
# Override specific extensions
rs = "#FF0000"      # Override just .rs files

Color Resolution Logic

Color priority:

  1. For Directories:

    • Exact folder name match
    • Folder pattern match
    • Default directory color
  2. For Files:

    • Exact filename match
    • Dotfile match
    • Pattern match
    • Extension-specific color
    • Extension group color
    • Default file color

Built-in Theme Collection

Included themes:

  • default: Traditional terminal colors with carefully selected colors for optimal visibility
  • dark: Modern dark theme with enhanced visibility and rich colors for dark terminals
  • light: Clean theme optimized for light terminals with maximum readability
  • ayu_dark: Dark theme inspired by the Ayu Dark color scheme, featuring deep backgrounds and vibrant accents
  • ayu_light: Light theme with carefully selected colors for optimal readability
  • ayu_mirage: Refined dark theme with muted colors and soft contrasts
  • catppuccin_mocha: A soothing pastel theme for the high-spirited, featuring warm, cozy colors
  • circuit_dreams: A theme inspired by vintage circuit boards and electronic components, featuring copper traces, solder joints, and LED indicators
  • cosmic_night: A sophisticated dark theme with cosmic-inspired colors, featuring deep space blues and nebula accents for comfortable viewing
  • deep_sea: An ocean-inspired theme featuring the colors of marine depths, from sunlit surface waters to bioluminescent deep sea creatures
  • dracula: Classic Dracula color scheme with vibrant colors and high contrast
  • forest_depths: A theme inspired by the depths of an ancient forest at twilight, featuring moss greens, bark browns, and bioluminescent accents
  • gruvbox_dark: Retro groove color scheme with warm, earthy tones and high contrast
  • material_ocean: Deep blue theme based on Material Design, featuring oceanic colors
  • moonlight: A minimal theme with subtle blue-gray tones inspired by moonlit nights
  • neon_dreams: A vibrant cyberpunk theme featuring electric neons and digital gradients, perfect for those who dream in RGB
  • nord: Arctic, north-bluish color palette with elegant pastel colors
  • one_dark: Dark theme inspired by Atom, featuring a perfect balance of cool and warm colors
  • poimandres: Deep space aesthetic with vibrant accents
  • synthwave_84: A retro-computing theme inspired by 1980s aesthetics, vintage terminals, and synthwave music visuals
  • tokyo_night: Dark theme inspired by the vibrant lights of Tokyo at night
  • vesper: Minimalist dark theme with warm accents
  • zen: A minimal monochromatic theme emphasizing simplicity and clarity through subtle shades

Theme Application

Apply a theme (it must exist in ~/.config/lla/themes/):

# In ~/.config/lla/config.toml
theme = "dark"  # Without .toml extension

Or via command line:

# use the lla theme command for an interactive selection
lla theme
 
# or via config
lla config --set theme dark

Disable theming:

lla config --set theme none

No colors:

lla --no-colors # works with all listing commands