# Whether to focus the message input automatically when a channel is selected.
# Set to false to preview channels without moving focus.
auto_focus = true

# Whether to enable mouse or not.
mouse = true
# The program to open when the `message_input.editor` keybind is pressed. Set the value to `"default"` to use `$EDITOR`.
editor = "default"

# "default" (unknown), "online", "dnd", "idle", "invisible", "offline"
status = "default"

# Whether to parse and render markdown in messages or not.
markdown = true
hide_blocked_users = true
show_attachment_links = true

# Max members to be in the mention autocomplete suggestions list
# Note: Use autocomplete_limit = 0 to disable.
autocomplete_limit = 20

# The number of messages to fetch when a text-based channel is selected from guilds tree. The minimum and maximum value is 1 and 100, respectively.
messages_limit = 50

[picker]
width = 60
height = 20

[timestamps]
enabled = true
# https://pkg.go.dev/time#Layout
format = "3:04PM"

[notifications]
enabled = true
# The duration of the sound. Set the value to `0` to use default duration. This is only supported on Unix and Windows.
duration = 0
[notifications.sound]
enabled = true
only_on_ping = true

[typing_indicator]
# Whether to send typing status or not.
send = true
# Whether to receive typing status or not.
receive = true

[icons]
guild_category = ""
guild_text = "#"
guild_voice = "♪ "
guild_stage_voice = "♪ "
guild_announcement_thread = "a-"
guild_public_thread = "› "
guild_private_thread = "› "
guild_announcement = "a-"
guild_forum = "≡ "
guild_store = "s-"

# Global shortcuts
# Esc: Reset message selection or close the channel selection popup.
[keybinds]
focus_guilds_tree = "Ctrl+G"
focus_messages_list = "Ctrl+T"
focus_message_input = "Ctrl+I"
# Cycle focus between the widgets.
focus_previous = "Ctrl+H"
focus_next = "Ctrl+L"
# Hide/show the guilds tree.
toggle_guilds_tree = "Ctrl+B"
quit = "Ctrl+C"
# Log out and remove the authentication token from keyring.
# Requires re-login upon restart.
logout = "Ctrl+D"

[keybinds.picker]
toggle = "Ctrl+K"
cancel = "Esc"
up = "Ctrl+P"
down = "Ctrl+N"
top = "Home"
bottom = "End"
select = "Enter"

# Only while focusing on the guilds tree
[keybinds.guilds_tree]
up = "Rune[k]"
down = "Rune[j]"
top = "Rune[g]"
bottom = "Rune[G]"
# Select the currently highlighted text-based channel or expand a guild or channel.
select_current = "Enter"
yank_id = "Rune[i]"
collapse_parent_node = "Rune[-]"
move_to_parent_node = "Rune[p]"

# Only while focusing on sent messages
[keybinds.messages_list]
select_up = "Rune[k]"
select_down = "Rune[j]"
select_top = "Rune[g]"
select_bottom = "Rune[G]"
# Scroll the messages list without changing the selection.
scroll_up = "Rune[K]"
scroll_down = "Rune[J]"
scroll_top = "Home"
scroll_bottom = "End"
# Select the message reference (reply) of the selected channel.
select_reply = "Rune[s]"
# Reply to the selected message.
reply = "Rune[R]"
# Reply (with mention) to the selected message.
reply_mention = "Rune[r]"
cancel = "Esc"
edit = "Rune[e]"
delete = "Rune[D]"
delete_confirm = "Rune[d]"
# Open the selected message's attachments or hyperlinks in the message
# using the default browser application.
open = "Rune[o]"
# Yank (copy) the selected message's content/url/id.
yank_content = "Rune[y]"
yank_url = "Rune[u]"
yank_id = "Rune[i]"

# Only while typing a message
# Alt+Enter: Insert a new line to the current text.
[keybinds.message_input]
# paste from clipboard (supports both text and images)
paste = "Ctrl+V"
send = "Enter"
# Remove existing text or cancel reply.
cancel = "Esc"
# Complete usernames when mentioning
tab_complete = "Tab"

open_editor = "Ctrl+E"
open_file_picker = "Ctrl+Rune[\\]"

[keybinds.mentions_list]
up = "Ctrl+P"
down = "Ctrl+N"
top = "Home"
bottom = "End"

# style = { foreground = "", background = "", attributes = "" or [""] }
[theme.title]
alignment = "left" # `"left"`, `"center"`, or `"right"`.
normal_style = { attributes = "dim" }
active_style = { foreground = "green", attributes = "bold" }

[theme.footer]
alignment = "left"
normal_style = { attributes = "dim" }
active_style = { foreground = "green", attributes = "bold" }

[theme.border]
enabled = true
padding = [0, 0, 1, 1] # [top, bottom, left, right]

normal_style = { attributes = "dim" }
active_style = { foreground = "green", attributes = "bold" }

# `"hidden"`, `"plain"`, `"round"`, `"thick"`, or `"double"`.
normal_set = "round"
active_set = "round"

[theme.guilds_tree]
auto_expand_folders = true
# Give tree-like shape
graphics = true
graphics_color = "default"

[theme.messages_list]
reply_indicator = ">"
forwarded_indicator = "<"

mention_style = { foreground = "blue" }
emoji_style = { foreground = "green" }
url_style = { foreground = "blue" }
attachment_style = { foreground = "yellow" }
message_style = {}
selected_message_style = { attributes = "reverse" }

[theme.mentions_list]
# Note: width and height are capped to the avaliable space
# Minimum width
# 0 = make the list as wide as possible
min_width = 20
# Maximum height
# 0 = make the list as tall as needed
max_height = 0

[theme.dialog]
style = {}
# Background style: everything else behind the dialog
background_style = { attributes = "dim" }
