319 lines
12 KiB
TOML
319 lines
12 KiB
TOML
# Theme Configuration
|
|
[theme]
|
|
# Theme metadata
|
|
name = "Dracula Pro"
|
|
author = "Enhanced Dracula Theme"
|
|
version = "2.0.0"
|
|
description = "A sophisticated dark theme based on Dracula color scheme"
|
|
|
|
# Color palette definition
|
|
[theme.colors]
|
|
background = "#282a36"
|
|
current_line = "#44475a"
|
|
foreground = "#f8f8f2"
|
|
comment = "#6272a4"
|
|
purple = "#bd93f9"
|
|
green = "#50fa7b"
|
|
orange = "#ffb86c"
|
|
red = "#ff5555"
|
|
pink = "#ff79c6"
|
|
cyan = "#8be9fd"
|
|
yellow = "#f1fa8c"
|
|
|
|
# Animation settings
|
|
[theme.animation]
|
|
frames_per_second = 60
|
|
duration = 0.2
|
|
easing = "easeInOutCubic"
|
|
|
|
# Manager
|
|
[manager]
|
|
# Enhanced preview options
|
|
preview = { tab_size = 2, max_width = 100, max_height = 50, cache_size = 50, scroll_offset = 5 }
|
|
preview_ratios = [1, 4, 4]
|
|
preview_shown = true
|
|
preview_service = { image = "ueberzug", video = "ffmpegthumbnailer", pdf = "pdftoppm" }
|
|
|
|
# Sophisticated hover effects
|
|
hovered = { fg = "#f8f8f2", bg = "#44475a", italic = true }
|
|
|
|
# Enhanced markers with animations
|
|
marker_copied = { fg = "#282a36", bg = "#50fa7b" }
|
|
|
|
# Dynamic loading indicators
|
|
loading_indicator_frames = "⣾⣽⣻⢿⡿⣟⣯⣷"
|
|
loading_style = { fg = "#bd93f9", bold = true }
|
|
|
|
# Enhanced folder icons
|
|
folder_icons = { default = " ", open = " ", empty = " ", empty_open = " ", symlink = " ", symlink_open = " ", error = " " }
|
|
|
|
file_size_units = ["B", "KB", "MB", "GB", "TB", "PB", "EB"]
|
|
|
|
# Status
|
|
[status]
|
|
# Dynamic status bar
|
|
refresh_rate = 1000
|
|
separator_open = ""
|
|
separator_close = ""
|
|
|
|
# Progress bar styling
|
|
progress_bar_style = { fg = "#bd93f9", bg = "#44475a" }
|
|
|
|
# Enhanced modes
|
|
mode_normal = { fg = "#282a36", bg = "#bd93f9", bold = true }
|
|
|
|
# Input
|
|
[input]
|
|
# Advanced input styling
|
|
cursor_style = { fg = "#f8f8f2", bg = "#6272a4", blink = true, blink_interval = 500 }
|
|
|
|
# History features
|
|
history_size = 100
|
|
history_unique = true
|
|
|
|
# Completion styling
|
|
completion_style = { selected_bg = "#44475a", selected_fg = "#f8f8f2", selected_bold = true, selected_italic = true }
|
|
|
|
# Notify
|
|
[notify]
|
|
# Enhanced notification system
|
|
position = "top-right"
|
|
timeout = 5000
|
|
max_width = 400
|
|
max_height = 200
|
|
margin = 10
|
|
padding = 8
|
|
|
|
[notify.levels]
|
|
info = { fg = "#50fa7b", bg = "#282a36", icon = " ", timeout = 3000 }
|
|
warn = { fg = "#f1fa8c", bg = "#282a36", icon = " ", timeout = 5000 }
|
|
error = { fg = "#ff5555", bg = "#282a36", icon = " ", timeout = 7000 }
|
|
debug = { fg = "#6272a4", bg = "#282a36", icon = " ", timeout = 2000 }
|
|
|
|
[notify.animation]
|
|
enabled = true
|
|
duration = 200
|
|
slide_in = "right"
|
|
fade_out = true
|
|
|
|
[notify.border]
|
|
fg = "#bd93f9"
|
|
bg = "#282a36"
|
|
style = "rounded"
|
|
|
|
[notify.overlay]
|
|
bg = "#282a36"
|
|
blend = 0.8
|
|
|
|
# File-specific styles
|
|
[filetype]
|
|
rules = [
|
|
# Development Environment
|
|
{ name = ".env*", fg = "#50fa7b", bold = true, prefix = " " },
|
|
{ name = ".git*", fg = "#ff5555", italic = true, prefix = " " },
|
|
{ name = ".docker*", fg = "#8be9fd", bold = true, prefix = " " },
|
|
|
|
# Configuration Files
|
|
{ name = "*.{json,yaml,yml,toml,xml}", fg = "#8be9fd", italic = true, prefix = " " },
|
|
{ name = "*.{ini,conf,cfg}", fg = "#6272a4", italic = true, prefix = " " },
|
|
|
|
# Web Development
|
|
{ name = "*.{html,htm}", fg = "#ff79c6", italic = true, prefix = " " },
|
|
{ name = "*.{css,scss,sass,less}", fg = "#bd93f9", italic = true, prefix = " " },
|
|
{ name = "*.{jsx,tsx}", fg = "#8be9fd", italic = true, prefix = " " },
|
|
{ name = "*.{js,ts}", fg = "#f1fa8c", italic = true, prefix = " " },
|
|
{ name = "*.vue", fg = "#50fa7b", italic = true, prefix = " " },
|
|
{ name = "*.svelte", fg = "#ff5555", italic = true, prefix = " " },
|
|
|
|
# Backend Development
|
|
{ name = "*.{py,pyc}", fg = "#50fa7b", italic = true, prefix = " " },
|
|
{ name = "*.{rb,erb}", fg = "#ff5555", italic = true, prefix = " " },
|
|
{ name = "*.{php,phar}", fg = "#bd93f9", italic = true, prefix = " " },
|
|
{ name = "*.{java,jar}", fg = "#ff5555", italic = true, prefix = " " },
|
|
{ name = "*.go", fg = "#8be9fd", italic = true, prefix = " " },
|
|
{ name = "*.rs", fg = "#ff7043", italic = true, prefix = " " },
|
|
|
|
# System Programming
|
|
{ name = "*.{c,h}", fg = "#bd93f9", italic = true, prefix = " " },
|
|
{ name = "*.{cpp,hpp}", fg = "#ff79c6", italic = true, prefix = " " },
|
|
{ name = "*.{asm,s}", fg = "#ff5555", italic = true, prefix = " " },
|
|
|
|
# Build Systems
|
|
{ name = "*Makefile", fg = "#ff79c6", bold = true, prefix = " " },
|
|
{ name = "*CMakeLists.txt", fg = "#ff79c6", bold = true, prefix = " " },
|
|
{ name = "*.gradle", fg = "#8be9fd", bold = true, prefix = " " },
|
|
|
|
# Package Managers
|
|
{ name = "package.json", fg = "#ff5555", bold = true, prefix = " " },
|
|
{ name = "package-lock.json", fg = "#ff5555", italic = true, prefix = " " },
|
|
{ name = "composer.json", fg = "#ff79c6", bold = true, prefix = " " },
|
|
{ name = "Cargo.toml", fg = "#ff7043", bold = true, prefix = " " },
|
|
|
|
# Documentation
|
|
{ name = "*.{md,mdx}", fg = "#f1fa8c", italic = true, prefix = " " },
|
|
{ name = "*.rst", fg = "#f1fa8c", italic = true, prefix = " " },
|
|
{ name = "*.pdf", fg = "#ff5555", bold = true, prefix = " " },
|
|
{ name = "LICENSE*", fg = "#50fa7b", bold = true, prefix = " " },
|
|
{ name = "README*", fg = "#50fa7b", bold = true, prefix = " " },
|
|
|
|
# Media with size categories
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 1MB", fg = "#8be9fd", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 10MB", fg = "#ffb86c", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "> 10MB", fg = "#ff5555", prefix = " " },
|
|
|
|
# Video files with duration indicator
|
|
{ name = "*.{mp4,mkv}", duration = "< 10:00", fg = "#bd93f9", prefix = " " },
|
|
{ name = "*.{mp4,mkv}", duration = "< 1:00:00", fg = "#ffb86c", prefix = " " },
|
|
{ name = "*.{mp4,mkv}", duration = "> 1:00:00", fg = "#ff5555", prefix = " " },
|
|
|
|
# Archives with compression ratio
|
|
{ name = "*.{zip,gz,tar}", ratio = "< 0.5", fg = "#50fa7b", prefix = " " },
|
|
{ name = "*.{zip,gz,tar}", ratio = "< 0.7", fg = "#f1fa8c", prefix = " " },
|
|
{ name = "*.{zip,gz,tar}", ratio = "> 0.7", fg = "#ff5555", prefix = " " },
|
|
|
|
# Special Directories
|
|
{ name = "node_modules", fg = "#6272a4", prefix = " " },
|
|
{ name = ".git", fg = "#ff5555", prefix = " " },
|
|
{ name = ".github", fg = "#bd93f9", prefix = " " },
|
|
{ name = "dist", fg = "#6272a4", prefix = " " },
|
|
{ name = "build", fg = "#6272a4", prefix = " " },
|
|
|
|
# Additional file types
|
|
# Audio files
|
|
{ name = "*.{mp3,flac,m4a,wav,ogg}", fg = "#bd93f9", italic = true, prefix = " " },
|
|
|
|
# Font files
|
|
{ name = "*.{ttf,otf,woff,woff2}", fg = "#ff79c6", italic = true, prefix = " " },
|
|
|
|
# Database files
|
|
{ name = "*.{sql,sqlite,db}", fg = "#8be9fd", italic = true, prefix = " " },
|
|
|
|
# Shell scripts
|
|
{ name = "*.{sh,bash,zsh,fish}", fg = "#50fa7b", italic = true, prefix = " " },
|
|
|
|
# Virtual environments
|
|
{ name = "venv", fg = "#6272a4", prefix = " " },
|
|
{ name = ".env", fg = "#50fa7b", prefix = " " },
|
|
|
|
# Container files
|
|
{ name = "*.dockerfile", fg = "#8be9fd", bold = true, prefix = " " },
|
|
{ name = "docker-compose*.{yml,yaml}", fg = "#8be9fd", bold = true, prefix = " " },
|
|
|
|
# Security files
|
|
{ name = "*.{pem,crt,ca,key}", fg = "#ff5555", bold = true, prefix = " " },
|
|
|
|
# Improved size-based rules for media
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 100KB", fg = "#8be9fd", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 1MB", fg = "#bd93f9", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 10MB", fg = "#ffb86c", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "> 10MB", fg = "#ff5555", prefix = " " },
|
|
|
|
# Default Fallbacks
|
|
{ name = "*", fg = "#f8f8f2" },
|
|
{ name = "*/", fg = "#bd93f9", bold = true, prefix = " " },
|
|
|
|
# Additional Development Files
|
|
{ name = "*.{proto}", fg = "#bd93f9", italic = true, prefix = " " },
|
|
{ name = "*.{graphql,gql}", fg = "#ff79c6", italic = true, prefix = " " },
|
|
{ name = "*.{tf,tfvars}", fg = "#8be9fd", italic = true, prefix = " " },
|
|
|
|
# Container and Cloud
|
|
{ name = "*.{yaml,yml}", pattern = "^k8s|^kubernetes", fg = "#8be9fd", bold = true, prefix = " " },
|
|
{ name = "*.{yaml,yml}", pattern = "^helm", fg = "#8be9fd", bold = true, prefix = " " },
|
|
|
|
# Data Files
|
|
{ name = "*.{csv,tsv}", fg = "#50fa7b", italic = true, prefix = " " },
|
|
{ name = "*.{parquet,avro}", fg = "#bd93f9", italic = true, prefix = " " },
|
|
|
|
# Size-based rules for documents
|
|
{ name = "*.{pdf,epub,mobi}", size = "< 1MB", fg = "#8be9fd", prefix = " " },
|
|
{ name = "*.{pdf,epub,mobi}", size = "< 10MB", fg = "#ffb86c", prefix = " " },
|
|
{ name = "*.{pdf,epub,mobi}", size = "> 10MB", fg = "#ff5555", prefix = " " },
|
|
|
|
# Additional Development Files
|
|
{ name = "*.{sol}", fg = "#bd93f9", italic = true, prefix = " " }, # Solidity files
|
|
{ name = "*.{ex,exs}", fg = "#bd93f9", italic = true, prefix = " " }, # Elixir files
|
|
{ name = "*.{kt,kts}", fg = "#ff79c6", italic = true, prefix = " " }, # Kotlin files
|
|
{ name = "*.{swift}", fg = "#ff5555", italic = true, prefix = " " }, # Swift files
|
|
|
|
# Config Files
|
|
{ name = "*.{nginx,nginx.conf}", fg = "#50fa7b", italic = true, prefix = " " },
|
|
{ name = "*{webpack}*", fg = "#8be9fd", bold = true, prefix = " " },
|
|
|
|
# ML/Data Science
|
|
{ name = "*.{ipynb}", fg = "#ff79c6", italic = true, prefix = " " },
|
|
{ name = "*.{pkl,pickle}", fg = "#50fa7b", italic = true, prefix = " " },
|
|
|
|
# 3D/Graphics
|
|
{ name = "*.{blend}", fg = "#ff79c6", italic = true, prefix = " " },
|
|
{ name = "*.{fbx,obj,stl}", fg = "#8be9fd", italic = true, prefix = " " },
|
|
|
|
# More granular size-based rules for media files
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 50KB", fg = "#8be9fd", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 500KB", fg = "#bd93f9", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 2MB", fg = "#ffb86c", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "< 20MB", fg = "#ff7043", prefix = " " },
|
|
{ name = "*.{jpg,jpeg,png,gif}", size = "> 20MB", fg = "#ff5555", prefix = " " },
|
|
|
|
# Size categories for video files
|
|
{ name = "*.{mp4,mkv,avi,mov}", size = "< 100MB", fg = "#8be9fd", prefix = " " },
|
|
{ name = "*.{mp4,mkv,avi,mov}", size = "< 1GB", fg = "#ffb86c", prefix = " " },
|
|
{ name = "*.{mp4,mkv,avi,mov}", size = "> 1GB", fg = "#ff5555", prefix = " " },
|
|
]
|
|
|
|
# Keybindings
|
|
[keys]
|
|
# Visual key hints
|
|
show_hints = true
|
|
hint_style = { fg = "#6272a4", bg = "#44475a", italic = true }
|
|
|
|
# Command palette
|
|
command_palette = { bg = "#282a36", fg = "#f8f8f2", selected_bg = "#44475a", selected_fg = "#f8f8f2", border = "#bd93f9" }
|
|
|
|
# Preview
|
|
[preview]
|
|
tab_size = 2
|
|
max_width = 120
|
|
max_height = 60
|
|
cache_dir = "/tmp/yazi"
|
|
|
|
[preview.image]
|
|
enabled = true
|
|
format = "rgb"
|
|
max_width = 1920
|
|
max_height = 1080
|
|
quality = 90
|
|
animate = true
|
|
cache = true
|
|
|
|
[preview.preview_service]
|
|
image = "ueberzug"
|
|
video = "ffmpegthumbnailer"
|
|
pdf = "pdftoppm"
|
|
epub = "epub-thumbnailer"
|
|
office = "libreoffice --headless --convert-to pdf"
|
|
markdown = "glow"
|
|
|
|
[preview.syntax]
|
|
theme = "Dracula"
|
|
background = "#282a36"
|
|
|
|
# Opener
|
|
[opener]
|
|
edit = [
|
|
{ exec = 'nvim "$@"', desc = "Edit with Neovim" },
|
|
{ exec = 'code "$@"', desc = "Edit with VS Code" }
|
|
]
|
|
open = [
|
|
{ exec = 'xdg-open "$@"', desc = "Open with system default" },
|
|
{ exec = 'firefox "$@"', desc = "Open in Firefox" }
|
|
]
|
|
reveal = [
|
|
{ exec = 'nautilus "$@"', desc = "Reveal in file manager" }
|
|
]
|
|
|
|
# Enhanced preview features
|
|
max_preview_size = 10485760 # 10MB limit for preview
|
|
scroll_offset = 5
|
|
scroll_smooth = true
|