index — dots-the-third @ 7376153875c44ade485fbc38bef11cdd91f29a88

I don't need nix, I have a way worse solution!

discordo: init
crispy-caesus crispy@crispy-caesus.eu
Sat, 10 Oct 2026 01:13:51 +0200
commit

7376153875c44ade485fbc38bef11cdd91f29a88

parent

ab91cd590e5f9c161ab563e36aab3f4b73dc27d0

1 files changed, 355 insertions(+), 0 deletions(-)

jump to
A discordo/.config/discordo/config.toml

@@ -0,0 +1,355 @@

+# Whether to focus the composer automatically when a channel is selected. +# Set to false to preview channels without moving focus. +auto_focus = false + +# Whether to enable mouse or not. +mouse = true +# The program to open when the `composer.open_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 + +# 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 + +[attachments] +show_links = true +# Attachment MIME types that can be opened or downloaded without confirmation. +# Exact types and wildcards such as "image/*" are supported. +allowed_mime_types = ["image/*", "video/*"] +# Whether to draw image attachments and embedded images below their messages. +preview = true +# How previews are drawn: "auto", "kitty" or "halfblocks". +protocol = "kitty" + +[composer] +# Maximum height (in newline-separated rows) the composer grows to before it starts scrolling internally. +# Set to 1 for a fixed single-line input. +max_height = 10 + +[markdown] +# Whether to parse and render markdown in messages or not. +enabled = true +# Replace spoiler contents with a placeholder. +mask_spoilers = false +# Theme for fenced code blocks. Available themes: https://xyproto.github.io/splash/docs +theme = "monokai" + +[help] +# Whether to show keybind help. +enabled = true +# 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 + +[ui.tabs] +# Where tabs that fit are placed: "left", "center" or "right". +alignment = "center" +# Whether moving past the last tab selects the first, and past the first selects the last. +wrap = false +# Text between tabs. +separator = "│" +# Text on either side of each tab: [left, right] +padding = [" ", " "] +# Arrows shown while tabs are hidden past an end: [start, end]. An empty string turns that arrow off. +arrows = ["◀", "▶"] +# Whether clicking an arrow selects the tab next to the active one. +clickable_arrows = true + +[timestamps] +enabled = false +# https://pkg.go.dev/time#Layout +format = "3:04PM" + +[date_separator] +enabled = true +# https://pkg.go.dev/time#Layout +format = "2006-01-02" +# The fill character used on both sides of the date label. +character = "─" + +[notifications] +enabled = true +# Whether to also notify about messages in the open channel while the terminal window is unfocused. Requires a terminal that reports focus. +when_unfocused = true + +[typing_indicator] +# Whether to send typing status or not. +send = true +# Whether to receive typing status or not. +receive = true + +[sidebar] +# Whether the guilds tree sidebar is visible by default at start-up. +# It can still be toggled at runtime with the `toggle_guilds_tree` keybind. +visible = true +# Percentage (%) of the available width used by the guilds tree sidebar. +# Valid values are 1-99. Invalid values fall back to 20. +width_percent = 40 + +[sidebar.markers] +expanded = "▾ " +collapsed = "▸ " +leaf = "" + +# Indentation for different item types. +[sidebar.indents] +dm = 2 +group_dm = 1 +guild = 2 +category = 1 +channel = 2 +forum = 2 + +[members_tree] +# Whether the members tree is visible by default at start-up. +# It can still be toggled at runtime with the `toggle_members_tree` keybind. +visible = false +# Percentage (%) of the width right of the guilds tree used by the members tree. +# Valid values are 1-99. Invalid values fall back to 20. +width_percent = 20 + +[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] +# Hide/show the guilds tree. +toggle_guilds_tree = "alt+g" +# Hide/show the members tree. +toggle_members_tree = "alt+m" +toggle_channels_picker = "ctrl+k" +# Hide/show keybind help. +toggle_help = "alt+." +# Switch between compact and full keybind help. +toggle_full_help = "ctrl+." +focus_guilds_tree = "ctrl+g" +focus_members_tree = "ctrl+y" +focus_messages_list = "ctrl+t" +focus_composer = "ctrl+i" +# Cycle focus between the widgets. +focus_previous = "ctrl+h" +focus_next = "ctrl+l" +# Log out and remove the authentication token from keyring. +# Requires re-login upon restart. +logout = "ctrl+d" +suspend = "ctrl+z" +quit = "ctrl+c" + +[keybinds.picker] +cancel = "esc" +select_up = "ctrl+p" +select_down = "ctrl+n" +select_top = "home" +select_bottom = "end" +select = "enter" + +# Only while focusing on the guilds tree +[keybinds.guilds_tree] +select_up = "k" +select_down = "j" +select_top = "g" +select_bottom = "G" +# Select the currently highlighted text-based channel or expand a guild or channel. +select_current = "enter" +yank_id = "i" +collapse_all = "_" +collapse_parent_node = "-" +move_to_parent_node = "p" + +# Only while focusing on the members tree +[keybinds.members_tree] +select_up = "k" +select_down = "j" +select_top = "g" +select_bottom = "G" +# Expand or collapse the highlighted group. +select_current = "enter" +yank_id = "i" +collapse_all = "_" +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 without confirmation. +# delete = "D" +delete_confirm = "d" +# Open attachments with their associated application. MIME types outside the +# allowlist require confirmation. Hyperlinks still use the browser. +open = "o" +# Open attachments or hyperlinks in the browser. +open_in_browser = "O" +# Download one of the selected message's attachments. +download = "D" +# Yank (copy) the selected message's content/url/id. +yank_content = "y" +yank_url = "u" +yank_id = "i" + +# Only while typing a message +[keybinds.composer] +# 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. +edit_last = "up" +# Paste from clipboard (supports both text and images) +paste = "ctrl+v" +send = "enter" +# Insert a new line at the cursor. +newline = "shift+enter" +# Remove existing text or cancel reply. +cancel = "esc" +# Complete usernames when mentioning +tab_complete = "tab" +# Toggle whether a reply mentions its author. +toggle_reply_mention = "shift+tab" +undo = "ctrl+u" + +open_editor = "ctrl+e" +open_file_picker = "ctrl+\\" + +[keybinds.mentions_list] +select_up = "ctrl+p" +select_down = "ctrl+n" +select_top = "home" +select_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" + +# Direct-message recipient presence styles. +online_style = { foreground = "green" } +idle_style = { foreground = "yellow" } +dnd_style = { foreground = "red" } +offline_style = { foreground = "gray" } + +[theme.members_tree] +# Give tree-like shape +graphics = true +graphics_color = "default" + +# Styles of the status dot before each member. +online_style = { foreground = "green" } +idle_style = { foreground = "yellow" } +dnd_style = { foreground = "red" } +offline_style = { foreground = "gray" } + +[theme.scroll_bar] +visibility = "auto" +# "minimal", "box_drawing", "vertical", or "double_vertical" +symbol_set = "box_drawing" +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" } + +reaction_style = { attributes = "dim" } +own_reaction_style = { attributes = "bold" } + +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 + +selected_style = { attributes = "reverse" } + +[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 = {}