# 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/yazi.json"

[manager]
ratio          = [ 1, 2, 3 ]
sort_by        = "alphabetical"
sort_sensitive = false
sort_reverse   = false
sort_dir_first = true
sort_translit  = false
linemode       = "size"
show_hidden    = false
show_symlink   = false
# scrolloff      = 5
mouse_events   = [ "click", "scroll" ]
title_format   = "Yazi: {cwd}"

[preview]
tab_size        = 2
max_width       = 1000
max_height      = 1500
cache_dir       = ""
image_filter    = "triangle"
image_quality   = 75
sixel_fraction  = 15
ueberzug_scale  = 4
ueberzug_offset = [ 0, 0, 0, 0 ]

[opener]
open = [
    { run = 'opener "$@"', block = true, desc = "Open" },
]
alt = [
    { run = 'opener "$@"', block = true, desc = "Alt" },
]
nothing = [
    { run = 'echo -n', desc = "" },
]

[open]
rules = [
    { name = "*/", use = [ "nothing" ] },
    { mime = "*", use = [ "open", "alt" ] },
]

[tasks]
micro_workers    = 10
macro_workers    = 25
bizarre_retry    = 5
image_alloc      = 536870912  # 512MB
image_bound      = [ 0, 0 ]
suppress_preload = false

[plugin]

fetchers = [
    # Mimetype
    { id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" },
]
preloaders = [
    # Image
    { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
    { mime = "image/*", run = "image" },
    # Video
    { mime = "video/*", run = "video" },
    # PDF
    { mime = "application/pdf", run = "pdf" },
    # Font
    { mime = "font/*", run = "font" },
    { mime = "application/vnd.ms-opentype", run = "font" },
]
previewers = [
    { name = "*/", run = "folder", sync = true },
    # Code
    { mime = "text/*", run = "code" },
    { mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
    # JSON
    { mime = "application/{json,x-ndjson}", run = "json" },
    # Image
    { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
    { mime = "image/*", run = "image" },
    # Video
    { mime = "video/*", run = "video" },
    # PDF
    { mime = "application/pdf", run = "pdf" },
    # Archive
    { mime = "application/{,g}zip", run = "archive" },
    { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" },
    # Font
    { mime = "font/*", run = "font" },
    { mime = "application/vnd.ms-opentype", run = "font" },
    # Empty file
    { mime = "inode/x-empty", run = "empty" },
    # Fallback
    { name = "*", run = "file" },
]

[input]
# cd
cd_title  = "Change directory:"
cd_origin = "top-center"
cd_offset = [ 0, 2, 50, 3 ]

# create
create_title  = "Create:"
create_origin = "top-center"
create_offset = [ 0, 2, 50, 3 ]

# rename
rename_title  = "Rename:"
rename_origin = "hovered"
rename_offset = [ 0, 1, 50, 3 ]

# trash
trash_title     = "Move {n} selected file{s} to trash? (y/N)"
trash_origin    = "top-center"
trash_offset    = [ 0, 2, 50, 3 ]

# delete
delete_title    = "Delete {n} selected file{s} permanently? (y/N)"
delete_origin   = "top-center"
delete_offset   = [ 0, 2, 50, 3 ]

# filter
filter_title  = "Filter:"
filter_origin = "top-center"
filter_offset = [ 0, 2, 50, 3 ]

# find
find_title  = [ "Find next:", "Find previous:" ]
find_origin = "top-center"
find_offset = [ 0, 2, 50, 3 ]

# search
search_title  = "Search via {n}:"
search_origin = "top-center"
search_offset = [ 0, 2, 50, 3 ]

# shell
shell_title  = [ "Shell:", "Shell (block):" ]
shell_origin = "top-center"
shell_offset = [ 0, 2, 50, 3 ]

# overwrite
overwrite_title  = "Overwrite an existing file? (y/N)"
overwrite_origin = "top-center"
overwrite_offset = [ 0, 2, 50, 3 ]

# quit
quit_title  = "{n} task{s} running, sure to quit? (y/N)"
quit_origin = "top-center"
quit_offset = [ 0, 2, 50, 3 ]

[select]
open_title  = "Open with:"
open_origin = "hovered"
open_offset = [ 0, 1, 50, 7 ]

[which]
sort_by        = "none"
sort_sensitive = false
sort_reverse   = false
sort_translit  = false

[log]
enabled = false
