config.toml (15817B)
1 # This is the default config file. 2 # It also shows all the default values, if you don't create the file. 3 # You can edit this file to set your own configuration for Amfora. 4 5 # When Amfora updates, defaults may change, but this file on your drive will not. 6 # You can always get the latest defaults on GitHub. 7 # https://github.com/makeworld-the-better-one/amfora/blob/master/default-config.toml 8 9 # Please also check out the Amfora Wiki for more help 10 # https://github.com/makeworld-the-better-one/amfora/wiki 11 # gemini://makeworld.space/amfora-wiki/ 12 13 14 15 # All URL values may omit the scheme and/or port, as well as the beginning double slash 16 # Valid URL examples: 17 # gemini://example.com 18 # //example.com 19 # example.com 20 # example.com:123 21 22 23 [a-general] 24 # Press Ctrl-H to access it 25 home = "gemini://geminiprotocol.net" 26 27 # Follow up to 5 Gemini redirects without prompting. 28 # A prompt is always shown after the 5th redirect and for redirects to protocols other than Gemini. 29 # If set to false, a prompt will be shown before following redirects. 30 auto_redirect = false 31 32 # What command to run to open a HTTP(S) URL. 33 # Set to "default" to try to guess the browser, or set to "off" to not open HTTP(S) URLs. 34 # If a command is set, than the URL will be added (in quotes) to the end of the command. 35 # A space will be prepended to the URL. 36 # 37 # The best way to define a command is using a string array. 38 # Examples: 39 # http = ['firefox'] 40 # http = ['custom-browser', '--flag', '--option=2'] 41 # http = ['/path/with spaces/in it/firefox'] 42 # 43 # Note the use of single quotes, so that backslashes will not be escaped. 44 # Using just a string will also work, but it is deprecated, and will degrade if 45 # you use paths with spaces. 46 47 http = 'default' 48 49 # Any URL that will accept a query string can be put here 50 search = "gemini://geminispace.info/search" 51 52 # Whether colors will be used in the terminal 53 color = true 54 55 # Whether ANSI color codes from the page content should be rendered 56 ansi = true 57 58 # Whether or not to support source code highlighting in preformatted blocks based on alt text 59 highlight_code = true 60 61 # Which highlighting style to use (see https://xyproto.github.io/splash/docs/) 62 highlight_style = "monokai" 63 64 # Whether to replace list asterisks with unicode bullets 65 bullets = true 66 67 # Whether to show link after link text 68 show_link = false 69 70 # The max number of columns to wrap a page's text to. Preformatted blocks are not wrapped. 71 max_width = 80 72 73 # 'downloads' is the path to a downloads folder. 74 # An empty value means the code will find the default downloads folder for your system. 75 # If the path does not exist it will be created. 76 # Note the use of single quotes, so that backslashes will not be escaped. 77 downloads = '' 78 79 # Max size for displayable content in bytes - after that size a download window pops up 80 page_max_size = 2097152 # 2 MiB 81 # Max time it takes to load a page in seconds - after that a download window pops up 82 page_max_time = 10 83 84 # When a scrollbar appears. "never", "auto", and "always" are the only valid values. 85 # "auto" means the scrollbar only appears when the page is longer than the window. 86 scrollbar = "auto" 87 88 # Underline non-gemini URLs 89 # This is done to help color blind users 90 underline = true 91 92 93 [auth] 94 # Authentication settings 95 # Note the use of single quotes for values, so that backslashes will not be escaped. 96 97 [auth.certs] 98 # Client certificates 99 # Set URL equal to path to client cert file 100 # 101 # "example.com" = 'mycert.crt' # Cert is used for all paths on this domain 102 # "example.com/dir/"= 'mycert.crt' # Cert is used for /dir/ and everything below only 103 # 104 # See the comment at the beginning of this file for examples of all valid types of 105 # URLs, ports and schemes can be used too 106 107 [auth.keys] 108 # Client certificate keys 109 # Same as [auth.certs] but the path is to the client key file. 110 111 112 [commands] 113 # Define up to 10 custom commands to execute on the corresponding hotkey press. 114 # Commands are run in a new process and will not terminate when Amfora is closed. 115 # If you need your command to accept additional input, it is recommended to open 116 # a GUI or use a terminal multiplexer like screen or tmux. The string ${url} will 117 # be replaced with the current or selected URL. Note that pipes and redirections 118 # are not allowed, if these are needed then you should set up a script. Use only 119 # absolute paths and/or reference executables in your $PATH. 120 # command1 = "my-script -a -b -c ${url}" 121 # command2 = "" 122 # command3 = "" 123 # command4 = "" 124 # command5 = "" 125 # command6 = "" 126 # command7 = "" 127 # command8 = "" 128 # command9 = "" 129 # command0 = "" 130 131 132 [keybindings] 133 # If you have a non-US keyboard, use bind_tab1 through bind_tab0 to 134 # setup the shift-number bindings: Eg, for US keyboards (the default): 135 # bind_tab1 = "!" 136 # bind_tab2 = "@" 137 # bind_tab3 = "#" 138 # bind_tab4 = "$" 139 # bind_tab5 = "%" 140 # bind_tab6 = "^" 141 # bind_tab7 = "&" 142 # bind_tab8 = "*" 143 # bind_tab9 = "(" 144 # bind_tab0 = ")" 145 146 # Whitespace is not allowed in any of the keybindings! Use 'Space' and 'Tab' to bind to those keys. 147 # Multiple keys can be bound to one command, just use a TOML array. 148 # To add the Alt modifier, the binding must start with Alt-, should be reasonably universal 149 # Ctrl- won't work on all keys, see this for a list: 150 # https://github.com/gdamore/tcell/blob/cb1e5d6fa606/key.go#L83 151 152 # An example of a TOML array for multiple keys being bound to one command is the default 153 # binding for reload: 154 # bind_reload = ["R","Ctrl-R"] 155 # One thing to note here is that "R" is capitalization sensitive, so it means shift-r. 156 # "Ctrl-R" means both ctrl-r and ctrl-shift-R (this is a quirk of what ctrl-r means on 157 # an ANSI terminal) 158 159 # The default binding for opening the bottom bar for entering a URL or link number is: 160 # bind_bottom = "Space" 161 # This is how to get the Spacebar as a keybinding, if you try to use " ", it won't work. 162 # And, finally, an example of a simple, unmodified character is: 163 # bind_edit = "e" 164 # This binds the "e" key to the command to edit the current URL. 165 166 # The bind_link[1-90] options are for the commands to go to the first 10 links on a page, 167 # typically these are bound to the number keys: 168 # bind_link1 = "1" 169 # bind_link2 = "2" 170 # bind_link3 = "3" 171 # bind_link4 = "4" 172 # bind_link5 = "5" 173 # bind_link6 = "6" 174 # bind_link7 = "7" 175 # bind_link8 = "8" 176 # bind_link9 = "9" 177 # bind_link0 = "0" 178 179 # The bind_command[0-9] options are for the command hotkeys. This will pass the URL of the 180 # current tab as an argument. 181 # bind_command1 = "Alt-!" 182 # bind_command2 = "Alt-@" 183 # bind_command3 = "Alt-#" 184 # bind_command4 = "Alt-$" 185 # bind_command5 = "Alt-%" 186 # bind_command6 = "Alt-^" 187 # bind_command7 = "Alt-&" 188 # bind_command8 = "Alt-*" 189 # bind_command9 = "Alt-(" 190 # bind_command0 = "Alt-)" 191 192 # The bind_commandtarget[0-9] options are for command hotkeys that operate on the currently 193 # highlighted link. This will pass the URL of the highlighted link as an argument. 194 # bind_command_target1 = "Alt-1" 195 # bind_command_target2 = "Alt-2" 196 # bind_command_target3 = "Alt-3" 197 # bind_command_target4 = "Alt-4" 198 # bind_command_target5 = "Alt-5" 199 # bind_command_target6 = "Alt-6" 200 # bind_command_target7 = "Alt-7" 201 # bind_command_target8 = "Alt-8" 202 # bind_command_target9 = "Alt-9" 203 # bind_command_target0 = "Alt-0" 204 205 # All keybindings: 206 # 207 # bind_bottom 208 # bind_edit 209 # bind_home 210 # bind_bookmarks 211 # bind_add_bookmark 212 # bind_save 213 # bind_reload 214 # bind_back 215 # bind_forward 216 # bind_moveup 217 # bind_movedown 218 # bind_moveleft 219 # bind_moveright 220 # bind_pgup 221 # bind_pgdn 222 # bind_new_tab 223 # bind_close_tab 224 # bind_next_tab 225 # bind_prev_tab 226 # bind_quit 227 # bind_help 228 # bind_sub: for viewing the subscriptions page 229 # bind_add_sub 230 # bind_copy_page_url 231 # bind_copy_target_url 232 # bind_beginning: moving to beginning of page (top left) 233 # bind_end: same but the for the end (bottom left) 234 # bind_url_handler_open: Open highlighted URL with URL handler (#143) 235 236 # Search 237 # bind_search = "/" 238 # bind_next_match = "n" 239 # bind_prev_match = "N" 240 241 [url-handlers] 242 # Allows setting the commands to run for various URL schemes. 243 # E.g. to open FTP URLs with FileZilla set the following key: 244 # ftp = ['filezilla'] 245 # You can set any scheme to 'off' or '' to disable handling it, or 246 # just leave the key unset. 247 # 248 # DO NOT use this for setting the HTTP command. 249 # Use the http setting in the "a-general" section above. 250 # 251 # NOTE: These settings are overridden by the ones in the proxies section. 252 # 253 # The best way to define a command is using a string array. 254 # Examples: 255 # magnet = ['transmission'] 256 # foo = ['custom-browser', '--flag', '--option=2'] 257 # tel = ['/path/with spaces/in it/telephone'] 258 # 259 # Note the use of single quotes, so that backslashes will not be escaped. 260 # Using just a string will also work, but it is deprecated, and will degrade if 261 # you use paths with spaces. 262 263 # This is a special key that defines the handler for all URL schemes for which 264 # no handler is defined. 265 # It uses the special value 'default', which will try and use the default 266 # application on your computer for opening this kind of URI. 267 other = 'default' 268 269 [url-prompts] 270 # Specify whether a confirmation prompt should be shown before following URL schemes. 271 # The special key 'other' matches all schemes that don't match any other key. 272 # 273 # Example: prompt on every non-gemini URL 274 # other = true 275 # gemini = false 276 # 277 # Example: only prompt on HTTP(S) 278 # other = false 279 # http = true 280 # https = true 281 282 # [[mediatype-handlers]] section 283 # --------------------------------- 284 # 285 # Specify what applications will open certain media types. 286 # By default your default application will be used to open the file when you select "Open". 287 # You only need to configure this section if you want to override your default application, 288 # or do special things like streaming. 289 # 290 # Note the use of single quotes for commands, so that backslashes will not be escaped. 291 # 292 # 293 # To open jpeg files with the feh command: 294 # 295 # [[mediatype-handlers]] 296 # cmd = ['feh'] 297 # types = ["image/jpeg"] 298 # 299 # Each command that you specify must come under its own [[mediatype-handlers]]. You may 300 # specify as many [[mediatype-handlers]] as you want to setup multiple commands. 301 # 302 # If the subtype is omitted then the specified command will be used for the 303 # entire type: 304 # 305 # [[mediatype-handlers]] 306 # command = ['vlc', '--flag'] 307 # types = ["audio", "video"] 308 # 309 # A catch-all handler can by specified with "*". 310 # Note that there are already catch-all handlers in place for all OSes, 311 # that open the file using your default application. This is only if you 312 # want to override that. 313 # 314 # [[mediatype-handlers]] 315 # cmd = ['some-command'] 316 # types = [ 317 # "application/pdf", 318 # "*", 319 # ] 320 # 321 # You can also choose to stream the data instead of downloading it all before 322 # opening it. This is especially useful for large video or audio files, as 323 # well as radio streams, which will never complete. You can do this like so: 324 # 325 # [[mediatype-handlers]] 326 # cmd = ['vlc', '-'] 327 # types = ["audio", "video"] 328 # stream = true 329 # 330 # This uses vlc to stream all video and audio content. 331 # By default stream is set to off for all handlers 332 # 333 # 334 # If you want to always open a type in its viewer without the download or open 335 # prompt appearing, you can add no_prompt = true 336 # 337 # [[mediatype-handlers]] 338 # cmd = ['feh'] 339 # types = ["image"] 340 # no_prompt = true 341 # 342 # Note: Multiple handlers cannot be defined for the same full media type, but 343 # still there needs to be an order for which handlers are used. The following 344 # order applies regardless of the order written in the config: 345 # 346 # 1. Full media type: "image/jpeg" 347 # 2. Just type: "image" 348 # 3. Catch-all: "*" 349 350 351 [cache] 352 # Options for page cache - which is only for text pages 353 # Increase the cache size to speed up browsing at the expense of memory 354 # Zero values mean there is no limit 355 356 max_size = 0 # Size in bytes 357 max_pages = 30 # The maximum number of pages the cache will store 358 359 # How long a page will stay in cache, in seconds. 360 timeout = 1800 # 30 mins 361 362 [proxies] 363 # Allows setting a Gemini proxy for different schemes. 364 # The settings are similar to the url-handlers section above. 365 # E.g. to open a gopher page by connecting to a Gemini proxy server: 366 # gopher = "example.com:123" 367 # 368 # Port 1965 is assumed if no port is specified. 369 # 370 # NOTE: These settings override any external handlers specified in 371 # the url-handlers section. 372 # 373 # Note that HTTP and HTTPS are treated as separate protocols here. 374 375 376 [subscriptions] 377 # For tracking feeds and pages 378 379 # Whether a pop-up appears when viewing a potential feed 380 popup = true 381 382 # How often to check for updates to subscriptions in the background, in seconds. 383 # Set it to 0 to disable this feature. You can still update individual feeds 384 # manually, or restart the browser. 385 # 386 # Note Amfora will check for updates on browser start no matter what this setting is. 387 update_interval = 1800 # 30 mins 388 389 # How many subscriptions can be checked at the same time when updating. 390 # If you have many subscriptions you may want to increase this for faster 391 # update times. Any value below 1 will be corrected to 1. 392 workers = 3 393 394 # The number of subscription updates displayed per page. 395 entries_per_page = 20 396 397 # Set to false to remove the explanatory text from the top of the subscription page 398 header = true 399 400 401 [theme] 402 # This section is for changing the COLORS used in Amfora. 403 # These colors only apply if 'color' is enabled above. 404 # Colors can be set using a W3C color name, or a hex value such as "#ffffff". 405 # Setting a background to "default" keeps the terminal default 406 # If your terminal has transparency, set any background to "default" to keep it transparent 407 # The key "bg" is already set to "default", but this can be used on other backgrounds, 408 # like for modals. 409 410 # Note that not all colors will work on terminals that do not have truecolor support. 411 # If you want to stick to the standard 16 or 256 colors, you can get 412 # a list of those here: https://jonasjacek.github.io/colors/ 413 # DO NOT use the names from that site, just the hex codes. 414 415 # Definitions: 416 # bg = background 417 # fg = foreground 418 # dl = download 419 # btn = button 420 # hdg = heading 421 # bkmk = bookmark 422 # modal = a popup window/box in the middle of the screen 423 424 # EXAMPLES: 425 # hdg_1 = "green" 426 # hdg_2 = "#5f0000" 427 # bg = "default" 428 429 # Available keys to set: 430 431 # bg: background for pages, tab row, app in general 432 # tab_num: The number/highlight of the tabs at the top 433 # tab_divider: The color of the divider character between tab numbers: | 434 # bottombar_label: The color of the prompt that appears when you press space 435 # bottombar_text: The color of the text you type 436 # bottombar_bg 437 # scrollbar: The scrollbar that appears on the right for long pages 438 439 # You can also set an 'include' key to process another TOML file that contains theme keys. 440 # Example: 441 # include = "my/path/to/special-theme.toml" 442 # 443 # Any other theme keys will override this external file. 444 # You can use this special key to switch between themes easily. 445 # Download other themes here: https://github.com/makeworld-the-better-one/amfora/tree/master/contrib/themes 446 447 448 # hdg_1 449 # hdg_2 450 # hdg_3 451 # amfora_link: A link that Amfora supports viewing. For now this is only gemini:// 452 # foreign_link: HTTP(S), Gopher, etc 453 # link_number: The silver number that appears to the left of a link 454 # regular_text: Normal gemini text, and plaintext documents 455 # quote_text 456 # preformatted_text 457 # list_text 458 459 # btn_bg: The bg color for all modal buttons 460 # btn_text: The text color for all modal buttons 461 462 # dl_choice_modal_bg 463 # dl_choice_modal_text 464 # dl_modal_bg 465 # dl_modal_text 466 # info_modal_bg 467 # info_modal_text 468 # error_modal_bg 469 # error_modal_text 470 # yesno_modal_bg 471 # yesno_modal_text 472 # tofu_modal_bg 473 # tofu_modal_text 474 # subscription_modal_bg 475 # subscription_modal_text 476 477 # input_modal_bg 478 # input_modal_text 479 # input_modal_field_bg: The bg of the input field, where you type the text 480 # input_modal_field_text: The color of the text you type 481 482 # bkmk_modal_bg 483 # bkmk_modal_text 484 # bkmk_modal_label 485 # bkmk_modal_field_bg 486 # bkmk_modal_field_text