Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Settings

Set these in config.toml (hints.chars = "asdf"), config.lua (c.hints.chars = "asdf") or with :set hints.chars asdf.

SettingTypeDefaultDescription
aliasestable<string, string>{"q":"close","qa":"quit","w":"session-save","wq":"quit --save","wqa":"quit --save"}Command aliases: name → command. As in qutebrowser, :q closes the window, :qa quits, :w saves the session and :wq saves and quits
auto_save.intervalinteger15000Milliseconds between crash-recovery saves of the open tabs (0 turns them off)
auto_save.sessionbooleanfalseSave the open tabs as the 'default' session on quit, and restore them at startup
bindings.key_mappingstable<string, string>{"<Ctrl-6>":"<Ctrl-^>","<Ctrl-[>":"<Escape>","<Ctrl-i>":"<Tab>","<Ctrl-j>":"<Return>","<Ctrl-m>":"<Return>","<Shift-Return>":"<Return>"}Keys treated as other keys in every mode, before bindings are looked up, e.g. Ctrl-[ as Escape
changelog_after_upgrademajor | minor | patch | neverminorOpen the changelog in a tab after an upgrade of at least this size: major, minor, patch or never
colors.completion.category.bgstring``Background of completion category headers; empty uses ui.theme's
colors.completion.category.fgstring``Text of completion category headers; empty uses ui.theme's
colors.completion.description.fgstring``Descriptions and details in the completion list; empty uses ui.theme's
colors.completion.fgstring``Completion list text; empty uses ui.theme's
colors.completion.item.selected.bgstring``Background of the selected completion; empty uses ui.theme's
colors.completion.item.selected.fgstring``Text of the selected completion; empty uses ui.theme's
colors.completion.match.fgstring``The typed text where it appears in completion items; empty uses ui.theme's
colors.completion.odd.bgstring``Completion list background; empty uses ui.theme's
colors.hints.bgstring``Background of hint labels; empty uses ui.theme's
colors.hints.borderstring``Border of hint labels; empty uses ui.theme's
colors.hints.fgstring``Text of hint labels; empty uses ui.theme's
colors.hints.match.fgstring``The typed part of hint labels; empty uses ui.theme's
colors.keyhint.suffix.fgstring``The keys still to type in the key hint popup; empty uses ui.theme's
colors.messages.error.bgstring``Background of error messages; empty uses ui.theme's
colors.messages.error.fgstring``Text of error messages; empty uses ui.theme's
colors.messages.warning.bgstring``Background of warnings; empty uses ui.theme's
colors.messages.warning.fgstring``Text of warnings; empty uses ui.theme's
colors.prompts.bgstring``Background of prompts; empty uses ui.theme's
colors.prompts.borderstring``Frame, title and keys of floating prompts; empty uses ui.theme's
colors.prompts.fgstring``Text of prompts; empty uses ui.theme's
colors.prompts.key.bgstring``Background of a floating prompt's keys; empty uses ui.theme's
colors.statusbar.insert.bgstring``Status bar background in insert mode; empty uses ui.theme's
colors.statusbar.insert.fgstring``Status bar text in insert mode; empty uses ui.theme's
colors.statusbar.normal.bgstring``Status bar background; empty uses ui.theme's
colors.statusbar.normal.fgstring``Status bar text; empty uses ui.theme's
colors.statusbar.passthrough.bgstring``Status bar background in passthrough mode; empty uses ui.theme's
colors.statusbar.passthrough.fgstring``Status bar text in passthrough mode; empty uses ui.theme's
colors.statusbar.private.bgstring``Status bar background in private windows; empty uses ui.theme's
colors.statusbar.private.fgstring``Status bar text in private windows; empty uses ui.theme's
colors.statusbar.url.error.fgstring``The address of a page that failed to load; empty uses ui.theme's
colors.statusbar.url.success.http.fgstring``An http:// address in the status bar; empty uses ui.theme's
colors.statusbar.url.success.https.fgstring``An https:// address in the status bar; empty uses ui.theme's
colors.tabs.bar.bgstring``Tab bar background behind the tabs; empty uses ui.theme's
colors.tabs.even.bgstring``Background of even-numbered tabs; empty uses ui.theme's
colors.tabs.indicator.errorstring``A tab's indicator when its page failed to load; empty uses ui.theme's
colors.tabs.indicator.startstring``A tab's loading indicator; empty uses ui.theme's
colors.tabs.odd.bgstring``Background of odd-numbered tabs; empty uses ui.theme's
colors.tabs.odd.fgstring``Text of tabs; empty uses ui.theme's
colors.tabs.pinned.odd.bgstring``Background of pinned tabs; empty uses ui.theme's
colors.tabs.pinned.odd.fgstring``Text of pinned tabs; empty uses ui.theme's
colors.tabs.selected.accentstring``Color of the line marking the current tab, any CSS color such as #2ec4b6; empty matches the tab, so no line shows
colors.tabs.selected.odd.bgstring``Background of the current tab; empty uses ui.theme's
colors.tabs.selected.odd.fgstring``Text of the current tab; empty uses ui.theme's
colors.webpage.bgstringwhiteBackground of a new tab before its page paints, e.g. #1e1e2e so dark themes don't flash white; #rrggbb, white or black
colors.webpage.darkmode.enabledbooleanfalseRender light pages dark with Chromium's automatic dark mode; applies at once and can be set per site
colors.webpage.preferred_color_schemeauto | light | darkautoThe color scheme pages see in prefers-color-scheme: auto follows the system
completion.cmd_history_max_itemsinteger100How many command lines Up and Down remember
completion.delayinteger0Milliseconds to wait after a key press before updating completions
completion.heightstring12Height of the completion list: rows (12) or a percentage of the window (50%)
completion.min_charsinteger0Characters to type after a command before its arguments complete
completion.open_categoriesstring[]["searchengines","quickmarks","bookmarks","history","filesystem"]What :open completes from, in order: searchengines, quickmarks, bookmarks, history, filesystem
completion.quickbooleantrueWhen only one command or setting name is left, Tab takes it and moves on to completing the next part
completion.showalways | auto | neveralwaysWhen to show completions: always, only after pressing Tab (auto), or never
completion.shrinkbooleantrueShrink the completion list to its items; false keeps it completion.height tall
completion.timestamp_formatstring%Y-%m-%d %H:%Mstrftime format of the last-visit time shown next to history completions; empty hides it
completion.use_best_matchbooleanfalseReturn runs the first command that starts with an unknown command name, so :rel runs :reload
completion.web_history.excludestring[][]URL globs (e.g. ://.bank.example/*) that :open never suggests from history
completion.web_history.max_itemsinteger100How many history entries :open completion shows (0 turns history completion off)
confirm_quitstring[]["never"]Ask before quitting: always, multiple-tabs (more than one tab open), downloads (downloads still running), or never
content.autoplaybooleantrueLet videos play by themselves; false waits until you interact with the page (after a restart)
content.blocking.adblock.listsstring[]["https://easylist.to/easylist/easylist.txt","https://easylist.to/easylist/easyprivacy.txt","https://ublockorigin.github.io/uAssets/filters/filters.min.txt","https://ublockorigin.github.io/uAssets/filters/privacy.min.txt","https://ublockorigin.github.io/uAssets/filters/quick-fixes.min.txt","https://ublockorigin.github.io/uAssets/filters/unbreak.min.txt"]Adblock Plus filter lists or hosts files that :adblock-update downloads (https://, or file:// for local lists); uBlock Origin's own lists may use its trusted scriptlets
content.blocking.adblock.rulesstring[][]Your own filter rules, in Adblock Plus syntax (e.g. example.com##.banner); they apply at once, without :adblock-update
content.blocking.enabledbooleantrueBlock ads and trackers with the filter lists from content.blocking.adblock.lists
content.blocking.whiteliststring[][]Sites where nothing is blocked, as host names; a host also covers its subdomains
content.cache.sizeinteger0Disk cache size in bytes; 0 lets Chromium choose (takes effect after a restart)
content.call_mute_keystable<string, string>{"*.webex.com":"<Ctrl-m>","*.zoom.us":"<Alt-a>","meet.google.com":"<Ctrl-d>","meet.jit.si":"m","teams.cloud.microsoft":"<Ctrl-Shift-m>","teams.live.com":"<Ctrl-Shift-m>","teams.microsoft.com":"<Ctrl-Shift-m>"}The key each call site mutes the microphone with, by URL pattern, for :call-mute (cm); keys as in :bind, e.g. <Ctrl-d>
content.call_sitesstring[]["meet.google.com","teams.microsoft.com","teams.live.com","teams.cloud.microsoft","*.zoom.us/wc/*","*.zoom.us/j/*","*.webex.com","meet.jit.si","whereby.com"]Video call sites, as URL patterns, that open in a call window. There, sharing your screen lets you pick a tab, a window or the whole screen; in an ordinary tab it always shares the whole screen. Clear the list to open these sites as ordinary tabs; you then lose that choice unless you use :open --call or :tab-call
content.canvas_readingbooleantrueLet pages read back what they drew on a canvas; false blocks a common fingerprinting trick but breaks some sites (after a restart)
content.cookies.acceptall | no-3rdparty | no-unknown-3rdparty | neverallWhich cookies sites may set: all, none from other sites (no-3rdparty; no-unknown-3rdparty is the same here), or never
content.cookies.storebooleantrueKeep cookies after the browser closes; false makes every cookie last only for the session
content.desktop_captureask | true | falseaskLet sites capture your screen or desktop audio: ask, true or false
content.dns_prefetchbooleantrueLook up the hosts of links before you follow them, which is faster but tells your DNS server about them
content.geolocationask | true | falseaskLet sites know your location: ask, true or false
content.headers.accept_languagestring``Languages sites are asked for, e.g. en-US,en;q=0.9 (also navigator.languages); empty for the system's
content.headers.customtable<string, string>{}Extra headers sent with every request: name → value
content.headers.do_not_trackbooleantrueSend DNT: 1 with every request, asking sites not to track you
content.headers.refereralways | never | same-domainsame-domainWhen to send the Referer header: always, never, or only within the same domain and its subdomains
content.headers.user_agentstring``User agent sent to sites and shown to their scripts; empty for Chromium's own. Can be set per site
content.imagesbooleantrueLoad images; can be set per site
content.javascript.can_close_tabsbooleantrueLet a page close its own tab with window.close(), as login popups do
content.javascript.can_open_tabs_automaticallybooleanfalseLet pages open tabs and windows without a click (popups); can be set per site
content.javascript.clipboardnone | access | access-pasteaccessWhat pages may do with the clipboard: nothing, copy with a click (access), or also read it (access-paste); can be set per site
content.javascript.enabledbooleantrueRun JavaScript on pages; can be set per site
content.javascript.log_message.levelsstring[][]Console messages from pages shown in the status bar and :messages, by level: debug, info, warning, error (can be set per site)
content.local_content_can_access_file_urlsbooleanfalseLet file:// pages read other local files, which a downloaded page could misuse (after a restart)
content.media.audio_captureask | true | falseaskLet sites use your microphone: ask, true or false
content.media.video_captureask | true | falseaskLet sites use your camera: ask, true or false
content.mouse_lockask | true | falseaskLet sites lock your mouse pointer, as games do: ask, true or false
content.mutebooleanfalseMute pages; can be set per site
content.notifications.app_namestringriptideThe app name on desktop notifications (presenter = libnotify), which notification services such as dunst and mako can match to style them
content.notifications.enabledask | true | falseaskLet sites show notifications: ask, true or false
content.notifications.presenterauto | libnotify | messagesautoWhere page notifications show: auto (Chromium's desktop notifications), libnotify (desktop notifications riptide sends with notify-send, following the other content.notifications settings) or messages (riptide's status bar)
content.notifications.show_originbooleantrueShow the site a notification came from (presenter = libnotify or messages)
content.notifications.site_iconbooleantrueShow the site's icon on desktop notifications (presenter = libnotify)
content.notifications.timeoutinteger-1Milliseconds a desktop notification stays (presenter = libnotify): -1 lets the desktop decide, 0 keeps it until dismissed
content.notifications.urgencylow | normal | criticalnormalHow urgent desktop notifications are (presenter = libnotify): low, normal or critical
content.pdf_viewerbooleantrueShow PDFs in the browser; false downloads them instead
content.prefers_reduced_motionbooleanfalseTell pages you prefer less motion, so they can tone down animations (after a restart)
content.proxystringsystemProxy: system, none, a proxy URL such as socks5://127.0.0.1:9050, or pac+ and a PAC script's URL
content.register_protocol_handlerask | true | falseaskLet sites register to handle links like mailto: : ask, true or false
content.tls.certificate_errorsask | block | load-insecurelyaskPages whose TLS certificate isn't trusted: ask, block, or load-insecurely
content.unknown_url_scheme_policyask | allow-all | disallowaskLinks to schemes the browser can't show (mailto:, magnet:, zoommtg:): ask before handing them to xdg-open, always hand them over, or never
content.user_stylesheetsstring[][]CSS files applied to pages (relative paths are in the config directory); reloaded when they change; can be set per site
content.webglbooleantrueAllow WebGL, which 3D graphics need and fingerprinting scripts use (after a restart)
content.webrtc_ip_handling_policyall-interfaces | default-public-and-private-interfaces | default-public-interface-only | disable-non-proxied-udpall-interfacesWhich IP addresses WebRTC (video calls) may reveal; disable-non-proxied-udp keeps it behind content.proxy
content.widevinebooleanfalseAllow Widevine DRM: Chromium downloads Google's CDM once (takes effect after a restart)
crash_report.emailstring``Where :crash-report's Email button sends a report; empty hides the button
downloads.location.directorystring``Where downloads go; empty means the system Downloads folder
downloads.location.promptbooleantrueAsk where to save each download (false saves straight to the directory)
downloads.location.rememberbooleantrueStart the save prompt in the folder the last download went to
downloads.location.suggestionboth | path | filenamebothWhat the save prompt starts with: the folder and file name (both), the folder (path), or the file name
downloads.open_dispatcherstring``Program that opens downloads (:download-open); {} is the file, or it's added at the end. Empty for the desktop's default
downloads.remove_finishedinteger-1Take finished downloads off the list after this many milliseconds; -1 keeps them
editor.commandstring[]["gvim","-f","{file}","-c","normal {line}G{column0}l"]Editor for :open-editor; fields: {file}, {line}, {column}, {line0}, {column0}
editor.remove_filebooleantrueDelete the temporary file after the editor closes; false keeps it, e.g. to recover text
extensions.loadstring[][]Folders of unpacked Chrome extensions to load, besides the ones :extension-install installs (after a restart)
fileselect.folder.commandstring[]["xterm","-e","ranger","--choosedir={}"]Program that picks a folder for fileselect.handler = external; {} is the file it writes the path to
fileselect.handlerdefault | externaldefaultFile pickers for upload fields: Chromium's own (default), or the fileselect.*.command programs (external)
fileselect.multiple_files.commandstring[]["xterm","-e","ranger","--choosefiles={}"]Program that picks several files for fileselect.handler = external; {} is the file it writes the paths to, one per line
fileselect.single_file.commandstring[]["xterm","-e","ranger","--choosefile={}"]Program that picks a file for fileselect.handler = external; {} is the file it writes the path to
fonts.completion.categorystringbold default_size default_familyFont of completion category headers (default_size and default_family stand for those settings)
fonts.completion.entrystringdefault_size default_familyFont of completion entries
fonts.default_familystring"DejaVu Sans Mono", Monospace, monospaceFont family that the other fonts.* settings call default_family
fonts.default_sizestring10ptFont size that the other fonts.* settings call default_size, e.g. 10pt or 13px
fonts.hintsstringbold default_size default_familyFont of hint labels
fonts.keyhintstringdefault_size default_familyFont of the key hint popup
fonts.promptsstringdefault_size default_familyFont of prompts
fonts.statusbarstringdefault_size default_familyFont of the status bar; sizes beyond the bar's height are cut off until bars size to their font
fonts.tabs.selectedstringdefault_size default_familyFont of the current tab
fonts.tabs.unselectedstringdefault_size default_familyFont of the other tabs
fonts.web.family.fixedstring``Monospace font for pages (CSS monospace); empty for Chromium's
fonts.web.family.sans_serifstring``Sans-serif font for pages; empty for Chromium's
fonts.web.family.serifstring``Serif font for pages; empty for Chromium's
fonts.web.family.standardstring``Font for pages that don't choose one; empty for Chromium's
fonts.web.size.defaultinteger16Default text size of pages, in pixels
fonts.web.size.default_fixedinteger13Default size of monospace text in pages, in pixels
fonts.web.size.minimuminteger0Smallest text size pages may use, in pixels (0 for no minimum)
hints.auto_followalways | unique-match | full-match | neverunique-matchWhen a hint is followed without Return: when one is left (unique-match), only when its label is typed in full (full-match), always, or never
hints.auto_follow_timeoutinteger0Ignore keys for this many milliseconds after following a hint, so extra typing doesn't reach the page
hints.charsstringasdfghjklCharacters used for hint labels
hints.dictionarystring/usr/share/dict/wordsWord list for hints.mode = word, one word per line
hints.hide_unmatched_rapid_hintsbooleantrueIn rapid hint mode (:hint --rapid), hide the labels that don't match what's typed
hints.leave_on_loadbooleantrueLeave hint mode when the page starts loading something new
hints.min_charsinteger1The shortest hint label, in characters
hints.modeletter | number | wordletterletter: labels from hints.chars; number: numbered labels, and typing letters filters by text; word: dictionary words from each link's text
hints.next_regexesstring[]["\\bnext\\b","\\bmore\\b","\\bnewer\\b","\\b[>→≫]\\b","\\b(>>|»)\\b","\\bcontinue\\b"]Link texts ]] follows to the next page, as JavaScript regular expressions (case doesn't matter)
hints.paddingstring0 3pxSpace around a hint label's text, as CSS padding, e.g. 1px 4px
hints.prev_regexesstring[]["\\bprev(ious)?\\b","\\bback\\b","\\bolder\\b","\\b[<←≪]\\b","\\b(<<|«)\\b"]Link texts [[ follows to the previous page, as JavaScript regular expressions (case doesn't matter)
hints.radiusinteger3Corner radius of hint labels in pixels; 0 is square
hints.scatterbooleantrueSpread hint labels over the alphabet so neighbours differ; false labels in order
hints.selectorstable<string, string>{"all":"a, area, textarea, select, input:not([type=hidden]), button, iframe, summary, [contenteditable]:not([contenteditable=false]), [onclick], [onmousedown], [role=link], [role=option], [role=button], [role=tab], [role=checkbox], [role=switch], [role=menuitem], [role=menuitemcheckbox], [role=menuitemradio], [role=treeitem], [aria-haspopup], [tabindex]:not([tabindex='-1'])","blocks":"[class], [id], img, iframe, ins, aside, video, embed, object","images":"img","inputs":"input:not([type]), input[type=text], input[type=search], input[type=email], input[type=url], input[type=tel], input[type=password], input[type=number], input[type=date], input[type=datetime-local], input[type=month], input[type=time], input[type=week], textarea, [contenteditable]:not([contenteditable=false])","links":"a[href], area[href], [role=link][href]","media":"audio, img, video"}Hint groups for :hint, as CSS selector lists; your entries are added to the built-in all, links, images, media and inputs
hints.uppercasebooleanfalseShow hint labels in upper case
input.forward_unbound_keysall | auto | noneautoPass unbound keys to the page in normal mode (auto: all but plain letters and digits)
input.insert_mode.auto_enterbooleantrueEnter insert mode when an editable element gets focus
input.insert_mode.auto_leavebooleantrueLeave insert mode when focus leaves an editable element
input.insert_mode.auto_loadbooleanfalseEnter insert mode when a page focuses a text field by itself, as autofocus does on load
input.insert_mode.leave_on_loadbooleantrueLeave insert mode when a new page starts loading
input.match_countsbooleantrueRead digits typed before a binding as a count (3j); false lets digits be bindings themselves
input.media_keysbooleantrueLet the keyboard's media keys (play, pause, next) control audio and video in pages (after a restart)
input.mode_overridenone | normal | insert | passthroughnoneMode to enter when a page loads or its tab is focused; set it per site, e.g. passthrough for a web terminal
input.mouse.rocker_gesturesbooleanfalseHold the right button and click the left to go back, or the other way round to go forward; turns off the page's context menu
input.partial_timeoutinteger0Milliseconds before a half-typed key chain or count is forgotten; 0 waits forever
input.spatial_navigationbooleanfalseMove focus between links and fields with the arrow keys, as on a TV (after a restart)
keyhint.blackliststring[][]Key chains the key hint popup leaves out, as globs on the whole chain (e.g. g* for every chain starting with g)
keyhint.delayinteger500How long after a partial key chain the popup listing its continuations appears, in milliseconds
messages.timeoutinteger3000Milliseconds before a status bar message clears (0 keeps it)
new_instance_open_targettab | tab-bg | windowtabWhere URLs from a second riptide invocation open
new_instance_open_target_windowfirst-opened | last-opened | last-focusedlast-focusedWhich window URLs from a second riptide invocation open in
plugins.catalogstringhttps://github.com/joshzcold/riptide-pluginsThe git repository of plugins the Plugins tab's Browse lists, one plugin per folder
plugins.check_intervalinteger1Every this many days, check plugins from git for new commits in the background and say once which have updates; nothing updates by itself (0: never)
prompt.positionbottom | center | dockedbottomWhere questions (permissions, logins, downloads, page dialogs) appear: bottom, a box floating near the bottom of the page; center, the same box in the middle; or docked above the status bar
prompt.widthinteger640Width in pixels of a floating prompt (prompt.position = bottom or center), at most the page's
scrolling.baralways | never | overlayalwaysPage scrollbars: always, never, or overlay (thin, shown while scrolling; after a restart)
scrolling.smoothbooleanfalseAnimate scrolling by keys instead of jumping
search.ignore_casesmart | always | neversmartCase in searches: smart ignores it unless the text has a capital, always, or never
search.incrementalbooleantrueSearch while typing after / or ?
search.wrapbooleantrueGo on from the top when a search passes the last match (or from the bottom, searching up)
search.wrap_messagesbooleantrueSay when a search wraps around the page
session.default_namestring``Session that :session-save, :wq and auto_save.session use; empty means the last one loaded, or default
session.lazy_restorebooleanfalseWhen restoring a session, load background tabs only when they are first shown
spellcheck.languagesstring[][]Spell-check languages such as en-US (empty: off); Chromium downloads each dictionary from Google once
statusbar.paddingstring0 4pxSpace around the status bar's text, as CSS padding (top right bottom left), e.g. 2px 8px; the bar grows to fit
statusbar.positiontop | bottombottomWhere the status bar is
statusbar.showalways | never | in-modealwaysWhen to show the status bar: always, only while typing a command or answering a prompt (never), or also outside normal mode and while a message is shown (in-mode)
statusbar.widgetsstring[]["keypress","downloads","blocked","muted","media","sharing","zoom","search_match","url","scroll","history","tabs","progress"]What the right side of the status bar shows, in order: keypress, downloads, blocked (requests the ad blocker stopped on the page), muted, media, sharing (a screen, window or tab being shared from any tab; :share-stop stops it), zoom, search_match, url, scroll, scroll_raw, history, tabs, progress, clock[:strftime format], text:…, lua:<name> (drawn by rt.statusbar.widget)
tabs.close_mouse_buttonmiddle | right | nonemiddleWhich mouse button closes a tab clicked in the tab bar
tabs.close_mouse_button_on_barnew-tab | close-current | close-last | ignorenew-tabWhat tabs.close_mouse_button does on the empty part of the tab bar
tabs.favicons.showalways | never | pinnedalwaysShow site icons in the tab bar: always, never, or only on pinned tabs
tabs.indicator.widthinteger3Width in pixels of the loading indicator at the left of each tab (0 hides it)
tabs.last_closeignore | blank | startpage | default-page | closeignoreWhat closing the last tab does
tabs.max_widthinteger-1Largest width in pixels of a tab in a top or bottom tab bar (-1 for no limit)
tabs.min_widthinteger-1Smallest width in pixels of a tab in a top or bottom tab bar; tabs that don't fit scroll (-1 for no minimum)
tabs.mode_on_changenormal | persist | restorenormalMode after switching tabs: normal, persist (keep insert/passthrough), or restore (the mode the tab was left in)
tabs.mousewheel_switchingbooleantrueSwitch tabs with the mouse wheel over the tab bar
tabs.new_position.relatedprev | next | first | lastnextWhere tabs opened from a page go (popups, hints)
tabs.new_position.unrelatedprev | next | first | lastlastWhere other new tabs go (:open -t)
tabs.paddingstring0 4px 0 0Space around each tab's title, as CSS padding (top right bottom left); the tab bar grows to fit
tabs.pinned.closeask | refuse | closeaskClosing a pinned tab without --force: ask first, refuse, or just close it
tabs.pinned.frozenbooleantrueKeep pinned tabs on their page: :open in a pinned tab opens a new tab
tabs.pinned.shrinkbooleantrueShrink pinned tabs to their icon and number
tabs.positiontop | bottom | left | righttopWhere the tab bar is; left and right list the tabs vertically
tabs.select_on_removenext | prev | last-usednextWhich tab to show after closing the current one: the next, the previous, or the one used before
tabs.showalways | never | multiple | switchingalwaysWhen to show the tab bar: always, never, with more than one tab, or briefly after switching tabs
tabs.show_switching_delayinteger800How long the tab bar stays after switching tabs with tabs.show = switching, in milliseconds
tabs.tabs_are_windowsbooleanfalseOpen every tab in its own window and hide the tab bar, for tiling window managers
tabs.title.alignmentleft | center | rightleftWhere tab titles sit in their tab: left, center or right
tabs.title.formatstring{audio}{media}{index}: {current_title}Tab titles; fields: {index}, {aligned_index}, {current_title}, {current_url}, {host}, {perc}, {audio}, {media} ([A/V] while the page uses a camera or the screen, and a microphone), {private}
tabs.title.format_pinnedstring{index}Titles of pinned tabs while tabs.pinned.shrink shrinks them; same fields as tabs.title.format
tabs.tooltipsbooleantrueShow a tab's title and URL when the mouse rests on it
tabs.undo_stack_sizeinteger100How many closed tabs u can reopen; 0 keeps none
tabs.widthinteger200Width of the tab bar in pixels when tabs.position is left or right
tabs.wrapbooleantrueWrap around from the last tab to the first (and back) when switching tabs
ui.auto_theme.darkstringriptideThe theme ui.theme = auto uses when the desktop (or colors.webpage.preferred_color_scheme) prefers dark
ui.auto_theme.lightstringriptide-lightThe theme ui.theme = auto uses when light is preferred
ui.overlay.positiondocked | floatingdockedWhere the command line's completions and the key hints appear: docked above the status bar, or floating, a box near the top of the page that also shows the command
ui.overlay.widthinteger800Width in pixels of the floating overlay (ui.overlay.position = floating), at most the page's
ui.themestringriptideColors of riptide's bars, prompts and hints: riptide, riptide-light, gruvbox, catppuccin, nord, dracula, solarized, tokyo-night or a theme from themes/ in the config directory (:theme); auto follows the light or dark preference
url.auto_searchnaive | schemeless | nevernaiveWhen :open searches: text that doesn't look like an address (naive), anything without a scheme:// (schemeless), or never
url.default_pagestringhttps://start.duckduckgo.com/Page for :open without a URL
url.incdec_segmentsstring[]["path","query"]Parts of the URL Ctrl-a and Ctrl-x change: host, port, path, query, anchor
url.open_base_urlbooleanfalseOpen a search engine's home page when :open gets just its name
url.searchenginestable<string, string>{"DEFAULT":"https://duckduckgo.com/?q={}"}Search engines; ':open g rust' uses the 'g' entry, anything else DEFAULT
url.start_pagesstring[]["https://start.duckduckgo.com/"]Pages opened at startup when no URL is given
url.yank_ignored_parametersstring[]["ref","utm_source","utm_medium","utm_campaign","utm_term","utm_content","utm_name","fbclid","gclid"]Query parameters dropped when yanking a URL, such as tracking tags
window.hide_decorationbooleanfalseAsk the window manager for no title bar or borders (applies to new windows)
window.title_formatstring{current_title}{title_sep}RiptideWindow title; fields: {current_title}, {title_sep}, {current_url}, {host}, {mode}
zoom.defaultinteger100Zoom in percent for pages, and what :zoom without a value resets to
zoom.levelsstring[]["25%","33%","50%","67%","75%","90%","100%","110%","125%","150%","175%","200%","250%","300%","400%","500%"]The zoom levels + and - step through, in percent