config.toml 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. # WARNING: Avoid passing your Discord token via the DISCORDO_TOKEN environment
  2. # variable in shared or multi-user environments. Environment variables are
  3. # visible to other processes (e.g. via /proc). Prefer the keyring-based login
  4. # flow instead.
  5. # Whether to focus the message input automatically when a channel is selected.
  6. # Set to false to preview channels without moving focus.
  7. auto_focus = true
  8. # Whether to enable mouse or not.
  9. mouse = true
  10. # The program to open when the `message_input.editor` keybind is pressed. Set the value to `"default"` to use `$EDITOR`.
  11. editor = "default"
  12. # "default" (unknown), "online", "dnd", "idle", "invisible", "offline"
  13. status = "default"
  14. hide_blocked_users = true
  15. # Program used to view image attachments. Must accept a file path as its
  16. # first argument. Set to "default" to use xdg-open / open.
  17. image_viewer = "mpv"
  18. # Extra arguments for the image viewer. When set, these are used instead of
  19. # auto-detected args (e.g. mpv geometry via xdotool). The file path is always
  20. # appended last. Example: ["--force-window", "--loop-file=inf"]
  21. # Useful on Wayland where xdotool geometry detection is unavailable.
  22. image_viewer_args = []
  23. # Directory where images are saved with the save_image keybind.
  24. # Supports ~ for home directory. Leave empty to use the current directory.
  25. image_save_dir = ""
  26. # Max members to be in the mention autocomplete suggestions list
  27. # Note: Use autocomplete_limit = 0 to disable.
  28. autocomplete_limit = 20
  29. # 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.
  30. messages_limit = 50
  31. [markdown]
  32. # Whether to parse and render markdown in messages or not.
  33. enabled = true
  34. # Theme for fenced code blocks. Available themes: https://xyproto.github.io/splash/docs
  35. theme = "monokai"
  36. [help]
  37. # Show compact key modifiers in help, e.g. "^x" instead of "ctrl+x".
  38. compact_modifiers = true
  39. # [left, right]
  40. padding = [1, 1]
  41. separator = " • "
  42. [picker]
  43. width = 80
  44. height = 25
  45. [timestamps]
  46. enabled = true
  47. # https://pkg.go.dev/time#Layout
  48. format = "3:04PM"
  49. [date_separator]
  50. enabled = true
  51. # https://pkg.go.dev/time#Layout
  52. format = "January 2, 2006"
  53. # The fill character used on both sides of the date label.
  54. character = "─"
  55. [notifications]
  56. enabled = true
  57. # The duration of the sound. Set the value to `0` to use default duration. This is only supported on Unix and Windows.
  58. duration = 0
  59. [notifications.sound]
  60. enabled = true
  61. only_on_ping = true
  62. [typing_indicator]
  63. # Whether to send typing status or not.
  64. send = true
  65. # Whether to receive typing status or not.
  66. receive = true
  67. [sidebar.markers]
  68. expanded = "▾ "
  69. collapsed = "▸ "
  70. leaf = ""
  71. [icons]
  72. guild_category = ""
  73. guild_text = "#"
  74. guild_voice = "♪ "
  75. guild_stage_voice = "♪ "
  76. guild_announcement_thread = "a-"
  77. guild_public_thread = "› "
  78. guild_private_thread = "› "
  79. guild_announcement = "a-"
  80. guild_forum = "≡ "
  81. guild_store = "s-"
  82. # Global shortcuts
  83. # Esc: Reset message selection or close the channel selection popup.
  84. [keybinds]
  85. toggle_help = "?"
  86. edit_config = "E"
  87. focus_guilds_tree = "ctrl+g"
  88. focus_messages_list = "ctrl+t"
  89. focus_message_input = "i"
  90. # Cycle focus between the widgets.
  91. focus_previous = "h"
  92. focus_next = "l"
  93. # Back/cancel (same as ESC).
  94. back = "b"
  95. # Hide/show the guilds tree.
  96. toggle_guilds_tree = "H"
  97. # Open file picker to attach files.
  98. attach_file = "I"
  99. # Open channels picker.
  100. toggle_channels_picker = "c"
  101. # Log out and remove the authentication token from keyring.
  102. # Requires re-login upon restart.
  103. logout = "ctrl+d"
  104. suspend = "ctrl+z"
  105. quit = "ctrl+c"
  106. command_mode = ":"
  107. [keybinds.picker]
  108. toggle = "ctrl+k"
  109. cancel = "esc"
  110. up = "ctrl+p"
  111. down = "ctrl+n"
  112. top = "home"
  113. bottom = "end"
  114. select = "enter"
  115. # Only while focusing on the guilds tree
  116. [keybinds.guilds_tree]
  117. up = "k"
  118. down = "j"
  119. top = "g"
  120. bottom = "G"
  121. # Select the currently highlighted text-based channel or expand a guild or channel.
  122. select_current = "enter"
  123. yank_id = "C"
  124. collapse_parent_node = "-"
  125. move_to_parent_node = "p"
  126. arrow_up = "up"
  127. arrow_down = "down"
  128. arrow_left = "left"
  129. arrow_right = "right"
  130. # Only while focusing on sent messages
  131. [keybinds.messages_list]
  132. select_up = "k"
  133. select_down = "j"
  134. select_top = "g"
  135. select_bottom = "G"
  136. # Scroll the messages list without changing the selection.
  137. scroll_up = "K"
  138. scroll_down = "J"
  139. scroll_top = "home"
  140. scroll_bottom = "end"
  141. # Select the message reference (reply) of the selected channel.
  142. select_reply = "s"
  143. # Reply to the selected message.
  144. reply = "r"
  145. # Reply (with mention) to the selected message.
  146. reply_mention = "R"
  147. cancel = "esc"
  148. edit = "e"
  149. delete = "D"
  150. delete_confirm = "d"
  151. # Open the selected message's attachments or hyperlinks in the message
  152. # using the default browser application.
  153. open = "o"
  154. # Save the selected message's image attachment to image_save_dir.
  155. save_image = "S"
  156. user_info = "w"
  157. open_thread = "T"
  158. toggle_timestamps = "t"
  159. toggle_replies = "Z"
  160. add_reaction = "e"
  161. view_reactions = "v"
  162. search = "/"
  163. arrow_up = "up"
  164. arrow_down = "down"
  165. arrow_left = "left"
  166. arrow_right = "right"
  167. # Yank (copy) the selected message's content/url/id.
  168. yank_content = "y"
  169. yank_url = "u"
  170. yank_id = "C"
  171. # Only while typing a message
  172. # Alt+Enter: Insert a new line to the current text.
  173. [keybinds.message_input]
  174. # paste from clipboard (supports both text and images)
  175. paste = "ctrl+v"
  176. send = "enter"
  177. # Remove existing text or cancel reply.
  178. cancel = "esc"
  179. # Complete usernames when mentioning
  180. tab_complete = "tab"
  181. undo = "ctrl+u"
  182. open_editor = "ctrl+e"
  183. open_file_picker = "ctrl+\\"
  184. [keybinds.mentions_list]
  185. up = "ctrl+p"
  186. down = "ctrl+n"
  187. top = "home"
  188. bottom = "end"
  189. # style = { foreground = "", background = "", attributes = "" or ["",""], underline = "", underline_color = "" }
  190. [theme.title]
  191. alignment = "left" # `"left"`, `"center"`, or `"right"`.
  192. normal_style = { attributes = "dim" }
  193. active_style = { foreground = "green", attributes = "bold" }
  194. [theme.footer]
  195. alignment = "left"
  196. normal_style = { attributes = "dim" }
  197. active_style = { foreground = "green", attributes = "bold" }
  198. [theme.border]
  199. enabled = true
  200. padding = [0, 0, 1, 1] # [top, bottom, left, right]
  201. normal_style = { attributes = "dim" }
  202. active_style = { foreground = "green", attributes = "bold" }
  203. # `"hidden"`, `"plain"`, `"round"`, `"thick"`, or `"double"`.
  204. normal_set = "round"
  205. active_set = "round"
  206. [theme.guilds_tree]
  207. auto_expand_folders = true
  208. # Give tree-like shape
  209. graphics = true
  210. graphics_color = "default"
  211. # Guilds tree indentation for different item types
  212. [theme.guilds_tree.indents]
  213. dm = 2
  214. group_dm = 1
  215. guild = 2 # server inside a folder
  216. category = 1
  217. channel = 2
  218. forum = 2
  219. [theme.scroll_bar]
  220. visibility = "auto"
  221. # "minimal", "box_drawing", or "unicode"
  222. glyph_set = "unicode"
  223. track_style = { attributes = "dim" }
  224. thumb_style = {}
  225. [theme.messages_list]
  226. reply_indicator = ">"
  227. forwarded_indicator = "<"
  228. mention_style = { foreground = "blue", attributes = "bold" }
  229. emoji_style = { foreground = "green" }
  230. url_style = { foreground = "blue" }
  231. attachment_style = { foreground = "yellow" }
  232. message_style = {}
  233. selected_message_style = { attributes = "reverse" }
  234. [theme.messages_list.embeds]
  235. provider_style = { attributes = ["dim", "italic"] }
  236. author_style = { attributes = "italic" }
  237. title_style = { foreground = "blue", attributes = "bold" }
  238. description_style = { attributes = "dim" }
  239. field_name_style = { attributes = ["bold", "underline"] }
  240. field_value_style = {}
  241. footer_style = { attributes = ["dim", "italic"] }
  242. url_style = { foreground = "blue", underline = "solid" }
  243. [theme.mentions_list]
  244. # Note: width and height are capped to the avaliable space
  245. # Minimum width
  246. # 0 = make the list as wide as possible
  247. min_width = 20
  248. # Maximum height
  249. # 0 = make the list as tall as needed
  250. max_height = 0
  251. [theme.dialog]
  252. style = {}
  253. # Background style: everything else behind the dialog
  254. background_style = { attributes = "dim" }
  255. [theme.help]
  256. short_key_style = { attributes = "dim" }
  257. short_desc_style = {}
  258. full_key_style = { attributes = "dim" }
  259. full_desc_style = {}