20 KiB
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.spacing
The number of empty rows between messages, except those of a group.
Default: 1
ui.messages_list.show_user_status
Whether to show the author's presence status dot alongside their name.
Default: false
ui.messages_list.reply_indicator
Default: ">"
ui.messages_list.forwarded_indicator
Default: "<"
ui.messages_list.image_protocol
How avatars and attachment previews are drawn: "auto", "kitty" or "halfblocks".
Default: "auto"
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/*", "audio/*"]
ui.messages_list.attachments.preview
Whether to draw image attachments and embedded images below their messages.
Default: true
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.messages_list.grouping
ui.messages_list.grouping.enabled
Default: true
ui.messages_list.grouping.interval
The longest time between two messages by the same author for them to share a header.
Default: "10m0s"
ui.messages_list.emojis
ui.messages_list.emojis.show_emoji_name
Whether the name is shown after the image. Without an image, it always is.
Default: false
ui.messages_list.emojis.colons_around_name
Whether the names of custom emoji are shown between colons, as in :name:.
Default: false
ui.messages_list.reactions
ui.messages_list.reactions.show_emoji_name
Whether the name is shown after the image. Without an image, it always is.
Default: false
ui.messages_list.reactions.colons_around_name
Whether the names of custom emoji are shown between colons, as in :name:.
Default: false
ui.messages_list.reactions.separator
The text between reactions.
Default: " • "
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.react
Add an emoji reaction to the selected message.
Default: "a"
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: {}