config.toml 6.9 KB

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