Tridactyl has to override your new tab page due to WebExtension limitations. You can learn how to change it at the bottom of the page, otherwise please read on for some tips and tricks.
You can view the main help page by typing :help, and access the tutorial with :tutor.
You can view your current configuration with :viewconfig.
You can contact the developers, other users and contributors for support or whatever on Matrix, Gitter, or IRC.
If you're enjoying Tridactyl (or not), please leave a review on addons.mozilla.org.
Breaking change to default settings: ignore mode is now bound to <S-Insert> for both entering and leaving the mode. Previous binds are unbound.
NB: Tridactyl now supports a native messenger on Linux and OSX. Just run :installnative to get going, and then Ctrl-i <C-i> in a text box to open your editor.
Tridactyl changelog
Release 1.10.0 / 2018-05-03
Native messenger (for OSX/Linux only, for now)! On Linux/OSXRun :installnative to install, then:
<Ctrl-I> in a text field will open Vim, probably. Set it with set editorcmd but make sure that the command stays in the foreground till the programme is exited.
Not all text fields work yet (esp CodeMirror), so make sure you test it before writing war and peace.
:! [shell command] or :exclaim [shell command] will run the command and give you STDOUT/STDERR back in the command line.
You can't use composite and shell pipes together yet.
Anything that works in /bin/sh should work
If you want to use a different shell, just make your own alias:
command ! exclaim fish -c (but be aware that some shells require quotes around arguments given to -c)
Requires a new permission to use the native messenger (and to use Tridactyl at all, unfortunately)
nativeopen will try to open a new tab or window using the native messenger. It is used in {,win,tab}open automatically when you try to open about: or file: URIs.
Add hint -W [exstr] to execute exstr on hint's href
hint -W exclaim_quiet mpv works particularly well.
Breaking change: change ignore mode binds to be symmetric and resolve Jupyter conflict
Ignore mode is now bound to <S-Insert> to enter and leave it.
Previous binds of I and <S-Esc> are unbound
More scrolling fixes
G/gg will now work on more sites
Completion improvements
History completion performance improved
If you find you are getting worse results than usual, increase set historyresults to, e.g, 500.
Fix #446: you can now edit completions you select with space
Completions will now pan to show you what you have selected
Mode indicator is now print friendly (#453)!
Fiddled with help theme
We've tried to make it look a bit more like the old Vimperator help pages and have hidden some useless or misleading bits that TypeDoc produced, such as the return values.
viewsource improved
Now bound to gf by default
Fix viewsource elem not always covering the whole page
Remove viewsource elem on spa history changes
Bind help to F1
Changelog changelog:
Change changelog date format
Changelog: use standard case: changelog.md -> CHANGELOG.md
Changelog: move to the standard location
Changelog: add dates
Misc fixes
Fix :open . Fixes #421
Filter AltGraph keys. Fixes #430
Explain that the hint tags are typed in lowercase even though they are displayed in uppercase
Release 1.9.8 / 2018-04-26
Make error reporting to command line less fussy
Fix error reporting loop with noiframeon
Release 1.9.7 / 2018-04-25
Load iframe more lazily to stop breakage on some sites
Add setting noiframeon for websites that are still broken by our iframe ("ServiceNow", for example: #279)
Simply set noiframeon [space separated URLs] to blacklist URLs
This will hopefully be our final release before the native messenger for OSX and Linux is merged.
If you'd like to help test it out, download our latest betas from here and run :installnative once you are in.
Release 1.9.6 / 2018-04-25
Scrolling improvements
Faster (#395)
G/gg work on more pages (#382)
Mode indicator improvements
Can be disabled with set modeindicator false
Text is not selectable to improve the lives of people who "Select All" a lot
Internal error messages are now displayed in the command line
New default alias :h for :help
Bug fixes
Fix #418: keyseq is better at realising when a key combination is invalid
Release 1.9.5 / 2018-04-22
Add mode indicator
Fix #337: Make composite and ex-parser more sequential
Add D binding: close current tab and tabprev
Bug fixes
Fix tab in inputmode
Catch CSP exception when hijacking
Release 1.9.4 / 2018-04-20
Add jumplist for inputs bound to g;
Editor's impartial note: this is pretty cool
Add hint -W [exstr] to execute exstr on hint's href
Update new tab page:
Add changelog
Remove welcome to new users as we have tutor for that now
Fix newtab redirection on set newtab [url]
set newtab about:blank now works thanks to a Mozilla bug fix!
Warn users about native messenger update
Bug fixes
input-mode now correctly exits to normal mode on focus loss
Stop treating "std::map" or "Error: foo" as URIs: searching for them will now work.
Release 1.9.3 / 2018-04-19
Fix unbind issues
Add more default binds from Vimperator
Change the ^ bind to <c-6> (matches vim)
:bmark now supports folders
Release 1.9.2 / 2018-04-16
Fix #392 (bug with keyseq)
Release 1.9.1 / 2018-04-15
Fix buffer switch bind
Release 1.9.0 / 2018-04-15
Allow binds with modifiers (e.g. <C-u>) and binds of special keys (e.g. <F1>) and both together (e.g. <SA-Escape>)
Normal mode now only hides keypresses that you've told it to listen to from the web page
Improve documentation
Update readme
Improve help on excmds.ts
Update AMO text (includes explanation of why various permissions are demanded)
Add tutorial on tutor
Shown on first install of Tridactyl
Add viewconfig command to open the current configuration in Firefox's native JSON viewer (which Tridactyl doesn't work in)
If you downloaded a beta before pre778, you will need to update manually to a later beta.
Small new features
Fix #370: add clipboard yanktitle|yankmd
Add fullscreen command (not quite #376)
Add viewsource command
set allowautofocus false to stop pages stealing focus on load (#266, #369)
^ now switches to last used tab by default
In command mode, Space now puts the URL from the selected completion into the command line (#224)
Add find mode, left unbound by default
Not ready for widespread usage: slow and probably buggy.
hint -wp to open hint in a private window (#317)
Configuration can now upgrade itself to allow us to rename settings
Add dark theme: set theme dark (#230)
Tab opening settings for tabopen (#342)
set {related,tab}openpos next|last
Stuff only collaborators will care about
Code is now run through the prettier formatter before each commit
Moderately large bug fixes
Fix scrolling on sites that use frames (#372, #63, #107, #273, #218)
Fix hinting on sites with frames (#67)
Hijack event listeners to put hints on more JavaScript links (#204, #163, #215)
Small bug fixes
Fix #276: ]] on Hacker News
Support #/% index for tabs everywhere internally
Fix #341: tabclose # now works
Reduce logging
Rename some config:
Rename vimium-gi to gimode, default to firefox, version to configversion
Fix hinting following JavaScript links because they look the same
Introduce new bugs
Show useless hints on some sites (#225)
and more!
Release 1.8.2 / 2018-03-07
Improve config API
set key.subkey.subsubkey value now works
Add user feedback to bind and get
Add save link/img hint submode (;s, ;S, ;a, ;A) (#148)
Add autocmd [event] [filter] [ex command]
Currently, only supports the event DocStart
Most useful for entering ignore mode on certain websites: autocmd DocStart mail.google.com mode ignore
Add exmode aliases with command [alias] [ex_command]. Many aliases have been ported from Pentadactyl. (#236)
Add urlmodify command (#286, #298)
Support Emacs-style C-(a|e|k|u) in cmdline (#277)
Support changing followpage pattern used in ]] and [[ to allow use with foreign languages
Add logging levels and make logging less verbose by default (#206)
Support %s magic string for search providers (#253)
Add hintfiltermode config and new "vimperator, vimperator-reflow" hinting modes
Make hintPage follow link if there's only 1 option
Fix high resource usage when typing under some circumstances (#311)
set newtab foo.bar now changes all new tab pages (#235)
Fix hints on some sites via cleanslate.css (#220)
Fix new config system (#321)
followpage now falls back to urlincrement
tabopen now opens tabs to the right of the curent tab
Fix floating commandline iframe on some sites (#289)
Enter insert mode on drop down menus (#281)
Support hinting on some dodgy old websites (#287)
Make :reloadall only refresh current window tabs (#288)
Remove xx binding (#262)
Fix gu in directories (#256)
Fix various typos (#247, #228)
Add FAQ and other updates to readme.md (#232)
Release 1.7.3 / 2017-12-21
Hint tags are much better:
Hint tags are now as short as possible
Remove now disused hintorder setting
Add . to repeat last action
Add inputmode: gi and then Tab will cycle you between all input fields on a page
Add hint kill submode ;k for removing elements of a webpage such as dickbars
Add relative zoom and z{i,z,o} binds
Add sanitize excmd for deleting browsing/Tridactyl data
Search engines:
Add searchsetkeyword [keyword] [url]: define your own search engines (#194)
Add Qwant and update startpage URL (#198)
Add Google Scholar search engine
Fix problems where ignore mode would revert to normal mode on some websites with iframes (#176)
Add ^ and $ in normal mode for navigation to 0% or 100% in x-direction
Buffer completion fixes
Use tab ID even if buffer has a trailing space (#223)
completions: passthrough # in buffercompletion
Support multiple URLs for quickmarks
Blacklist default newtab url from history completions
Fix set newtab failing to set newtab
Add q, qa, and quit synonyms
Fix unset failing to take effect without reloading page
Minor improvements to help preface
Add tags to standard hinting
Log an error to browser console if no TTS voices are found
Release 1.7.0 / 2017-12-01
History completion is massively improved: much faster, more relevant results, and less janky as you type.
User configuration
set [setting] without a value will inform you of the current value
Add configuration options for hinting: hintchars and hintorder
Add unset for resetting a bind to default
You can now change default search engine with e.g, set searchengine bing (#60)
The default new tab page can be replaced with any URL via set newtab [url] (#59)
Add gh and gH and "homepages" setting (#96)
Shift-tab and tab now will cycle around completions correctly
ys now works on some older pages
Add bmarks command for searching through bookmarks (#167)
Add hint -c [selector]: add hints that match CSS selector
Add text-to-speech hint mode on ;r
Allow ;p to yank any element which contains text
Add ;# hint yank anchor mode
Improve hint CSS by adding a border and making background semi-transparent
Add tabonly command
Fix hinting mysteriously not working on some pages (#168)
Fix issue where command line would invisibly cover up part of the screen (#170)
Bookmarks can now have spaces in their titles
Fix some hints on sites such as pcgamer.co.uk
Long page titles will no longer appear after URLs in completions
Highlighted features:
f/F — enter the "hint mode" to select a link to follow. F to open it in a background tab.
Shift + Insert — enter "ignore mode" to send all key presses to the web page you are on. Press Shift + Insert again to return to the highly productive "normal mode".
H/L — go back/forward in the history.
o/O — open a URL in this tab (O to pre-load current URL).
t/T — open a URL in a new tab (T to pre-load current URL).
gt/gT — go to the next/previous tab.
d — close the current tab.
/ — open the find search box.
A — bookmark the current page
b — bring up a list of open tabs in the current window.
s — if you want to search for something that looks like a domain name or URL.
gi — scroll to and focus the last-used input on the page.
gr — open Firefox reader mode (note: Tridactyl will not work in this mode).
Bind your own commands with, e.g., :bind J tabprev. Type :help bind to see help on custom binds.
yy — copy the current page URL to your clipboard.
[[/]] — navigate forward/backward though paginated pages.
ZZ — close all tabs and windows, but it will only "save" them if your about:preferences are set to "show your tabs and windows from last time".
:help hint to see all the other useful hint modes (this is the f magic. :) ).
Important limitations due to WebExtensions
You can only navigate to most about:\file: pages if you have the native messenger installed.
Firefox will not load Tridactyl on addons.mozilla.org, about:*, some file:* URIs, view-source:*, or data:*. On these pages Ctrl-L (or F6), Ctrl-Tab and Ctrl-W are your escape hatches.
Tridactyl does not currently support changing/hiding the Firefox GUI, but you can do it yourself by changing your userChrome. There is an example file available on our repository [2].
Tridactyl cannot capture key presses until web pages are loaded. You can use :reloadall to reload all tabs to make life more bearable, or flip browser.sessionstore.restore_tabs_lazily to false in about:config.
Why do I see this here?
Tridactyl overrides your newtab page because it cannot insert its content script on the default about:newtab. Without the content script, our shortcuts won't work, even if you're just passing through the page. We're working with Firefox on improvements to the WebExtension APIs that will remove this restriction.