# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/theme.json"

# vim:fileencoding=utf-8:foldmethod=marker

# : Flavor {{{

[flavor]
use = ""

# : }}}

# : Manager {{{

[manager]
cwd = { fg = "cyan" }

# Hovered
hovered         = { reversed = true }
preview_hovered = { underline = true }

# Find
find_keyword  = { fg = "yellow", bold = true, italic = true, underline = true }
find_position = { fg = "magenta", bg = "reset", bold = true, italic = true }

# Marker
marker_copied   = { fg = "lightgreen",  bg = "lightgreen" }
marker_cut      = { fg = "lightred",    bg = "lightred" }
marker_marked   = { fg = "lightcyan",   bg = "lightcyan" }
marker_selected = { fg = "lightyellow", bg = "lightyellow" }

# Tab
tab_active   = { reversed = true }
tab_inactive = {}
tab_width    = 1

# Count
count_copied   = { fg = "white", bg = "green" }
count_cut      = { fg = "white", bg = "red" }
count_selected = { fg = "white", bg = "yellow" }

# Border
border_symbol = "│"
border_style  = { fg = "gray" }

# Highlighting
syntect_theme = ""

# : }}}


# : Status {{{

[status]
separator_open  = ""
separator_close = ""
separator_style = { fg = "gray", bg = "gray" }

# Mode
mode_normal = { bg = "blue", bold = true }
mode_select = { bg = "red", bold = true }
mode_unset  = { bg = "red", bold = true }

# Progress
progress_label  = { bold = true }
progress_normal = { fg = "blue", bg = "black" }
progress_error  = { fg = "red", bg = "black" }

# Permissions
permissions_t = { fg = "green" }
permissions_r = { fg = "yellow" }
permissions_w = { fg = "red" }
permissions_x = { fg = "cyan" }
permissions_s = { fg = "darkgray" }

# : }}}


# : Select {{{

[select]
border   = { fg = "blue" }
active   = { fg = "magenta", bold = true }
inactive = {}

# : }}}


# : Input {{{

[input]
border   = { fg = "blue" }
title    = {}
value    = {}
selected = { reversed = true }

# : }}}


# : Completion {{{

[completion]
border   = { fg = "blue" }
active   = { reversed = true }
inactive = {}

# Icons
icon_file    = ""
icon_folder  = ""
icon_command = ""

# : }}}


# : Tasks {{{

[tasks]
border  = { fg = "blue" }
title   = {}
hovered = { fg = "magenta", underline = true }

# : }}}


# : Which {{{

[which]
cols            = 3
mask            = { bg = "black" }
cand            = { fg = "lightcyan" }
rest            = { fg = "darkgray" }
desc            = { fg = "lightmagenta" }
separator       = "  "
separator_style = { fg = "darkgray" }

# : }}}


# : Help {{{

[help]
on      = { fg = "cyan" }
run     = { fg = "magenta" }
desc    = {}
hovered = { reversed = true, bold = true }
footer  = { fg = "black", bg = "white" }

# : }}}


# : Notify {{{

[notify]
title_info  = { fg = "green" }
title_warn  = { fg = "yellow" }
title_error = { fg = "red" }

# Icons
icon_info  = ""
icon_warn  = ""
icon_error = ""

# : }}}


# : File-specific styles {{{

[filetype]

rules = [
	# Images
	{ mime = "image/*", fg = "cyan" },

	# Media
	{ mime = "{audio,video}/*", fg = "yellow" },

	# Archives
	{ mime = "application/*zip", fg = "magenta" },
	{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "magenta" },

	# Documents
	{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "green" },

	# Fallback
	# { name = "*", fg = "white" },
	{ name = "*/", fg = "blue" }
]

[icon]

