# auto_focus Whether to focus the composer automatically when a channel is selected. Set to false to preview channels without moving focus. Default: `true` # mouse Whether to enable the mouse. Default: `true` # editor The program opened by the `composer.open_editor` keybind. "default" uses `$EDITOR`. Default: `"default"` # status "default" (unknown), "online", "dnd", "idle", "invisible" or "offline". Default: `"default"` # hide_blocked_users Default: `true` # autocomplete_limit The maximum number of members in the mention autocomplete list. 0 disables it. Default: `20` # messages_limit The number of messages to fetch when a text-based channel is selected, from 1 to 100. Default: `50` # markdown ## markdown.enabled Whether to parse and render markdown in messages. Default: `true` ## markdown.mask_spoilers Replace spoiler contents with a placeholder. Default: `false` ## markdown.theme Theme for fenced code blocks. Available themes: https://xyproto.github.io/splash/docs Default: `"monokai"` # help ## help.enabled Whether to show keybind help. Default: `true` ## help.compact_modifiers Show compact key modifiers in help, e.g. "^x" instead of "ctrl+x". Default: `true` ## help.padding [left, right] Default: `[1, 1]` ## help.separator Default: `" • "` # picker ## picker.width Default: `80` ## picker.height Default: `25` # timestamps ## timestamps.enabled Default: `true` ## timestamps.format https://pkg.go.dev/time#Layout Default: `"3:04PM"` # date_separator ## date_separator.enabled Default: `true` ## date_separator.format https://pkg.go.dev/time#Layout Default: `"January 2, 2006"` ## date_separator.character The fill character used on both sides of the date label. Default: `"─"` # notifications ## notifications.enabled Default: `true` ## notifications.when_unfocused Whether to also notify about messages in the open channel while the terminal window is unfocused. Requires a terminal that reports focus. Default: `true` # typing_indicator ## typing_indicator.send Whether to send typing status. Default: `true` ## typing_indicator.receive Whether to receive typing status. Default: `true` # sidebar The guilds tree pane. ## sidebar.visible Whether the pane is visible at start-up. It can still be toggled at runtime with its toggle keybind. Default: `true` ## sidebar.width_percent Percentage (%) of the available width used by the pane. Valid values are 1-99. Invalid values fall back to 20. Default: `20` ## sidebar.markers ### sidebar.markers.expanded Default: `"▾ "` ### sidebar.markers.collapsed Default: `"▸ "` ### sidebar.markers.leaf Default: `""` ## sidebar.indents Indentation for different item types. ### sidebar.indents.guild Default: `2` ### sidebar.indents.category Default: `1` ### sidebar.indents.channel Default: `2` ### sidebar.indents.forum Default: `2` ### sidebar.indents.group_dm Default: `1` ### sidebar.indents.dm Default: `2` # members_tree The members tree pane, sized from the width right of the guilds tree. ## members_tree.visible Whether the pane is visible at start-up. It can still be toggled at runtime with its toggle keybind. Default: `true` ## members_tree.width_percent Percentage (%) of the available width used by the pane. Valid values are 1-99. Invalid values fall back to 20. Default: `20` # composer ## composer.max_height Maximum height (in newline-separated rows) the composer grows to before it starts scrolling internally. Set to 1 for a fixed single-line input. Values below 1 fall back to 10. Default: `10` # ui Layout and behavior of the widgets. ## ui.tabs The tabs of the login screen. ### ui.tabs.alignment Where tabs that fit are placed: "left", "center" or "right". Default: `"center"` ### ui.tabs.wrap Whether moving past the last tab selects the first, and past the first selects the last. Default: `false` ### ui.tabs.separator Text between tabs. Default: `"│"` ### ui.tabs.padding Text on either side of each tab: [left, right] Default: `[" ", " "]` ### ui.tabs.arrows Arrows shown while tabs are hidden past an end: [start, end]. An empty string turns that arrow off. Default: `["◀", "▶"]` ### ui.tabs.clickable_arrows Whether clicking an arrow selects the tab next to the active one. Default: `true` ## ui.title ### ui.title.alignment "left", "center" or "right". Default: `"left"` ## ui.footer ### ui.footer.alignment "left", "center" or "right". Default: `"left"` ## ui.border ### ui.border.enabled Default: `true` ### ui.border.padding [top, bottom, left, right] Default: `[0, 0, 1, 1]` ### ui.border.normal_set "hidden", "plain", "round", "thick" or "double". Default: `"round"` ### ui.border.active_set The set used while the widget is focused. Default: `"round"` ## ui.guilds_tree ### ui.guilds_tree.graphics Whether to draw lines that give the tree its shape. Default: `true` ### ui.guilds_tree.auto_expand_folders Default: `true` ## ui.members_tree ### ui.members_tree.graphics Whether to draw lines that give the tree its shape. Default: `true` ## ui.scroll_bar ### ui.scroll_bar.visibility "auto", "always" or "never". Default: `"auto"` ### ui.scroll_bar.symbol_set "minimal", "box_drawing", "vertical" or "double_vertical". Default: `"box_drawing"` ## ui.messages_list ### ui.messages_list.compact Default: `false` ### ui.messages_list.gap The number of empty rows between messages. Default: `1` ### ui.messages_list.reply_indicator Default: `">"` ### ui.messages_list.forwarded_indicator Default: `"<"` ### ui.messages_list.attachments #### ui.messages_list.attachments.show_links Default: `true` #### ui.messages_list.attachments.allowed_mime_types Attachment MIME types that can be opened or downloaded without confirmation. Exact types and wildcards such as "image/*" are supported. Default: `["image/*", "video/*"]` #### ui.messages_list.attachments.preview Whether to draw image attachments and embedded images below their messages. Default: `true` #### ui.messages_list.attachments.protocol How previews are drawn: "auto", "kitty" or "halfblocks". Default: `"auto"` ### ui.messages_list.avatars #### ui.messages_list.avatars.preview Default: `true` #### ui.messages_list.avatars.height The number of rows an avatar takes. It is recommended to use `1` with compact. Default: `2` ## ui.mentions_list The list of mention suggestions above the composer. Its width and height are capped to the available space. ### ui.mentions_list.min_width Minimum width. 0 makes the list as wide as possible. Default: `20` ### ui.mentions_list.max_height Maximum height. 0 makes the list as tall as needed. Default: `0` # voice ## voice.sensitivity How loud the microphone must be for what is said to be sent, in dB below the loudest it can be. Default: `-40.0` # icons ## icons.guild_category Default: `""` ## icons.guild_text Default: `"#"` ## icons.guild_voice Default: `"♪ "` ## icons.guild_stage_voice Default: `"♪ "` ## icons.guild_announcement_thread Default: `"a-"` ## icons.guild_public_thread Default: `"› "` ## icons.guild_private_thread Default: `"› "` ## icons.guild_announcement Default: `"a-"` ## icons.guild_forum Default: `"≡ "` ## icons.guild_store Default: `"s-"` ## icons.voice_muted Shown after the members of a voice channel who are muted or deafened. Default: `" (muted)"` ## icons.voice_deafened Default: `" (deafened)"` # keybinds Global shortcuts. A keybind is a key such as "ctrl+k", or a list of keys. ## keybinds.toggle_guilds_tree Hide/show the guilds tree. Default: `"alt+g"` ## keybinds.toggle_members_tree Hide/show the members tree. Default: `"alt+m"` ## keybinds.toggle_channels_picker Default: `"ctrl+k"` ## keybinds.toggle_mute Start or stop sending what the microphone captures to the voice channel joined. Default: `"alt+v"` ## keybinds.toggle_deafen Stop or start playing what is said in the voice channel joined. Stopping also mutes. Default: `"alt+d"` ## keybinds.leave_voice Default: `"alt+l"` ## keybinds.toggle_help Hide/show keybind help. Default: `"alt+."` ## keybinds.toggle_full_help Switch between compact and full keybind help. Default: `"ctrl+."` ## keybinds.suspend Default: `"ctrl+z"` ## keybinds.focus_guilds_tree Default: `"ctrl+g"` ## keybinds.focus_members_tree Default: `"ctrl+y"` ## keybinds.focus_messages_list Default: `"ctrl+t"` ## keybinds.focus_composer Default: `"ctrl+i"` ## keybinds.focus_previous Cycle focus between the widgets. Default: `"ctrl+h"` ## keybinds.focus_next Default: `"ctrl+l"` ## keybinds.picker ### keybinds.picker.select_up Default: `"ctrl+p"` ### keybinds.picker.select_down Default: `"ctrl+n"` ### keybinds.picker.select_top Default: `"home"` ### keybinds.picker.select_bottom Default: `"end"` ### keybinds.picker.select Default: `"enter"` ### keybinds.picker.cancel Default: `"esc"` ## keybinds.guilds_tree Only while focusing on the guilds tree. ### keybinds.guilds_tree.scroll_up Scroll without changing the selection. Default: `"pgup"` ### keybinds.guilds_tree.scroll_down Default: `"pgdn"` ### keybinds.guilds_tree.scroll_top Default: `"home"` ### keybinds.guilds_tree.scroll_bottom Default: `"end"` ### keybinds.guilds_tree.scroll_left Scroll sideways to read names that are cut off. Default: `"h"` ### keybinds.guilds_tree.scroll_right Default: `"l"` ### keybinds.guilds_tree.select_up Default: `["k","up"]` ### keybinds.guilds_tree.select_down Default: `["j","down"]` ### keybinds.guilds_tree.select_top Default: `"g"` ### keybinds.guilds_tree.select_bottom Default: `"G"` ### keybinds.guilds_tree.select_current Select the highlighted text-based channel, or expand or collapse the highlighted node. Default: `"enter"` ### keybinds.guilds_tree.yank_id Default: `"i"` ### keybinds.guilds_tree.collapse_all Default: `"_"` ### keybinds.guilds_tree.collapse_parent_node Default: `"-"` ### keybinds.guilds_tree.move_to_parent_node Default: `"p"` ### keybinds.guilds_tree.select_previous_unread Highlight the previous or next unread guild or channel, wrapping around. Default: `"K"` ### keybinds.guilds_tree.select_next_unread Default: `"J"` ### keybinds.guilds_tree.toggle_voice Join the highlighted voice channel to listen, or leave it. Default: `"v"` ## keybinds.members_tree Only while focusing on the members tree. ### keybinds.members_tree.scroll_up Scroll without changing the selection. Default: `"pgup"` ### keybinds.members_tree.scroll_down Default: `"pgdn"` ### keybinds.members_tree.scroll_top Default: `"home"` ### keybinds.members_tree.scroll_bottom Default: `"end"` ### keybinds.members_tree.scroll_left Scroll sideways to read names that are cut off. Default: `"h"` ### keybinds.members_tree.scroll_right Default: `"l"` ### keybinds.members_tree.select_up Default: `["k","up"]` ### keybinds.members_tree.select_down Default: `["j","down"]` ### keybinds.members_tree.select_top Default: `"g"` ### keybinds.members_tree.select_bottom Default: `"G"` ### keybinds.members_tree.select_current Select the highlighted text-based channel, or expand or collapse the highlighted node. Default: `"enter"` ### keybinds.members_tree.yank_id Default: `"i"` ### keybinds.members_tree.collapse_all Default: `"_"` ### keybinds.members_tree.collapse_parent_node Default: `"-"` ### keybinds.members_tree.move_to_parent_node Default: `"p"` ## keybinds.messages_list Only while focusing on sent messages. ### keybinds.messages_list.select_up Default: `["k","up"]` ### keybinds.messages_list.select_down Default: `["j","down"]` ### keybinds.messages_list.select_top Default: `"g"` ### keybinds.messages_list.select_bottom Default: `"G"` ### keybinds.messages_list.scroll_up Scroll without changing the selection. Default: `"K"` ### keybinds.messages_list.scroll_down Default: `"J"` ### keybinds.messages_list.scroll_top Default: `"home"` ### keybinds.messages_list.scroll_bottom Default: `"end"` ### keybinds.messages_list.select_reply Select the message that the selected message replies to. Default: `"s"` ### keybinds.messages_list.reply Reply to the selected message. Default: `"R"` ### keybinds.messages_list.reply_mention Reply (with mention) to the selected message. Default: `"r"` ### keybinds.messages_list.cancel Default: `"esc"` ### keybinds.messages_list.edit Default: `"e"` ### keybinds.messages_list.delete Delete without confirmation. Unbound by default. Default: `""` ### keybinds.messages_list.delete_confirm Default: `"d"` ### keybinds.messages_list.open Open attachments with their associated application. MIME types outside the allowlist require confirmation. Hyperlinks still use the browser. Default: `"o"` ### keybinds.messages_list.open_in_browser Open attachments or hyperlinks in the browser. Default: `"O"` ### keybinds.messages_list.download Download one of the selected message's attachments. Default: `"D"` ### keybinds.messages_list.play Play, pause or resume the selected voice message. Default: `"p"` ### keybinds.messages_list.seek_backward Seek the voice message that is playing or paused. Default: `["h","left"]` ### keybinds.messages_list.seek_forward Default: `["l","right"]` ### keybinds.messages_list.yank_content Yank (copy) the selected message's content/url/id. Default: `"y"` ### keybinds.messages_list.yank_url Default: `"u"` ### keybinds.messages_list.yank_id Default: `"i"` ## keybinds.composer Only while typing a message. ### keybinds.composer.edit_last Edit your newest editable message loaded in the current channel, with no age limit. Only when the composer is empty, with no reply, attachments, or edit in progress. Default: `"up"` ### keybinds.composer.paste Paste from clipboard (supports both text and images). Default: `"ctrl+v"` ### keybinds.composer.send Default: `"enter"` ### keybinds.composer.newline Insert a new line at the cursor. Default: `"shift+enter"` ### keybinds.composer.cancel Remove existing text or cancel reply. Default: `"esc"` ### keybinds.composer.tab_complete Complete usernames when mentioning. Default: `"tab"` ### keybinds.composer.toggle_reply_mention Toggle whether a reply mentions its author. Default: `"shift+tab"` ### keybinds.composer.undo Default: `"ctrl+u"` ### keybinds.composer.open_editor Default: `"ctrl+e"` ### keybinds.composer.open_file_picker Default: `"ctrl+\\"` ## keybinds.mentions_list Only while the mention suggestions are shown. ### keybinds.mentions_list.select_up Default: `"ctrl+p"` ### keybinds.mentions_list.select_down Default: `"ctrl+n"` ### keybinds.mentions_list.select_top Default: `"home"` ### keybinds.mentions_list.select_bottom Default: `"end"` ## keybinds.logout Log out and remove the authentication token from keyring. Requires re-login upon restart. Default: `"ctrl+d"` ## keybinds.quit Default: `"ctrl+c"` # theme Styles of the widgets, each written as `{ foreground = "", background = "", attributes = "" or ["", ""], underline = "", underline_color = "" }`. ## theme.title ### theme.title.normal_style Default: `{ attributes = "dim" }` ### theme.title.active_style The style used while the widget is focused. Default: `{ foreground = "green", attributes = "bold" }` ## theme.footer ### theme.footer.normal_style Default: `{ attributes = "dim" }` ### theme.footer.active_style The style used while the widget is focused. Default: `{ foreground = "green", attributes = "bold" }` ## theme.border ### theme.border.normal_style Default: `{ attributes = "dim" }` ### theme.border.active_style The style used while the widget is focused. Default: `{ foreground = "green", attributes = "bold" }` ## theme.guilds_tree The status styles are those of direct-message recipients. ### theme.guilds_tree.graphics_color The color of the lines that give the tree its shape. Default: `"default"` ### theme.guilds_tree.online_style Default: `{ foreground = "green" }` ### theme.guilds_tree.idle_style Default: `{ foreground = "yellow" }` ### theme.guilds_tree.dnd_style Default: `{ foreground = "red" }` ### theme.guilds_tree.offline_style Default: `{ foreground = "gray" }` ### theme.guilds_tree.speaking_style The style of whoever is speaking in the voice channel joined. Default: `{ foreground = "green" }` ### theme.guilds_tree.voice_limit_style The style of how full a voice channel that has a user limit is. Default: `{ foreground = "dodgerblue" }` ## theme.members_tree The status styles are those of the dot before each member. ### theme.members_tree.graphics_color The color of the lines that give the tree its shape. Default: `"default"` ### theme.members_tree.online_style Default: `{ foreground = "green" }` ### theme.members_tree.idle_style Default: `{ foreground = "yellow" }` ### theme.members_tree.dnd_style Default: `{ foreground = "red" }` ### theme.members_tree.offline_style Default: `{ foreground = "gray" }` ## theme.scroll_bar ### theme.scroll_bar.track_style Default: `{ attributes = "dim" }` ### theme.scroll_bar.thumb_style Default: `{}` ## theme.messages_list ### theme.messages_list.author_style Default: `{}` ### theme.messages_list.mention_style Default: `{ foreground = "blue", attributes = "bold" }` ### theme.messages_list.emoji_style Default: `{ foreground = "green" }` ### theme.messages_list.url_style Default: `{ foreground = "blue" }` ### theme.messages_list.attachment_style Default: `{ foreground = "yellow" }` ### theme.messages_list.reaction_style Default: `{ attributes = "dim" }` ### theme.messages_list.own_reaction_style Default: `{ attributes = "bold" }` ### theme.messages_list.message_style Default: `{}` ### theme.messages_list.selected_message_style Default: `{ attributes = "reverse" }` ### theme.messages_list.embeds #### theme.messages_list.embeds.provider_style Default: `{ attributes = ["dim","italic"] }` #### theme.messages_list.embeds.author_style Default: `{ attributes = "italic" }` #### theme.messages_list.embeds.title_style Default: `{ foreground = "blue", attributes = "bold" }` #### theme.messages_list.embeds.description_style Default: `{ attributes = "dim" }` #### theme.messages_list.embeds.field_name_style Default: `{ attributes = "bold", underline = "solid" }` #### theme.messages_list.embeds.field_value_style Default: `{}` #### theme.messages_list.embeds.footer_style Default: `{ attributes = ["dim","italic"] }` #### theme.messages_list.embeds.url_style Default: `{ foreground = "blue", underline = "solid" }` ## theme.mentions_list ### theme.mentions_list.selected_style Default: `{ attributes = "reverse" }` ## theme.dialog ### theme.dialog.style Default: `{}` ### theme.dialog.background_style The style of everything behind the dialog. Default: `{ attributes = "dim" }` ## theme.help ### theme.help.short_key_style Default: `{ attributes = "dim" }` ### theme.help.short_desc_style Default: `{}` ### theme.help.full_key_style Default: `{ attributes = "dim" }` ### theme.help.full_desc_style Default: `{}`