# WARNING: Avoid passing your Discord token via the DISCORDO_TOKEN environment # variable in shared or multi-user environments. Environment variables are # visible to other processes (e.g. via /proc). Prefer the keyring-based login # flow instead. # 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" hide_blocked_users = true show_attachment_links = true # Program used to view image attachments. Must accept a file path as its # first argument. Set to "default" to use xdg-open / open. image_viewer = "mpv" # Extra arguments for the image viewer. When set, these are used instead of # auto-detected args (e.g. mpv geometry via xdotool). The file path is always # appended last. Example: ["--force-window", "--loop-file=inf"] # Useful on Wayland where xdotool geometry detection is unavailable. image_viewer_args = [] # Directory where images are saved with the save_image keybind. # Supports ~ for home directory. Leave empty to use the current directory. image_save_dir = "" # 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 [markdown] # Whether to parse and render markdown in messages or not. enabled = true # Theme for fenced code blocks. Available themes: https://xyproto.github.io/splash/docs theme = "monokai" [help] # Show compact key modifiers in help, e.g. "^x" instead of "ctrl+x". compact_modifiers = true # [left, right] padding = [1, 1] separator = " • " [picker] width = 80 height = 25 [timestamps] enabled = true # https://pkg.go.dev/time#Layout format = "3:04PM" [date_separator] enabled = true # https://pkg.go.dev/time#Layout format = "January 2, 2006" # The fill character used on both sides of the date label. character = "─" [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 [sidebar.markers] expanded = "▾ " collapsed = "▸ " leaf = "" [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] toggle_help = "?" edit_config = "E" 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" # Log out and remove the authentication token from keyring. # Requires re-login upon restart. logout = "ctrl+d" suspend = "ctrl+z" quit = "ctrl+c" command_mode = ":" [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 = "k" down = "j" top = "g" bottom = "G" # Select the currently highlighted text-based channel or expand a guild or channel. select_current = "enter" yank_id = "i" collapse_parent_node = "-" move_to_parent_node = "p" # Only while focusing on sent messages [keybinds.messages_list] select_up = "k" select_down = "j" select_top = "g" select_bottom = "G" # Scroll the messages list without changing the selection. scroll_up = "K" scroll_down = "J" scroll_top = "home" scroll_bottom = "end" # Select the message reference (reply) of the selected channel. select_reply = "s" # Reply to the selected message. reply = "R" # Reply (with mention) to the selected message. reply_mention = "r" cancel = "esc" edit = "e" delete = "D" delete_confirm = "d" # Open the selected message's attachments or hyperlinks in the message # using the default browser application. open = "o" # Save the selected message's image attachment to image_save_dir. save_image = "S" user_info = "w" open_thread = "t" search = "/" # Yank (copy) the selected message's content/url/id. yank_content = "y" yank_url = "u" yank_id = "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" undo = "ctrl+u" open_editor = "ctrl+e" open_file_picker = "ctrl+\\" [keybinds.mentions_list] up = "ctrl+p" down = "ctrl+n" top = "home" bottom = "end" # style = { foreground = "", background = "", attributes = "" or ["",""], underline = "", underline_color = "" } [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" # Guilds tree indentation for different item types [theme.guilds_tree.indents] dm = 2 group_dm = 1 guild = 2 # server inside a folder category = 1 channel = 2 forum = 2 [theme.scroll_bar] visibility = "auto" # "minimal", "box_drawing", or "unicode" glyph_set = "unicode" track_style = { attributes = "dim" } thumb_style = {} [theme.messages_list] reply_indicator = ">" forwarded_indicator = "<" mention_style = { foreground = "blue", attributes = "bold" } emoji_style = { foreground = "green" } url_style = { foreground = "blue" } attachment_style = { foreground = "yellow" } message_style = {} selected_message_style = { attributes = "reverse" } [theme.messages_list.embeds] provider_style = { attributes = ["dim", "italic"] } author_style = { attributes = "italic" } title_style = { foreground = "blue", attributes = "bold" } description_style = { attributes = "dim" } field_name_style = { attributes = ["bold", "underline"] } field_value_style = {} footer_style = { attributes = ["dim", "italic"] } url_style = { foreground = "blue", underline = "solid" } [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" } [theme.help] short_key_style = { attributes = "dim" } short_desc_style = {} full_key_style = { attributes = "dim" } full_desc_style = {}