rules = [
	# Programming
	{ name = "*.c"    , text = "", fg = "#599eff" },
	{ name = "*.cpp"  , text = "", fg = "#519aba" },
	{ name = "*.class", text = "", fg = "#cc3e44" },
	{ name = "*.cs"   , text = "󰌛", fg = "#596706" },
	{ name = "*.css"  , text = "", fg = "#42a5f5" },
	{ name = "*.elm"  , text = "", fg = "#4391d2" },
	{ name = "*.fish" , text = "", fg = "#4d5a5e" },
	{ name = "*.go"   , text = "", fg = "#519aba" },
	{ name = "*.h"    , text = "", fg = "#a074c4" },
	{ name = "*.hpp"  , text = "", fg = "#a074c4" },
	{ name = "*.html" , text = "", fg = "#e44d26" },
	{ name = "*.jar"  , text = "", fg = "#cc3e44" },
	{ name = "*.java" , text = "", fg = "#cc3e44" },
	{ name = "*.js"   , text = "", fg = "#F1F134" },
	{ name = "*.jsx"  , text = "", fg = "#20c2e3" },
	{ name = "*.lua"  , text = "", fg = "#51a0cf" },
	{ name = "*.nix"  , text = "", fg = "#7ebae4" },
	{ name = "*.nu"   , text = ">", fg = "#3aa675" },
	{ name = "*.php"  , text = "", fg = "#a074c4" },
	{ name = "*.py"   , text = "", fg = "#ffbc03" },
	{ name = "*.rb"   , text = "", fg = "#701516" },
	{ name = "*.rs"   , text = "", fg = "#dea584" },
	{ name = "*.sbt"  , text = "", fg = "#4d5a5e" },
	{ name = "*.scala", text = "", fg = "#cc463e" },
	{ name = "*.scss" , text = "", fg = "#f55385" },
	{ name = "*.sh"   , text = "", fg = "#4d5a5e" },
	{ name = "*.swift", text = "", fg = "#e37933" },
	{ name = "*.ts"   , text = "", fg = "#519aba" },
	{ name = "*.tsx"  , text = "", fg = "#1354bf" },
	{ name = "*.vim"  , text = "", fg = "#019833" },
	{ name = "*.vue"  , text = "󰡄", fg = "#8dc149" },

	# Text
	{ name = "*.conf", text = "", fg = "#6d8086" },
	{ name = "*.ini" , text = "", fg = "#6d8086" },
	{ name = "*.json", text = "", fg = "#cbcb41" },
	{ name = "*.kdl" , text = "", fg = "#6d8086" },
	{ name = "*.md"  , text = "", fg = "#ffffff" },
	{ name = "*.toml", text = "", fg = "#ffffff" },
	{ name = "*.txt" , text = "", fg = "#89e051" },
	{ name = "*.yaml", text = "", fg = "#6d8086" },
	{ name = "*.yml" , text = "", fg = "#6d8086" },

	# Archives
	{ name = "*.7z" , text = "" },
	{ name = "*.bz2", text = "" },
	{ name = "*.gz" , text = "" },
	{ name = "*.rar", text = "" },
	{ name = "*.tar", text = "" },
	{ name = "*.xz" , text = "" },
	{ name = "*.zip", text = "" },

	# Images
	{ name = "*.HEIC", text = "", fg = "#a074c4" },
	{ name = "*.avif", text = "", fg = "#a074c4" },
	{ name = "*.bmp" , text = "", fg = "#a074c4" },
	{ name = "*.gif" , text = "", fg = "#a074c4" },
	{ name = "*.ico" , text = "", fg = "#cbcb41" },
	{ name = "*.jpeg", text = "", fg = "#a074c4" },
	{ name = "*.jpg" , text = "", fg = "#a074c4" },
	{ name = "*.png" , text = "", fg = "#a074c4" },
	{ name = "*.svg" , text = "", fg = "#FFB13B" },
	{ name = "*.webp", text = "", fg = "#a074c4" },

	# Movies
	{ name = "*.avi" , text = "", fg = "#FD971F" },
	{ name = "*.mkv" , text = "", fg = "#FD971F" },
	{ name = "*.mov" , text = "", fg = "#FD971F" },
	{ name = "*.mp4" , text = "", fg = "#FD971F" },
	{ name = "*.webm", text = "", fg = "#FD971F" },

	# Audio
	{ name = "*.aac" , text = "", fg = "#66D8EF" },
	{ name = "*.flac", text = "", fg = "#66D8EF" },
	{ name = "*.m4a" , text = "", fg = "#66D8EF" },
	{ name = "*.mp3" , text = "", fg = "#66D8EF" },
	{ name = "*.ogg" , text = "", fg = "#66D8EF" },
	{ name = "*.wav" , text = "", fg = "#66D8EF" },

	# Documents
	{ name = "*.csv" , text = "", fg = "#89e051" },
	{ name = "*.doc" , text = "", fg = "#185abd" },
	{ name = "*.doct", text = "", fg = "#185abd" },
	{ name = "*.docx", text = "", fg = "#185abd" },
	{ name = "*.dot" , text = "", fg = "#185abd" },
	{ name = "*.ods" , text = "", fg = "#207245" },
	{ name = "*.ots" , text = "", fg = "#207245" },
	{ name = "*.pdf" , text = "", fg = "#b30b00" },
	{ name = "*.pom" , text = "", fg = "#cc3e44" },
	{ name = "*.pot" , text = "", fg = "#cb4a32" },
	{ name = "*.potx", text = "", fg = "#cb4a32" },
	{ name = "*.ppm" , text = "", fg = "#a074c4" },
	{ name = "*.ppmx", text = "", fg = "#cb4a32" },
	{ name = "*.pps" , text = "", fg = "#cb4a32" },
	{ name = "*.ppsx", text = "", fg = "#cb4a32" },
	{ name = "*.ppt" , text = "", fg = "#cb4a32" },
	{ name = "*.pptx", text = "", fg = "#cb4a32" },
	{ name = "*.xlc" , text = "", fg = "#207245" },
	{ name = "*.xlm" , text = "", fg = "#207245" },
	{ name = "*.xls" , text = "", fg = "#207245" },
	{ name = "*.xlsm", text = "", fg = "#207245" },
	{ name = "*.xlsx", text = "", fg = "#207245" },
	{ name = "*.xlt" , text = "", fg = "#207245" },

	# Lockfiles
	{ name = "*.lock", text = "", fg = "#bbbbbb" },

	# Misc
	{ name = "*.bin", text = "", fg = "#9F0500" },
	{ name = "*.exe", text = "", fg = "#9F0500" },
	{ name = "*.pkg", text = "", fg = "#9F0500" },

	# Dotfiles
	{ name = ".DS_Store"     , text = "", fg = "#41535b" },
	{ name = ".bashprofile"  , text = "", fg = "#89e051" },
	{ name = ".bashrc"       , text = "", fg = "#89e051" },
	{ name = ".gitattributes", text = "", fg = "#41535b" },
	{ name = ".gitignore"    , text = "", fg = "#41535b" },
	{ name = ".gitmodules"   , text = "", fg = "#41535b" },
	{ name = ".vimrc"        , text = "", fg = "#019833" },
	{ name = ".zprofile"     , text = "", fg = "#89e051" },
	{ name = ".zshenv"       , text = "", fg = "#89e051" },
	{ name = ".zshrc"        , text = "", fg = "#89e051" },

	# Named files
	{ name = "COPYING"      , text = "󰿃", fg = "#cbcb41" },
	{ name = "Containerfile", text = "󰡨", fg = "#458ee6" },
	{ name = "Dockerfile"   , text = "󰡨", fg = "#458ee6" },
	{ name = "LICENSE"      , text = "󰿃", fg = "#d0bf41" },

	# Directories
	{ name = ".config/"    , text = "" },
	{ name = ".git/"       , text = "" },
	{ name = "Desktop/"    , text = "" },
	{ name = "Development/", text = "" },
	{ name = "Documents/"  , text = "" },
	{ name = "Downloads/"  , text = "" },
	{ name = "Library/"    , text = "" },
	{ name = "Movies/"     , text = "" },
	{ name = "Music/"      , text = "" },
	{ name = "Pictures/"   , text = "" },
	{ name = "Public/"     , text = "" },
	{ name = "Videos/"     , text = "" },

	# Default
	{ name = "*" , text = "" },
	{ name = "*/", text = "" },
]

# : }}}
