Controls whether the page can focus elements for you via js
NB: will break fancy editors such as CodeMirror on Jupyter. Simply use seturl
to whitelist pages you need it on.
Best used in conjunction with browser.autofocus in about:config
Autocontain directives create a container if it doesn't exist already.
Automatically place these sites in the named container.
Each key corresponds to a URL fragment which, if contained within the page URL, the site will be opened in a container tab instead.
Strict mode will always ensure a domain is open in the correct container, replacing the current tab if necessary.
Relaxed mode is less aggressive and instead treats container domains as a default when opening a new tab.
Which keys to protect from pages that try to override them. Requires leavegithubalone to be set to false.
When displaying bookmarks in history completions, how many page views to pretend they have.
The browser executable to look for in commands such as restart
. Not as mad as it seems if you have multiple versions of Firefox...
Threshold for fuzzy matching on completions. Lower => stricter matching. Range between 0 and 1: 0 corresponds to perfect matches only. 1 will match anything.
Internal version number Tridactyl uses to know whether it needs to update from old versions of the configuration.
Changing this might do weird stuff.
If moodeindicator is enabled, containerindicator will color the border of the mode indicator with the container color.
Deprecated. Change this to "clobber" to ruin the "Content Security Policy" of all sites a bit and make Tridactyl run a bit better on some of them, e.g. raw.github*
Decides where to place the cursor when selecting non-empty input fields
Storage for custom themes
Maps theme names to CSS. Predominantly used automatically by colourscheme to store themes read from disk, as documented by colourscheme. Setting this manually is untested but might work provided that colourscheme is then used to change the theme to the right theme name.
Set of characters that are to be considered illegal as download filenames.
Comma-separated list of whole filenames which, if match with the download filename, will be suffixed with the "downloadforbiddenreplacement" value.
Value that will be used to replace the illegal character(s), if found, in the download filename.
Whether downloads (e.g. via ;s hint modes) appear in your download history.
NB: will cause downloads to fail silently if Tridactyl is not allowed to run in private windows (regardless of whether you are trying to call it in a private window).
Insert / input mode edit-in-$EDITOR command to run This has to be a command that stays in the foreground for the whole editing session "auto" will attempt to find a sane editor in your path. Please send your requests to have your favourite terminal moved further up the list to /dev/null. (but we are probably happy to add your terminal to the list if it isn't already there.)
Example values:
xterm -e vim
start cmd.exe /c \"vim\"
.Also see :editor.
Whether to open and close the sidebar quickly to get focus back to the page when <C-,> is pressed.
Disable if the fact that it closes TreeStyleTabs gets on your nerves too much : )
NB: when disabled, <C-,> can't get focus back from the address bar, but it can still get it back from lots of other places (e.g. Flash-style video players)
Clipboard command to try to get the selection from (e.g. xsel
or xclip
)
Whether find should be case-sensitive
Number of characters to use as context for the matches shown in completions
How long find highlights should persist in milliseconds. <= 0
means they persist until cleared
Number of results that should be shown in completions. -1 for unlimited
When set to "nextinput", pressing <Tab>
after gi selects the next input.
When set to "firefox", <Tab>
behaves like normal, focusing the next tab-indexed element regardless of type.
Default selector for :goto command.
Controls whether hints should be followed automatically.
If set to false
, hints will only be followed upon confirmation. This applies to cases when there is only a single match or only one link on the page.
Characters to use in hint mode.
They are used preferentially from left to right.
The delay in milliseconds in vimperator
style hint modes after selecting a hint before you are returned to normal mode.
The point of this is to prevent accidental execution of normal mode binds due to people typing more than is necessary to choose a hint.
The type of hinting to use. vimperator
will allow you to filter links based on their names by typing non-hint chars. It is recommended that you use this in conjuction with the hintchars setting, which you should probably set to e.g, 5432167890
. ´vimperator-reflow´ additionally updates the hint labels after filtering.
Whether to optimise for the shortest possible names for each hint, or to use a simple numerical ordering. If set to numeric
, overrides hintchars
setting.
Controls whether hints should be shifted in quick-hints mode.
Here's what it means: let's say you have hints from a to z but are only
interested in every second hint. You first press a
, then c
.
Tridactyl will realize that you skipped over b
, and so that the next
hint you're going to trigger is probably e
. Tridactyl will shift all
hint names so that e
becomes c
, d
becomes b
, c
becomes a
and
so on.
This means that once you pressed c
, you can keep on pressing c
to
trigger every second hint. Only makes sense with hintnames = short.
Whether to display the names for hints in uppercase.
Number of most recent results to ask Firefox for. We display the top 20 or so most frequently visited ones.
Pages opened with gH
. In order to set this value, use :set homepages ["example.org", "example.net", "example.com"]
and so on.
Whether Tridactyl should jump to the first match when using :find
Like searchurls but must be a Javascript function that takes one argument (a single string with the remainder of the command line including spaces) and maps it to a valid href (or a promise that resolves to a valid href) that will be followed, e.g. set jsurls.googleloud query => "https://google.com/search?q=" + query.toUpperCase()
NB: the href must be valid, i.e. it must include the protocol (e.g. "http://") and not just be e.g. "www.".
Milliseconds before registering a scroll in the jumplist
Base keyboard layout to use when keyboardlayoutforce is enabled. At the time of writing, the following layouts are supported: qwerty, azerty, german, dvorak, uk, ca, bepo
. Requires page reload to take effect.
If your layout is missing, you can contribute it with the help of https://gistpreview.github.io/?324119c773fac31651f6422087b36804 - please just open an :issue
with your layout and we'll add it.
You can manually override individual keys for a layout with keyboardlayoutoverrides.
Instead of fetching actual character which depends on selected layout,
use machine code of a key and convert to character according to keyboardlayoutoverrides. The default layout mapping
is US qwerty
, but can be changed with keyboardlayoutbase.
There is a much more detailed help page towards the end of :tutor
under the title "Non-QWERTY layouts".
Recommended for everyone with multiple or/and non-latin keyboard layouts. Make sure usekeytranslatemap is false
if you have previously used keymap
.
Override individual keys for a layout when keyboardlayoutforce is enabled. Changes take effect only after a page reload.
Key codes for printable keys for keyboardlayoutforce, lower and upper register. See https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values for the names of each key.
NB: due to a Tridactyl bug, you cannot set this using array notation as you can for, e.g. [[homepage]].
You must instead set the lower and upper registers using a string with no spaces in it, for example
:set keyboardlayoutoverrides Digit2: 2"
for the British English layout.
Whether to allow pages (not necessarily github) to override /
, which is a default Firefox binding.
Whether markjump
should pop-up with a notification
How many characters should be typed before triggering incsearch/completions
Whether to display the mode indicator or not.
Show (partial) command in the mode indicator. Corresponds to 'showcmd' option of vi.
Set this to something weird if you want to have fun every time Tridactyl tries to update its native messenger.
%TAG will be replaced with your version of Tridactyl for stable builds, or "master" for beta builds
NB: Windows has its own platform-specific default.
URL the newtab will redirect to.
All usual rules about things you can open with open
apply, with the caveat that you'll get interesting results if you try to use something that needs nativeopen
: so don't try about:newtab
or a file:///
URI. You should instead use a data URI - https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs - or host a local webserver (e.g. Caddy).
Disables the commandline iframe. Dangerous setting, use seturl to set it. If you ever set this setting to "true" globally and then want to set it to false again, you can do this by opening Tridactyl's preferences page from about:addons.
Whether to use proxy settings.
If set to true
, all proxy settings will be ignored.
Activate tridactyl's performance counters. These have a measurable performance impact, since every sample is a few hundred bytes and we sample tridactyl densely, but they're good when you're trying to optimize things.
How many samples to store from the perf counters.
Each performance entry is two numbers (16 bytes), an entryType of either "mark" or "measure" (js strings are utf-16 ad we have two marks for each measure, so amortize to about 10 bytes per entry), and a string name that for Tridactyl object will be about 40 (utf-16) characters (80 bytes), plus object overhead roughly proportional to the string-length of the name of the constructor (in this case something like 30 bytes), for a total of what we'll call 128 bytes for ease of math.
We want to store, by default, about 1MB of performance statistics, so somewhere around 10k samples.
Uses a loop to prevent focus until you interact with a page. Only recommended for use via seturl
for problematic sites as it can be a little heavy on CPU if running on all tabs. Should be used in conjuction with allowautofocus
Internal field to handle site-specific config priorities. Use :seturl/:unseturl to change this value.
Profile directory to use with native messenger with e.g, guiset
.
Definitions of proxies.
You can add a new proxy with proxyadd proxyname proxyurl
Default proxy to use for all URLs. Has to be the name of a proxy. To add a proxy, see :help proxyadd
. NB: usage with :seturl
is buggy, use :autocontain -s [regex to match URL] none [proxy]
instead
Which clipboard to retrieve items from. Requires the native messenger to be installed.
Permitted values: clipboard
, or selection
.
Whether to show article url in the document.title of Reader View.
Where to open tabs opened with hinting - as if it had been middle clicked, to the right of the current tab, or at the end of the tabs.
Command that should be run by the rssexec ex command. Has the following format:
js
or jsb
. If you need to use them, create an alias.Here's an example of how to save an rss url in a file on your disk
safely:
alias save_rss jsb -p tri.native.run("cat >> ~/.config.newsboat/urls", JS_ARG)
set rsscmd save_rss %u
This is safe because the url is passed to jsb as an argument rather than
being expanded inside of the string it will execute and because it is
piped to the shell command rather than being expanded inside of it.
How viscous you want smooth scrolling to feel.
The default search engine used by open search
. If empty string, your browser's default search engine will be used. If set to something, Tridactyl will first look at your searchurls and then at the search engines for which you have defined a keyword on about:preferences#search
.
When displaying searchurls in history completions, how many page views to pretend they have.
Whether to use Tridactyl's (bad) smooth scrolling.
Disable Tridactyl almost completely within a page, e.g. seturl ^https?://mail.google.com disable true
. Only takes affect on page reload.
You are usually better off using blacklistadd
and seturl [url] noiframe true
as you can then still use some Tridactyl binds, e.g. shift-insert
for exiting ignore mode.
NB: you should only use this with seturl
. If you get trapped with Tridactyl disabled everywhere just run tri unset superignore
in the Firefox address bar. If that still doesn't fix things, you can totally reset Tridactyl by running tri help superignore
in the Firefox address bar, scrolling to the bottom of that page and then clicking "Reset Tridactyl config".
When enabled (the default), running tabclose will close the tabs whether they are pinned or not. When disabled, tabclose will fail with an error if a tab is pinned.
Initial urls to navigate to when creating a new tab for a new tab group.
If enabled, tabopen opens a new tab in the currently active tab's container.
Where to open tabs opened with tabopen
- to the right of the current tab, or at the end of the tabs.
Whether :tab shows completions for hidden tabs (e.g. tabs in other tab groups).
Controls which tab order to use when numbering tabs. Either mru = sort by most recent tab or default = by tab index
Applies to all places where Tridactyl numbers tabs including :tab
, :tabnext_gt
etc. (so, for example, with :set tabsort mru
2gt
would take you to the second most recently used tab, not the second tab in the tab bar).
The theme to use.
Permitted values: run :composite js tri.styling.THEMES | fillcmdline
to find out.
Controls text-to-speech pitch. Has to be between 0 and 2.
Controls text-to-speech speed. Has to be a number between 0.1 and 10.
The name of the voice to use for text-to-speech. You can get the list of installed voices by running the following snippet: js alert(window.speechSynthesis.getVoices().reduce((a, b) => a + " " + b.name))
Controls text-to-speech volume. Has to be a number between 0 and 1.
Whether removal of the url fragment (the name after # in the url) is counted as a parent level.
RegExp to remove from the url pathname before go to any parent path. To ignore "index.html" in "parent/index.html", set it to "//index.html/". The regexp flag is supported, and the escape of the slashes inside the regexp is not required.
An empty string will disable this feature.
Suggested value: //index.(html?|php|aspx?|jsp|cgi|pl|js)$/i
Whether removal the url search parameter (the name after ? in the url) is counted as a parent level.
Whether a trailing slash is appended when we get the parent of a url with gu (or other means).
Whether :viewsource
will use our own page that you can use Tridactyl binds on, or Firefox's default viewer, which you cannot use Tridactyl on.
Whether to enter visual mode when text is selected. Visual mode can always be entered with :mode visual
.
Whether to return to normal mode when text is deselected.
JavaScript RegExp used to recognize words in text.* functions (e.g. text.transpose_words). Should match any character belonging to a word.
Which clipboard to store items in. Requires the native messenger to be installed.
Autocommands that run when certain events happen, and other conditions are met.
Related ex command: autocmd
.
Commands that will be run when pages are unloaded.
Each key corresponds to a URL fragment which, if contained within the page URL, will run the corresponding command.
Commands that will be run as soon as Tridactyl loads into a page.
Each key corresponds to a URL fragment which, if contained within the page URL, will run the corresponding command.
Commands that will be run when fullscreen state changes.
Commands that will be run when fullscreen state is entered.
Commands that will be run when fullscreen state is left.
Commands that will be run when you enter a tab.
Each key corresponds to a URL fragment which, if contained within the page URL, will run the corresponding command.
Commands that will be run when you leave a tab.
Each key corresponds to a URL fragment which, if contained within the page URL, will run the corresponding command.
Commands that will be run when pages are loaded.
Each key corresponds to a URL fragment which, if contained within the page URL, will run the corresponding command.
Commands that will be run when Tridactyl first runs each time you start your browser.
Each key corresponds to a javascript regex that matches the hostname of the computer Firefox is running on. Note that fetching the hostname could be a little slow, if you want to execute something unconditionally, use ".*" as Tridactyl special-cases this pattern to avoid hostname lookups.
Browser-wide binds accessible in all modes and on pages where Tridactyl "cannot run".
General completions options - NB: options are set according to our internal completion source name - see - src/completions/[name].ts
in the Tridactyl source.
Whether to automatically select the closest matching completion
Whether to use unicode symbols to display tab statuses
Aliases for the commandline.
You can make a new one with command alias ex-command
.
exmaps contains all of the bindings for the command line. You can of course bind regular ex commands but also editor functions and commandline-specific functions.
Used by ]]
and [[
to look for links containing these words.
Edit these if you want to add, e.g. other language support.
Which css styles to add for hint elements.
Use hintstyles.fg
for text color, hintstyles.bg
for background color, hintstyles.outline
for outlines.
Values may be set to "all" to enable the style for all hints, "active" to enable the style only for the currently selected hint, or "none" to disable the style completely.
For example, run
:set hintstyles.bg none
and reload the page to remove background colors from all hints.
ignoremaps contain all of the bindings for "ignore mode".
They consist of key sequences mapped to ex commands.
imaps contain all of the bindings for "insert mode".
On top of regular ex commands, you can also bind editor functions in insert mode.
They consist of key sequences mapped to ex commands.
inputmaps contain all of the bindings for "input mode".
On top of regular ex commands, you can also bind editor functions in input mode.
They consist of key sequences mapped to ex commands.
Config objects with this key inherit their keys from the object specified.
Only supports "root" objects. Subconfigs (seturl
) work as expected.
Here, this means that input mode is the same as insert mode except it has added binds for tab and shift-tab.
Logging levels. Unless you're debugging Tridactyl, it's unlikely you'll ever need to change these.
Whether to display the mode indicator in various modes. Ignored if modeindicator set to false.
Internal field to handle mode-specific configs. Use :setmode/:unsetmode to change these values.
Changing this might do weird stuff.
nmaps contain all of the bindings for "normal mode".
They consist of key sequences mapped to ex commands.
Definitions of search engines for use via open [keyword]
.
%s
will be replaced with your whole query and %s1
, %s2
, ..., %sn
will be replaced with the first, second and nth word of your query. Also supports array slicing, e.g. %s[2:4]
, %s[5:]
. If there are none of these patterns in your search urls, your query will simply be appended to the searchurl.
Aliases are supported - for example, if you have a google
searchurl, you can run :set searchurls.g google
in which case g
will act as if it was the google
searchurl.
Examples:
open gi cute puppies
, with a gi
searchurl defined with set searchurls.gi https://www.google.com/search?q=%s&tbm=isch
, tridactyl will navigate to https://www.google.com/search?q=cute puppies&tbm=isch
.tabopen translate en ja Tridactyl
, with a translate
searchurl defined with set searchurls.translate https://translate.google.com/#view=home&op=translate&sl=%s1&tl=%s2&text=%s3
, tridactyl will navigate to https://translate.google.com/#view=home&op=translate&sl=en&tl=ja&text=Tridactyl
.setnull can be used to "delete" the default search engines. E.g. setnull searchurls.google
.
NB: lots of searchurls were removed in May 2024. You can restore them with:
set searchurls.googleuk https//www.google.co.uk/search?q=
set searchurls.yahoo https//search.yahoo.com/search?p=
set searchurls.twitter https//twitter.com/search?q=
set searchurls.wikipedia https//en.wikipedia.org/wiki/SpecialSearch/
set searchurls.amazon https//www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=
set searchurls.amazonuk https//www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=
set searchurls.startpage https//startpage.com/do/search?language=english&cat=web&query=
set searchurls.github https//github.com/search?utf8=✓&q=
set searchurls.searx https//searx.me/?category_general=on&q=
set searchurls.cnrtl http//www.cnrtl.fr/lexicographie/
set searchurls.osm https//www.openstreetmap.org/search?query=
set searchurls.mdn https//developer.mozilla.org/en-US/search?q=
set searchurls.gentoo_wiki https//wiki.gentoo.org/index.php?title=Special%3ASearch&profile=default&fulltext=Search&search=
set searchurls.qwant https//www.qwant.com/?q=
Internal field to handle site-specific configs. Use :seturl/:unseturl to change these values.
Used by :updatecheck and related built-in functionality to automatically check for updates and prompt users to upgrade.
Minimum interval between automatic update checks, in seconds.
Time we last checked for an update, milliseconds since unix epoch.
The version we last nagged you about. We only nag you once per version.
Whether Tridactyl should check for available updates at startup.
How many days to wait after an update is first available until telling people.
This is the default configuration that Tridactyl comes with.
You can change anything here using
set key1.key2.key3 value
or specific things any of the various helper commands such asbind
orcommand
. You can also jump to the help section of a setting using:help $settingname
. Some of the settings have an input field containing their current value. You can modify these values and save them by pressing<Enter>
but using:set $setting $value
is a good habit to take as it doesn't force you to leave the page you're visiting to change your settings.If the setting you are changing has a dot or period character (.) in it, it cannot be set with
:set
directly. You must either use a helper command for that specific setting - e.g.:seturl
or:autocontain
, or you must use Tridactyl's JavaScript API with:js tri.config.set("path", "to", "key", "value")
to set{path: {to: {key: value}}}
.