force_keyboard_focus = true    # forces keyboard forcus to stay in Walker
close_when_open = true          # close walker when invoking while already opened
click_to_close = true           # closes walker if clicking outside of the main content area
selection_wrap = true          # wrap list if at bottom or top
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
exact_search_prefix = "`"       # disable fuzzy searching
theme = "catppuccin"               # theme to use
disable_mouse = false           # disable mouse (on input and list only)
debug = false                   # enables debug printing for some stuff, f.e. keybinds
page_jump_items = 10            # number of items to skip with Page Up/Down
hide_quick_activation = false   # globally hide the quick activation buttons

[shell]
anchor_top = true
anchor_bottom = true
anchor_left = true
anchor_right = true

[placeholders]
"default" = { input = "Search", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"

[keybinds]
close = ["Escape"]
next = ["Down"]
previous = ["Up"]
toggle_exact = ["ctrl e"]
resume_last_query = ["ctrl r"]
quick_activate = ["1", "2", "3", "4"]
page_down = ["Page_Down"]
page_up = ["Page_Up"]

[providers]
default = [
  "desktopapplications",
  "calc",
  "bookmarks",
  "websearch",
] # providers to be queried by default
empty = ["desktopapplications"] # providers to be queried when query is empty
ignore_preview = [] # providers that should not show previews
max_results = 50 # global max results

[providers.argument_delimiter] # define the argument delimiter per provider
runner = " "

[providers.sets] # define your own defaults/empty sets of providers
[providers.max_results_provider] # define max results per provider in here

# [[providers.prefixes]]
# prefix = ";"
# provider = "providerlist"

[[providers.prefixes]]
prefix = ">"
provider = "runner"

[[providers.prefixes]]
prefix = "/"
provider = "files"

[[providers.prefixes]]
prefix = "."
provider = "symbols"

[[providers.prefixes]]
prefix = "!"
provider = "todo"

[[providers.prefixes]]
prefix = "%"
provider = "bookmarks"

[[browsers]]
name = "firefox"
command = "firefox --new-window %VALUE%"

[[providers.prefixes]]
prefix = "="
provider = "calc"

[[providers.prefixes]]
prefix = "@"
provider = "websearch"

[[providers.prefixes]]
prefix = ":"
provider = "clipboard"

[[providers.prefixes]]
prefix = "$"
provider = "windows"

[providers.clipboard]
time_format = "%d.%m. - %H:%M" # format for the clipboard item date

[providers.actions] # This will be MERGED/OVEWRITTEN with what the user specifies
fallback = [
  { action = "menus:open", label = "open", after = "Nothing" },
  { action = "menus:default", label = "run", after = "Close" },
  { action = "menus:parent", label = "back", bind = "Escape", after = "Nothing" },
  { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
]

dmenu = [{ action = "select", default = true, bind = "Return" }]

providerlist = [
  { action = "activate", default = true, bind = "Return", after = "ClearReload" },
]

bluetooth = [
  { action = "find", bind = "ctrl f", after = "AsyncClearReload" },
  { action = "remove", bind = "ctrl d", after = "AsyncReload" },
  { action = "trust", bind = "ctrl t", after = "AsyncReload" },
  { action = "untrust", bind = "ctrl t", after = "AsyncReload" },
  { action = "pair", bind = "Return", after = "AsyncReload" },
  { action = "connect", bind = "Return", after = "AsyncReload" },
  { action = "disconnect", bind = "Return", after = "AsyncReload" },
]

archlinuxpkgs = [
  { action = "install", bind = "Return", default = true },
  { action = "remove", bind = "Return" },
  { action = "show_all", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
  { action = "show_installed", label = "show installed", bind = "ctrl i", after = "AsyncClearReload" },
]

calc = [
  { action = "copy", default = true, bind = "Return" },
  { action = "delete", bind = "ctrl d", after = "AsyncReload" },
  { action = "save", bind = "ctrl s", after = "AsyncClearReload" },
]

websearch = [{ action = "search", default = true, bind = "Return" }]

desktopapplications = [
  { action = "start", default = true, bind = "Return" },
  { action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" },
  { action = "new_instance", label = "new instance", bind = "ctrl Return" },
  { action = "new_instance:keep", label = "new+next", bind = "ctrl alt Return", after = "KeepOpen" },
  { action = "pin", bind = "ctrl p", after = "AsyncReload" },
  { action = "unpin", bind = "ctrl p", after = "AsyncReload" },
  { action = "pinup", bind = "ctrl n", after = "AsyncReload" },
  { action = "pindown", bind = "ctrl m", after = "AsyncReload" },
]

files = [
  { action = "open", default = true, bind = "Return" },
  { action = "opendir", label = "open dir", bind = "ctrl Return" },
  { action = "copypath", label = "copy path", bind = "ctrl shift c" },
  { action = "copyfile", label = "copy file", bind = "ctrl c" },
]

todo = [
  { action = "save", default = true, bind = "Return", after = "AsyncClearReload" },
  { action = "delete", bind = "ctrl d", after = "AsyncClearReload" },
  { action = "active", bind = "Return", after = "Nothing" },
  { action = "inactive", bind = "Return", after = "Nothing" },
  { action = "done", bind = "ctrl f", after = "Nothing" },
  { action = "change_category", bind = "ctrl y", label = "change category", after = "Nothing" },
  { action = "clear", bind = "ctrl x", after = "AsyncClearReload" },
]

runner = [
  { action = "runterminal", default = true, bind = "Return" },
  { action = "run", label = "run in terminal", bind = "shift Return" },
]

symbols = [
  { action = "run_cmd", label = "select", default = true, bind = "Return" },
]

unicode = [
  { action = "run_cmd", label = "select", default = true, bind = "Return" },
]

clipboard = [
  { action = "copy", default = true, bind = "Return" },
  { action = "remove", bind = "ctrl d", after = "AsyncClearReload" },
  { action = "remove_all", label = "clear", bind = "ctrl shift d", after = "AsyncClearReload" },
  { action = "show_images_only", label = "only images", bind = "ctrl i", after = "AsyncClearReload" },
  { action = "show_text_only", label = "only text", bind = "ctrl i", after = "AsyncClearReload" },
  { action = "show_combined", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
  { action = "pause", bind = "ctrl p" },
  { action = "unpause", bind = "ctrl p" },
  { action = "edit", bind = "ctrl o" },
]

bookmarks = [
  { action = "save", bind = "Return", after = "AsyncClearReload" },
  { action = "open", default = true, bind = "Return" },
  { action = "delete", bind = "ctrl d", after = "AsyncClearReload" },
  { action = "change_category", label = "Change category", bind = "ctrl y", after = "Nothing" },
  { action = "change_browser", label = "Change browser", bind = "ctrl b", after = "Nothing" },
  { action = "import", label = "Import", bind = "ctrl i", after = "AsyncClearReload" },
]
