mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-01-31 10:05:47 +01:00
imported patch dactylify
--HG-- rename : common/content/liberator-overlay.js => common/content/dactyl-overlay.js rename : common/content/liberator.js => common/content/dactyl.js rename : common/content/liberator.xul => common/content/dactyl.xul rename : common/skin/liberator.css => common/skin/dactyl.css rename : muttator/content/compose/liberator.dtd => muttator/content/compose/dactyl.dtd rename : muttator/content/compose/liberator.xul => muttator/content/compose/dactyl.xul rename : muttator/content/liberator.dtd => muttator/content/dactyl.dtd rename : vimperator/AUTHORS => pentadactyl/AUTHORS rename : vimperator/Donors => pentadactyl/Donors rename : vimperator/Makefile => pentadactyl/Makefile rename : vimperator/NEWS => pentadactyl/NEWS rename : vimperator/TODO => pentadactyl/TODO rename : vimperator/chrome.manifest => pentadactyl/chrome.manifest rename : vimperator/components/about-handler.js => pentadactyl/components/about-handler.js rename : vimperator/components/commandline-handler.js => pentadactyl/components/commandline-handler.js rename : vimperator/components/protocols.js => pentadactyl/components/protocols.js rename : vimperator/content/about.html => pentadactyl/content/about.html rename : vimperator/content/about_background.png => pentadactyl/content/about_background.png rename : vimperator/content/config.js => pentadactyl/content/config.js rename : vimperator/content/liberator.dtd => pentadactyl/content/dactyl.dtd rename : vimperator/content/logo.png => pentadactyl/content/logo.png rename : vimperator/content/vimperator.svg => pentadactyl/content/pentadactyl.svg rename : vimperator/content/vimperator.xul => pentadactyl/content/pentadactyl.xul rename : vimperator/contrib/vim/Makefile => pentadactyl/contrib/vim/Makefile rename : vimperator/contrib/vim/ftdetect/vimperator.vim => pentadactyl/contrib/vim/ftdetect/pentadactyl.vim rename : vimperator/contrib/vim/mkvimball.txt => pentadactyl/contrib/vim/mkvimball.txt rename : vimperator/contrib/vim/syntax/vimperator.vim => pentadactyl/contrib/vim/syntax/pentadactyl.vim rename : vimperator/install.rdf => pentadactyl/install.rdf rename : vimperator/locale/en-US/all.xml => pentadactyl/locale/en-US/all.xml rename : vimperator/locale/en-US/autocommands.xml => pentadactyl/locale/en-US/autocommands.xml rename : vimperator/locale/en-US/liberator.dtd => pentadactyl/locale/en-US/dactyl.dtd rename : vimperator/locale/en-US/gui.xml => pentadactyl/locale/en-US/gui.xml rename : vimperator/locale/en-US/intro.xml => pentadactyl/locale/en-US/intro.xml rename : vimperator/locale/en-US/options.xml => pentadactyl/locale/en-US/options.xml rename : vimperator/locale/en-US/tutorial.xml => pentadactyl/locale/en-US/tutorial.xml rename : vimperator/vimperatorrc.example => pentadactyl/pentadactylrc.example rename : vimperator/regressions.js => pentadactyl/regressions.js rename : vimperator/skin/about.css => pentadactyl/skin/about.css rename : vimperator/skin/icon.png => pentadactyl/skin/icon.png rename : xulmus/content/liberator.dtd => xulmus/content/dactyl.dtd rename : xulmus/locale/en-US/liberator.dtd => xulmus/locale/en-US/dactyl.dtd
This commit is contained in:
42
pentadactyl/AUTHORS
Normal file
42
pentadactyl/AUTHORS
Normal file
@@ -0,0 +1,42 @@
|
||||
Developers:
|
||||
* Kris Maglione
|
||||
|
||||
Inactive/former developers:
|
||||
* Viktor Kojouharov (Виктор Кожухаров)
|
||||
* Marco Candrian (mac@calmar.ws)
|
||||
* Daniel Bainton (dpb .AT. driftaway .DOT. org)
|
||||
* Doug Kearns (dougkearns@gmail.com)
|
||||
* Konstantin Stepanov (milezv@yandex.ru)
|
||||
* Tim Hammerquist (penryu@gmail.com)
|
||||
* Ted Pavlic <ted@tedpavlic.com>
|
||||
* anekos <anekos@snca.net>
|
||||
* teramako <teramako@gmail.com>
|
||||
* janus_wel <janus.wel.3@gmail.com>
|
||||
* Martin Stubenschrott (stubenschrott@vimperator.org)
|
||||
* Conrad Irwin
|
||||
|
||||
Patches (in no special order):
|
||||
* Ruud Grosmann ('followhints' option)
|
||||
* Xie&Tian (multibyte support for hints, doc fixes)
|
||||
* Juergen Descher
|
||||
* Kazuo (count support for ctrl-^)
|
||||
* Daniel Schaffrath (;b support)
|
||||
* Dominik Meister (:b# support and other buffer related commands)
|
||||
* Lukas Mai
|
||||
* Guido Van Hoecke
|
||||
* Daniel Trstenjak (various things with hints)
|
||||
* M.Terada (suggest engines)
|
||||
* Muthu Kannan (ctrl-v support)
|
||||
* Lars Kindler (:buffer(s) functionality)
|
||||
* Lee Hinman (:open ./.. support)
|
||||
* Bart Trojanowski (Makefile)
|
||||
* Hannes Rist (:set titlestring support)
|
||||
* Nikolai Weibull ($PENTADACTYL_HOME)
|
||||
* Joseph Xu (supporting multiple top level windows better)
|
||||
* Raimon Grau Cuscó (document relationship navigation - ]], [[)
|
||||
* Ryan Zheng (ctrl-x/a support)
|
||||
* Dan Boger (:set online support)
|
||||
* Štěpán Němec (help copy-editing and favicon support)
|
||||
* Jarkko Oranen ('maxitems' option)
|
||||
* Gary Katsevman ('private' option)
|
||||
* Srinath Krishna (disable password field editing)
|
||||
139
pentadactyl/Donors
Normal file
139
pentadactyl/Donors
Normal file
@@ -0,0 +1,139 @@
|
||||
2009:
|
||||
* Francois-Xavier Gsell
|
||||
* Ken Takano
|
||||
* Daniel Bainton (web hosting for about a year - thanks a lot!)
|
||||
* 渡邉 丈洋 (takehiro78)
|
||||
* Tony Rein
|
||||
* Daniel Bentsur
|
||||
* Ganesh Hegde
|
||||
* Elbert Hannah
|
||||
* Oliver Schaefer (2nd donation this year, and largest one in 2009! - Thanks!)
|
||||
* James Davis
|
||||
* Gregg Archer
|
||||
* James Henderson
|
||||
* Hiroshi Okada
|
||||
* Imron Alston
|
||||
* Luke Wagner
|
||||
* Deepan Gandhi
|
||||
* Guilherme Freitas
|
||||
* Robert Johnston
|
||||
* Jim Aragon
|
||||
* Norio Sugimoto
|
||||
* Catatonic Recording
|
||||
* Wataru Inoue (first one donating via addons.mozilla.org)
|
||||
* Krishnakumar Subramanian
|
||||
* Natan Zohar
|
||||
* Frederic Hebert
|
||||
* kursad karatas
|
||||
* Thomas Svensen (the first donor who donated 3 times! (once every year))
|
||||
* Máté Nagy
|
||||
* Jessica Pavlin
|
||||
* David Wolfe
|
||||
* Sigurdur Finnsson
|
||||
* Pixel G
|
||||
* Joel Rosario
|
||||
* Alvaro Novo
|
||||
* Robert Heckel
|
||||
* Daniel Collin
|
||||
* Lucien Grondin
|
||||
* Christoph Petzold
|
||||
* Bjoern Steinbrink
|
||||
* Erlend Hamberg
|
||||
* Fabien Benetou
|
||||
* Arvin Moezzi
|
||||
* Calogero Lo Leggio
|
||||
* Sapan Bhatia
|
||||
* Gavin Sinclair
|
||||
* Stephen Borchert
|
||||
* Convolution
|
||||
* Brian Hall
|
||||
* Daniel Hahler
|
||||
* Per-Henrik Lundblom
|
||||
* David C Foor
|
||||
* Oliver Schaefer
|
||||
* Paul Moss
|
||||
* Yongji Zhang
|
||||
* Brian Peiris
|
||||
* Peleg Michaeli ("Every hand revealed" from my amazon.de wishlist)
|
||||
* InspireFocus
|
||||
* Michael Fremont
|
||||
* Kamil Dworakowski
|
||||
* Jonathan Austin
|
||||
* Steven Romanow
|
||||
|
||||
2008:
|
||||
* John Baber
|
||||
* Mark Orr
|
||||
* George Lowell (biggest donor so far!)
|
||||
* Keith Waclena
|
||||
* Christopher Glazner
|
||||
* Mats Vestin
|
||||
* Berni Joss
|
||||
* Peter Rufer
|
||||
* Yann Le Du
|
||||
* Wilson Bilkovich
|
||||
* Galen Taylor
|
||||
* Ben Hoffstein
|
||||
* Luc St-Louis
|
||||
* Robert Meerman
|
||||
* Silvio Di Stefano
|
||||
* Lance Feagan
|
||||
* Alexander Klink
|
||||
* Chaz McGarvey
|
||||
* Jesse Hathaway
|
||||
* Takayuki Tsukitani
|
||||
* Victor Nemkov
|
||||
* John Lusth
|
||||
* Thomas Svensen
|
||||
* Ryan McBride
|
||||
* Brian Clark
|
||||
* Gavin Gilmour
|
||||
* Sivaraj Doddannan
|
||||
* Michael Hrabanek
|
||||
* Nigel McNie
|
||||
* Ben Damm
|
||||
* Anton Kovalenko
|
||||
* Paulo Tanimoto
|
||||
* Paul Sobey
|
||||
* Olivier Guéry
|
||||
* Dotan Cohen
|
||||
* Daniel Schaffrath
|
||||
* Sam Griffin
|
||||
* Ivan Pantuyev
|
||||
* Spike Spiegal
|
||||
* Mark Hashimoto
|
||||
* Anirudh Sanjeev
|
||||
* Ted Pavlic
|
||||
* Jacqueline Wegscheid
|
||||
* Kashyap Paidimarri
|
||||
* Gabriel Gellner
|
||||
* Marco Candrian
|
||||
* Ovidiu Curcan
|
||||
* Ivo-Jose Jimenez-Ramos (2x)
|
||||
* Andrew Pantyukhin
|
||||
* Kurtis Rader
|
||||
|
||||
2007:
|
||||
* Richard Terrell
|
||||
* Benjamin Sergeant
|
||||
* Frank Schiebel
|
||||
* Cillian de Roiste (2x)
|
||||
* David Thompson
|
||||
* Christian Walther
|
||||
* Ivo-Jose Jimenez-Ramos
|
||||
* Robert Heckel
|
||||
* Ramana Kumar
|
||||
* Thomas Svensen
|
||||
* Ian Taylor
|
||||
* Albert Menkveld
|
||||
* Nathan Saper
|
||||
* Paulo Tanimoto
|
||||
* Nigel McNie
|
||||
* Richard Dooling
|
||||
* Giuseppe Guida
|
||||
* Stefan Krauth
|
||||
* Robert Heckel
|
||||
* Miron Tewfik
|
||||
* Sjoerd Siebinga
|
||||
* Ben Klemens
|
||||
* Andrew Pantyukhin
|
||||
6
pentadactyl/Makefile
Normal file
6
pentadactyl/Makefile
Normal file
@@ -0,0 +1,6 @@
|
||||
#### configuration
|
||||
|
||||
VERSION = 2.3a1pre
|
||||
NAME = pentadactyl
|
||||
|
||||
include ../common/Makefile
|
||||
481
pentadactyl/NEWS
Executable file
481
pentadactyl/NEWS
Executable file
@@ -0,0 +1,481 @@
|
||||
2009-XX-XX:
|
||||
* Replaced 'focuscontent' with 'strictfocus'
|
||||
* Replaced previous incremental search implementation
|
||||
* :open now only opens files begining with / or ./
|
||||
* Page zoom information is now shown in the status bar
|
||||
* Added ZO, ZI, ZM, and ZR as aliases for zO, zI, zM, and zR
|
||||
* Add basic plugin authorship documentation
|
||||
* Plugins may now provide full-fleged ':help' documentation
|
||||
* The help system is newly modularized
|
||||
* Asciidoc is no longer for building
|
||||
* Remove [c]:edit[c], [c]:tabedit[c], and [c]:winedit[c]
|
||||
* Add 'jsdebugger' option - switch on/off javascript debugger service
|
||||
* Add "addons", "downloads", "extoptions" and "help" to the 'activate' option.
|
||||
|
||||
2009-10-28:
|
||||
* version 2.2
|
||||
* IMPORTANT: Pentadactyl's licence has changed from the MPL/GPL/LGPL
|
||||
tri-license to the MIT license.
|
||||
* IMPORTANT: Map.flags has been replaced with individual properties.
|
||||
Mappings defined in plugins with mappings.add will need to be updated.
|
||||
...................................
|
||||
E.g.
|
||||
mappings.add(...,
|
||||
{ flags: Mappings.flags.ARGUMENT |
|
||||
Mappings.flags.COUNT |
|
||||
Mappings.flags.MOTION |
|
||||
Mappings.flags.ALLOW_EVENT_ROUTING });
|
||||
is now
|
||||
mappings.add(...,
|
||||
{ arg: true, count: true, motion: true, route: true });
|
||||
...................................
|
||||
* IMPORTANT: shifted key notation now matches Vim's behaviour. E.g. <C-a>
|
||||
and <C-A> are equivalent, to map the uppercase character use <C-S-A>.
|
||||
* IMPORTANT: 'popups' now takes a stringlist rather than a number.
|
||||
|
||||
* add [c]:winonly[c]
|
||||
* add [c]:tabattach[c]
|
||||
* add [c]:keepalt[c]
|
||||
* add [c]:styledisable[c], [c]:styleenable[c], and [c]:styletoggle[c]
|
||||
* add [c]:sanitize[c], 'sanitizetimespan' and 'sanitizeitems'
|
||||
* add [c]:verbose[c]
|
||||
* add [c]:window[c] to run a command in a new window
|
||||
* add ! version of [c]:delbmarks[c] to delete all bookmarks
|
||||
* add [c]:toolbaropen[c], [c]:toolbarclose[c], and [c]:toolbartoggle[c]
|
||||
* make [c]:open[c] behavior match that of [c]:tabopen[c] and [c]:winopen[c]
|
||||
when no argument is specified
|
||||
* add extension related commands - [c]:extadd[c], [c]:extdelete[c],
|
||||
[c]:extdisable[c], [c]:extenable[c], [c]:extensions[c], [c]:extoptions[c]
|
||||
* add *-javascript* flag to [c]:autocommand[c]
|
||||
* add 'private' - enter private browsing mode, matching *PrivateMode*
|
||||
autocommand
|
||||
* add *-description* option to [c]:command[c]
|
||||
* command-line options are now supported via the host application's
|
||||
*-dactyl* option
|
||||
* add [m];i[m] and [m];I[m] for opening image location (in new tab)
|
||||
* add [j]all.html[j] to show all help sections in a single page - available via
|
||||
[c]:helpall[c]
|
||||
* add [m];c[m] extended hint mode - open the context menu
|
||||
* add [m]@:[m] mapping - repeat the last Ex command
|
||||
* add [m]|[m] mapping - toggle between rendered and source view
|
||||
|
||||
2009-05-21:
|
||||
* version 2.1
|
||||
* IMPORTANT: Default value of 'complete' has been changed from "sfl" to "slf"
|
||||
* massively speed up [c]:open[c] completions
|
||||
* TabMixPlus (and other tab extensions) should work much better now
|
||||
together with Pentadactyl unless you [c]:set guioptions+=[nN][c]
|
||||
* remove 'preload' option. You can fake it by some custom JavaScript in your RC file.
|
||||
* add [c]:frameonly[c]
|
||||
* add [c]:stopall[c]
|
||||
* add [c]:tabdo[c]
|
||||
* add 'encoding'
|
||||
* add 'hintinputs'
|
||||
* add [c]:silent[c]
|
||||
* add [j]$MY_PENTADACTYLRC[j]
|
||||
* add ' and " local marks
|
||||
* add [m]w[m] and [m]W[m] Normal mode mappings for symmetry with
|
||||
[m]o[m]/[m]O[m] and [m]t[m]/[m]T[m]
|
||||
* add [c]:messclear[c]
|
||||
* add 'maxitems'
|
||||
* as usual many small bug fixes
|
||||
|
||||
2009-03-28:
|
||||
* version 2.0
|
||||
* IMPORTANT: For compatibility with Vim, the 'guioptions' "b" value has been renamed
|
||||
"B". "b" now represents the bottom scrollbar.
|
||||
* IMPORTANT: [c]:set[c] now sets multiple options, as in Vim. Spaces in values
|
||||
must be quoted or escaped.
|
||||
* IMPORTANT: Due to much improved autocompletion, changed default 'complete' option
|
||||
value to "sfl", listing intelligent Firefox location bar results. Using "b" or "h"
|
||||
might cause problems/massive slowdowns, use with care!
|
||||
* IMPORTANT: AlwaysHint mode with [m];F[m] mode changed the semantics slightly.
|
||||
* IMPORTANT: command actions now take an args object, returned from
|
||||
commands.parseArgs, as their first argument. This will break any commands
|
||||
not using the args parser explicitly. The old string value is now
|
||||
available via args.string.
|
||||
* IMPORTANT: 'verbose' is now used for message levels. Logging is
|
||||
controlled by the *extensions.dactyl.loglevel* preference.
|
||||
* IMPORTANT: [c]:viusage[c] and [c]:exusage[c] now jump to the help index, use the
|
||||
special versions for the old behavior.
|
||||
* IMPORTANT: renamed Startup and Quit autocmd events to *PentadactylEnter* and
|
||||
*PentadactylLeave* respectively.
|
||||
* IMPORTANT: 'verbose' is now by default at 1, set to 0 to not show any status messages.
|
||||
* IMPORTANT: $PENTADACTYL_HOME is no longer used.
|
||||
|
||||
* Selecting an <input type="file"> with hints now causes the command line to prompt
|
||||
for file input (instead of doing nothing).
|
||||
* [count][m]<C-n>[m] now goes to the [count]th next tab rather than the [count]th tab.
|
||||
* add ~/.pentadactyl/info/{profile}/, similar to viminfo
|
||||
* add [j]$PENTADACTYL_RUNTIME[j], [j]$PENTADACTYL_INIT[j]
|
||||
* [c]:hardcopy[c] now supports output redirection to a file on Unix and MacUnix
|
||||
* add [m];f[m] extended hint mode to focus a frame
|
||||
* add "r", "l", and "b" to 'guioptions' to toggle the scrollbars.
|
||||
* remove spaces and newlines when open urls starting with http:// or similar
|
||||
before :o http://linux .com would search for http://linux and for .com, now
|
||||
it just opens linux.com. Also handy when pasting broken urls with [m]p[m] or [m]P[m].
|
||||
* add 'wildcase' option
|
||||
* 'linkbgcolor', 'linkfgcolor', ... have been replaced with highlight
|
||||
groups, *HintElem* and *HintActive*
|
||||
* new 'followhints' option
|
||||
* [c]:buffers[c] supports a filter now to only list buffers matching filter (Vim
|
||||
incompatible, but consistent with other commands)
|
||||
* Favicon support in many places
|
||||
* add *Fullscreen* autocommmand
|
||||
* add [c]:colorscheme[c]
|
||||
* multibyte support for hints (thanks Xie&Tian)
|
||||
* add 'exrc'
|
||||
* add 'errorbells'
|
||||
* add shell command completion for [c]:![c]
|
||||
* add [c]:map <silent>[c] to prevent a mapping from being echoed (might be slow currently, however)
|
||||
* add guioptions=nN to number tabs
|
||||
* add [c]:loadplugins[c] command
|
||||
* add [m].[m] mapping
|
||||
* add [m]N%[m] normal mode command
|
||||
* add interpolation for items such as *<url>* to autocommands
|
||||
* add *-nargs*, *-complete*, *-bang*, and *-count* attribute support to [c]:command[c]
|
||||
* much improved completion support, including javascript, option, and search keyword
|
||||
* add [m]<PageUp>[m]/[m]<S-Up>[m] and [m]<PageDown>[m]/[m]<S-Down>[m] command-line mappings for
|
||||
selecting the previous and next history items
|
||||
* remove 'hintstyle', 'hlsearchstyle', 't_vb' and 'visualbellstyle' - use
|
||||
[c]:highlight {Hint,Search,Bell}[c]
|
||||
* add [c]:highlight[c]
|
||||
* add [c]:optionusage[c]
|
||||
* add [c]:doautocmd[c] and [c]:doautoall[c]
|
||||
* add [c]:style[c] and [c]:delstyle[c] commands, allow [c]:so[c] to source stylesheets
|
||||
* add *DOMLoad* autocmd event
|
||||
* add [c]:messages[c] and 'messages'
|
||||
* add [c]:runtime[c]
|
||||
* add 'runtimepath'
|
||||
* allow [m];[m] hints to work in the multiline output widget
|
||||
* add [c]:scriptnames[c]
|
||||
* add command-line completion to 'activate', 'cpt', 'defsearch', 'pageinfo',
|
||||
'newtab' and 'popups'
|
||||
* add 'helpfile' option
|
||||
* add 'wildignore' option
|
||||
* add [c]:finish[c] command
|
||||
* new events *BookmarkAdd*, *ShellCmdPost*, *PentadactylLeavePre*, *DownloadPost*
|
||||
* add 'cdpath' option
|
||||
* allow [c]:dialog[c] to open the cookies manager
|
||||
* add 'loadplugins' option
|
||||
* add count support to [m]<C-^>[m] (Kazuo)
|
||||
* add 'eventignore' option
|
||||
* add [c]:tabdetach[c] command
|
||||
* new [m];b[m] extended hint mode (thanks Daniel Schaffrath)
|
||||
* [c]:qa![c] and [c]:q![c] quit forcefully, as in Vim
|
||||
* stop macro playback on [m]<C-c>[m]
|
||||
* [c]:bmark[c] now updates a bookmark, if possible. [c]:bmark![c] adds a new one
|
||||
* [c]:dialog[c] and [c]:sidebar[c] arguments are now case-insensitive
|
||||
* many bug fixes
|
||||
|
||||
2008-08-16:
|
||||
* version 1.2
|
||||
* IMPORTANT: changed [c]:command[c] to behave like Vim's version.
|
||||
...................................
|
||||
Eg. An alert command specified previously as
|
||||
:command AlertMe alert(args)
|
||||
should now be defined as
|
||||
:command AlertMe :js alert(<args>)
|
||||
...................................
|
||||
* IMPORTANT: changed (again) the default keybinding to temporarily disable all
|
||||
Pentadactyl keybindings from [m]<C-q>[m] to [m]<C-z>[m] since many users complained
|
||||
about hitting [m]<C-q>[m] twice and exiting Pentadactyl
|
||||
* IMPORTANT: removed old [c]:buffers![c] buffer window, as it was ugly and slightly broken
|
||||
use [m]B[m] or [c]:buffers[c] instead
|
||||
* IMPORTANT: input fields are not blured anymore by default after a page has loaded
|
||||
use [c]:set [no]focuscontent[c] to control the behavior (thanks Paul Sobey for the
|
||||
generous donation which made this behavior possible)
|
||||
* IMPORTANT: [m]<C-x>[m]/[m]<C-a>[m] never take possible negative URLs into account, it was just
|
||||
too unpredictable
|
||||
* performance fix by using cached history, should save about 5ms on each pageload
|
||||
* add [c]:emenu[c] for accessing the Firefox main menu items from the command line
|
||||
* add 'shell' and 'shellcmdflag' options
|
||||
* [c]:tabprevious[c], [c]:bprevious[c], [c]:tabnext[c], [c]:bnext[c] and friends now accept a prefix count
|
||||
* add [c]:comclear[c] and [c]:delcommand[c]
|
||||
* add a special version to [c]:hardcopy[c] to skip the Print dialog
|
||||
* add [c]:bl[ast][c], [c]:bf[irst][c], [c]:br[ewind][c] to go to first/last tab
|
||||
* add [c]:bn[ext][c], [c]:bp[revious][c], [c]:bN[ext][c] to switch to next/previous tab
|
||||
* add [c]:pagestyle[c] command to allow for switching between alternate style sheets
|
||||
* add [c]:b[c]# to select the alternate buffer
|
||||
* add [c]:tabduplicate[c] command
|
||||
* new 'urlseparator' option for specifying the regex used to split the arg to
|
||||
[c]:open[c], [c]:tabopen[c] and [c]:winopen[c]
|
||||
* 'editor' now accepts quoting/escaping to use an editor with spaces in the path
|
||||
* support for *:%foo* as a count for commands (not yet widely used)
|
||||
* show informative message when a background tab was loaded, especially useful
|
||||
with a hidden tab bar.
|
||||
* new "l" flag for 'complete' to reuse the Firefox awesome bar for getting better
|
||||
completions for [c]:open[c]. Works only when 'wildoptions' contains "auto" and can
|
||||
be a little buggy if you are typing too fast.
|
||||
* new 'wildoptions' option (default off for now), to automatically list
|
||||
completions without the need to press the tab key
|
||||
* new argument parser for Ex commands, should tell better error messages when
|
||||
you do things like [c]:bmark -tag=a,b[c] instead of [c]:bmark -tags=a,b[c]
|
||||
* some option values can be tab-completed now; e.g., [c]:set wim=<tab>[c]
|
||||
* [c]:bdelete[c] accepts an optional argument now
|
||||
* renamed some [c]:autocmd[c], mainly BrowserStartup -> Startup and BrowserExit -> Quit
|
||||
* don't pass certain keys like [m]<C-o>[m] or [m]<C-n>[m] to Firefox in insert mode
|
||||
* keywords in [c]:open <arg>[c] have higher priority than local files now
|
||||
* add 'online' to control the "work offline" menu item
|
||||
* add [c]:jumps[c] command to list current tab's history
|
||||
* add [c]:setlocal[c] & [c]:setglobal[c] commands, so options can be local (per tab) & global
|
||||
* many small bug fixes
|
||||
|
||||
2008-06-03:
|
||||
* version 1.1
|
||||
* IMPORTANT: security update for suggest engines
|
||||
* try to add .exe automatically to filenames on windows, so [c]:set editor=gvim -f[c]
|
||||
will automatically invoke gvim.exe (if it's in the path). Thanks to
|
||||
Guido Van Hoecke
|
||||
* readded 'visualbellstyle' (thanks mauke)
|
||||
* new 'popups' option
|
||||
* many bug fixes as usual
|
||||
|
||||
2008-05-14:
|
||||
* version 1.0
|
||||
* IMPORTANT: THIS VERSION ONLY WORKS WITH FIREFOX 3.0 beta3 or newer
|
||||
* IMPORTANT: Major hints rewrite
|
||||
read up the new help for the [m]f[m], [m]F[m] and [m];[m] commands for details
|
||||
removed the following hint options: 'hintchars' 'maxhints'
|
||||
added the following hint options: 'hinttimeout', 'hintmatching', 'wordseperators'
|
||||
* IMPORTANT: changed [m]I[m] key to [m]<C-q>[m] to also work in textboxes
|
||||
* IMPORTANT: [c]:bmarks[c]! and [c]:history[c]! open the matching items now in a tab, instead
|
||||
of bringing up the bookmarks/history window
|
||||
* IMPORTANT: [m]B[m] mapping now works just like [c]:buffers[c], old bufferwindow will be removed
|
||||
at some time. Use B5gt to jump to the 5th tab.
|
||||
* also go to INSERT mode for HTMLSelectElements, so you can type text to go to element
|
||||
in drop down boxes
|
||||
* new "S" flag for 'complete' to list google suggestions in [c]:open vimp[c] and
|
||||
pressing tab (disabled by default). Also added new 'suggestengines' option.
|
||||
* [m]gi[m] accepts now a count to jump to the nth input field
|
||||
* [m]<C-t>[m] on input fields starts a very basic vi-mode
|
||||
* [c]:play[c] for playing a recorded macro
|
||||
* [c]:[del]macros [regex][c] for listing/deleting recorded macros
|
||||
* [c]:set![c] now lets you change about:config prefs similar to [c]:set[c]
|
||||
* new [c]:command[c] to add user defined commands
|
||||
* new setCustomMode for plugin writers
|
||||
* [c]:au[tocmd][c] executes commands on events (only 'PageLoad' actually) on websites
|
||||
* [m]@@[m] to repeat last macro
|
||||
* new macro commands [m]q[a-z0-9][m] and [m]@[a-z0-9][m] to replay them (thanks Marco!)
|
||||
* scroll commands like [m]j[m]/[m]k[m]/[m]gg[m]/etc. have a much better heuristic to find a scrollable frame
|
||||
* [c]:imap[c], [c]:inoremap[c], [c]:iunmap[c] and [c]:imapclear[c] added
|
||||
* new [m]g0[m] and [m]g$[m] mappings to go to the first/last tab
|
||||
* new [m]gf[m] and [m]gF[m] mappings and [m];v[m] and [m];V[m] hints mode to view the source code
|
||||
* new 'history' option for specifying the number of Ex commands and
|
||||
search patterns to store in the command-line history
|
||||
* new [m]<C-x>[m] and [m]<C-a>[m] mappings to increment the last number in the URL
|
||||
* new ~ mapping to open the home directory
|
||||
* [c]:open[c] tries to open a relative filename now, if you do a [c]:open foo.html[c]
|
||||
or [c]:open ../hello.txt[c]
|
||||
* new [c]:cd[c] and [c]:pwd[c] commands
|
||||
* new [c]:dialog[c] command to open various Firefox dialogs
|
||||
* new [m]a[m] and [m]A[m] mappings to deal with bookmarks
|
||||
* added [m]+++]]+++[m] and [m][[[m] to navigate to the next/previous document based on
|
||||
the regex specified in 'nextpattern' and 'previouspattern' (thanks kidd)
|
||||
* abbreviations for text fields ([c]:abbr[c] etc.) (thanks calmar)
|
||||
* you can edit textfields with [m]<C-i>[m] now using an external editor (thanks to Joseph Xu)
|
||||
* [c]:open[c], [c]:bmarks[c], etc. filter on space separated tokens now, so you can
|
||||
search with [c]:open linux windows <Tab>[c] all your bookmarks/history
|
||||
which contain linux AND windows in the url or title
|
||||
* tags and keyword support for [c]:bmark[c]
|
||||
* added full zoom, and changed keybindings slightly for text zoom
|
||||
* improvements for scrollable -- more -- prompt
|
||||
* sites like msn.com or yahoo.com don't focus search field anymore on keydown
|
||||
* new gi browser command to focus last used (or the first as a fallback) input box
|
||||
* edit TEXTAREAs with many Vim commands in a Vim and even visual mode if you set 'noinsertmode'
|
||||
* support for emacs/bash-like [m]<C-e>[m]/[m]a[m]/[m]u[m]/[m]k[m]/[m]h[m] keys in single line text fields
|
||||
* support for [m]*[m] and [m]#[m] mappings to search for the text selection or the text under the cursor
|
||||
* Escape finally clears any selection made in the document
|
||||
* initial start of caret mode. Start with [m]i[m], stop with [m]<Esc>[m]
|
||||
* new 'newtab' option for opening the command output in a new tab and better [c]:tab[c] support
|
||||
* many small bug fixes and enhancements
|
||||
|
||||
2007-12-21:
|
||||
* version 0.5.3
|
||||
* IMPORTANT: options are no longer automatically stored - use the
|
||||
~/.pentadactylrc file instead for persistent options
|
||||
* [c]:tabnext[c] and [c]:tabprevious[c] now accept an argument
|
||||
* the count to [m]gT[m] now specifies a relative tab motion like Vim
|
||||
* new [c]:pa[geinfo][c] command, and [m]<C-g>[m] and [m]g<C-g>[m] mappings (thanks Marco Candrian)
|
||||
* added new [c]:mkpentadactylrc[c] command
|
||||
* remove [c]:redraw[c] and [m]<C-L>[m] commands as they rely on FF3 features
|
||||
* [c]:ls[c], [c]:history[c] and [c]:bmarks[c] output is now hyperlinked
|
||||
* new [m]gb[m] and [m]gB[m] mappings to repeat the last [c]:buffer[!][c] command,
|
||||
* [c]:q[c] doesn't close the whole browser, if there are more than one windows
|
||||
* new [c]:winclose[c] command
|
||||
* [m]b[m] calls [c]:buffer![c] now instead of [c]:buffer[c]
|
||||
* [+], [-] and [+-] in the statusline, whether we can go back, forward, or both
|
||||
* [c]:set showtabline[c] now finally works as expected for all values
|
||||
* many other small bug fixes
|
||||
|
||||
2007-10-11:
|
||||
* version 0.5.2
|
||||
* changed semantics of [c]:set[!][c] and [c]:prefs[!][c] a little, [c]:set[c] shows now all non-default
|
||||
options, use [c]:prefs![c] to get the about:config window
|
||||
* added "s" and "a" mappings to extended hints mode for saving hint targets
|
||||
* [m]d[m], [m]D[m] and [c]:bdelete[c] support count now
|
||||
* [c]:back[c]/[c]:forward[c] can use tab-completion
|
||||
* [c]:undoall[c] support, and tab-completion for [c]:undo <Tab>[c]
|
||||
* new [c]:redraw[c] and [m]<C-L>[m] commands for forced redrawing of the screen
|
||||
* added new 'laststatus' option and removed "s" value from 'guioptions'
|
||||
* Tab-completion improvements for [c]:javascript[c] and [c]:open[c]
|
||||
* IMPORTANT: changed semantics of [c]:echo[c] and [c]:echoerr:[c] strings must be quoted with " or ' now,
|
||||
but you can do things like [c]:echo 3+2[c] or [c]:echo window.document[c] now
|
||||
* statusline is now white on black with bold font by default (like in (g)vim)
|
||||
(change with userChrome.css if you don't like it until we have [c]:colorscheme[c])
|
||||
* [c]:let mapleader=","[c] and [m]<Leader>[m] in [c]:map[c] support
|
||||
* added new [c]:let[c] and [c]:unlet[c] commands
|
||||
* [c]:b2[c] now allowed, no space required before the 2 anymore
|
||||
* [c]:![c] to run commands through system()
|
||||
* separated search and Ex command history
|
||||
* added 'visualbellstyle' for styling/hiding the visual bell
|
||||
* merge the existing status bar with the standard FF status bar so that
|
||||
security information and extension buttons are included
|
||||
* [c]:buffer[c] partial_string works now as in Vim, and with ! even better
|
||||
* new [c]:time[c] command for profiling
|
||||
* added new [c]:sidebar[c] and [c]:sbclose[c] commands
|
||||
* added 'more' and standard more-prompt key mappings to control
|
||||
behaviour of the message list pager
|
||||
* added 'hlsearchstyle' option to allow for user CSS styling of the
|
||||
highlighted text strings when 'hlsearch' is set
|
||||
* added 'linksearch' option to restrict page searches to link text - *\L*
|
||||
and *\l* can be used in the search pattern to override 'linksearch'
|
||||
* Pentadactyl trys to stay in command mode after loading pages instead
|
||||
of having a text field focused
|
||||
* added a visual bell and replaced 'beep' with 'visualbell'
|
||||
* added Pentadactyl logo (can be seen in the addons manager)
|
||||
* added 'hlsearch','incsearch', 'ignorecase' and 'smartcase' options
|
||||
* many small bug fixes and enhancments
|
||||
|
||||
2007-09-03:
|
||||
* version 0.5.1
|
||||
* native [m]/[m] and [m]?[m] search and [m]n[m] and [m]N[m] working again
|
||||
* the URL in the status line can be selected with the mouse again
|
||||
* the Windows default RC file is now ~/_pentadactylrc and the plugin
|
||||
directory is ~/pentadactyl/plugin
|
||||
* command-line history now works properly on Windows
|
||||
* filename completion now works on Windows
|
||||
* the Bookmarks Toolbar Folder is now read when bookmarks are first
|
||||
loaded - it was skipped entirely in the past
|
||||
* fixed search for [c]:open[c] (previously needed to do [c]:o <Tab>[c] ONCE to
|
||||
initialize them)
|
||||
* added [c]:set {option}![c] support to toggle a boolean option's value
|
||||
* added [c]:set all[c] and [c]:set all&[c] support to show the current value of all
|
||||
options and to reset all options to their default value
|
||||
* [c]:tabmove![c] wrapping works again
|
||||
|
||||
2007-08-16:
|
||||
* version 0.5
|
||||
* [c]:map[c] support (also [c]:noremap[c], [c]:unmap[c])
|
||||
* [c]:bmarks[c] and [c]:history[c] now use the multiline message window for output
|
||||
* rename [c]:bm[c], [c]:bmadd[c], and [c]:bmdel[c] to [c]:bmarks[c], [c]:bmark[c], and [c]:delbmarks[c] respectively
|
||||
* new [c]:normal[c] command
|
||||
* the command line keeps focus now, even when clicking outside of it
|
||||
* pentadactyl.events.feedkeys("2zi") support for scripts
|
||||
* [m]<C-u>[m]/[m]<C-d>[m] for scrolling the window up/down and the associated
|
||||
'scroll' option
|
||||
* files in ~/.pentadactyl/plugin/ are auto-sourced
|
||||
* [c]:winopen[c] support (multiple windows still very very experimental)
|
||||
* 'activate' option implemented
|
||||
* search engines which use POST instead of GET work now
|
||||
* [c]:javascript <<EOF[c] uses a better multiline input widget now
|
||||
* new [c]:map[c], [c]:noremap[c], [c]:mapclear[c] and [c]:unmap[c] commands
|
||||
* [c]:saveas[c] finally works (by calmar)
|
||||
* [m]<S-Insert>[m] pastes the X11 selection content in text fields now
|
||||
* Changed "|" to ", " as a URL seperator in [c]:open[c]
|
||||
* [m]<C-^>[m] mapping for selecting the alternate tab/buffer
|
||||
* QuickMarks support (new commands [c]:qmark[c]/[c]:qmarks[c]/[c]:delqmarks[c] and
|
||||
mappings [m]go{a-z}[m], [m]gn{a-z}[m] and [m]M{a-z}[m]
|
||||
* Multiline echo support
|
||||
* Command line is now cleared on most redraws like in Vim
|
||||
* The RSS feed button in the address bar works again
|
||||
* reload/stop buttons update enabled state again
|
||||
* added local/url marks support (thanks Viktor Kojouharov)
|
||||
* temporary shortcut [m]Y[m] to yank current selection (for non X11-users)
|
||||
* Flashing frame with [m]]f[m] now works as expected
|
||||
* many help fixes (most of them by Doug Kearns)
|
||||
* new [c]:reloadall[c] command
|
||||
* [c]:hardcopy[c] works now and shows the printing dialog
|
||||
* changed [m]R[m] to reload without cache instead of reload all due to popular request
|
||||
* changed secure sites -> green, broken sites -> red in the statusbar
|
||||
* Pentadactyl now sets the window title, so it's "pentadactyl.mozdev.org -
|
||||
Pentadactyl" instead of "pentadactyl.mozdev.org - Mozilla Firefox"
|
||||
Use [c]:set titlestring=...[c] to change it back (help from Hannes Rist)
|
||||
* [c]:tabmove[c] command (by Doug Kearns)
|
||||
* 'showstatuslinks' option to control where/if we show the destination of
|
||||
a hovered link
|
||||
* [c]:version![c] shows Firefox version page
|
||||
* hovered links appear in the command line again, not statusbar
|
||||
* [c]:help[c] now opens in the current tab even for XHTML pages like "about:"
|
||||
* hints work on xhtml pages now (you need to reset the 'hinttags' and
|
||||
'extendedhinttags' settings with [c]:set hinttags&[c] and [c]:set extendedhinttags&[c])
|
||||
* [c]:set option&[c] resets the option to the default value
|
||||
* added [c]:tabonly[c] and [c]:tabrewind[c] and [c]:tablast[c] commands and some futher aliases [c]:tabNext[c], etc. (by Doug Kearns)
|
||||
* added vimparator.vim for .pentadactylrc syntax highlighting in the XPI (by Doug Kearns)
|
||||
* Added keyword support for bookmarks to the [c]:[tab]open[c] commands
|
||||
* many small bug fixes and enhancements
|
||||
|
||||
2007-05-02:
|
||||
* version 0.4.1
|
||||
* Fixed bug that [c]:open google.com/mail[c] opened ".com/mail" in google search
|
||||
* made [m]<Tab>[m], [m]<Up>[m], [m]<Down>[m] etc. perform the default action, so menus kinda
|
||||
work, and it doesn't beep anymore on tab.
|
||||
* added 'defsearch' setting for setting default search engine
|
||||
|
||||
2007-05-01:
|
||||
* version 0.4
|
||||
* extension GUID was changed to \'pentadactyl@mozdev.net' -> YOU WILL HAVE
|
||||
TO UNINSTALL ANY OLD PENTADACTYL INSTALLATION BEFORE INSTALLING THIS VERSION
|
||||
* support for internal search engines was dropped. Now we use Firefox search engines.
|
||||
* support for 'wildmode' completion setting with support for matching the
|
||||
longest common substring. Also new 'wildoptions' setting.
|
||||
* added "f" to the 'complete' option to allow listing of filenames in [c]:open[c] prompt
|
||||
* changed regex search to normal text search for completion -> massive speedup, but limited functionality
|
||||
* support for [c]:open ./[c] , [c]:open ..[c] and [c]:open ...[c] (patch from Lee Hinman)
|
||||
[m]gu[m] and [m]<BS>[m] goes up a directory component, [m]gU[m] and [m]<C-BS>[m] to the root directory
|
||||
* [m]<Esc>[m] now doesn't stop loading the webpage, use [m]<C-c>[m] instead, [c]:stop [c]command added
|
||||
* changed 'hinttags' to work with dict.leo.org and hintstyle to work with digg.com
|
||||
* [c]:back![c] goes to beginning of history now
|
||||
* disabled Firefox 3.0 support for now, as there are just too many small
|
||||
bugs
|
||||
* new Makefile instead of build.sh (only important for developers)
|
||||
* newly designed help page
|
||||
* [c]:help section[c] supported, [c]:help :set[c] will show help for the [c]:set[c] command
|
||||
(patch from Viktor Kojouharov)
|
||||
* [c]:source[c] support, and auto-sourcing ~/.pentadactylrc on startup
|
||||
* [c]:javascript <<EOF[c] support to execute multiline JavaScript code
|
||||
also changed [c]:exec[c] to behave more Vim like
|
||||
* fixed saving of session
|
||||
* fixed hints display when zooming in/out of a web page
|
||||
* added [m]B[m] command for continous buffer display
|
||||
* changed 'hintsize' to 12px by default
|
||||
* 'previewheight' setting to set the maximum size for the preview window
|
||||
* showmode setting which shows the current mode in the command line (patch from Виктор Кожухаров)
|
||||
* [m]gh[m] goes home :) [m]gH[m] in a new tab
|
||||
* [c]:open![c] bypasses cache
|
||||
* [c]:buffer[c] and [c]:buffers[c] support (patch from Lars Kindler)
|
||||
* added [c]:edit[c], [c]:e[c] and [c]:tabedit[c] aliases for [c]:open[c], [c]:tabopen[c]
|
||||
* settings can now be changed with += and -= like in Vim (patch from Виктор Кожухаров)
|
||||
* Support for [m]<Space>[m]/[m]<S-Space>[m]/[m]<A-Left>[m]/[m]<A-Right>[m] keys without beeping
|
||||
* [c]:open[c] without argument reloads current page, [c]:tabopen[c] opens an empty tab
|
||||
* added [m]n[m] and [m]N[m] to repeat a search
|
||||
* many small bug fixes
|
||||
|
||||
2007-04-17:
|
||||
* version 0.3
|
||||
* added [m]<C-v>[m] support to pass one key to Firefox (patch by Muthu Kannan)
|
||||
* also [m]I[m] will go to "ignorekeys" mode until [m]<Esc>[m] is pressed, presenting a workaround
|
||||
for many JavaScript form fields like GMail, until something better comes along
|
||||
* Pentadactyl can now be automatically updated in the [c]:addons[c] screen like other extensions
|
||||
* fixed [c]:tabnext[c]/[c]:tabprevious[c] commands
|
||||
* documented "s" and "b" 'guioptions' flags for statusbar/bookmark bar
|
||||
* implemented the possibility to use [m]<C-[>[m] as an alternative to [m]<Esc>[m], to leave the command line
|
||||
* added [m]<C-Tab>[m] and [m]<C-S-Tab>[m] support for switching tabs without beeping
|
||||
* ability to use shift and ctrl with special keys like [m]<F1>[m] in mappings
|
||||
* small documentation and other fixes
|
||||
|
||||
2007-04-11:
|
||||
* version 0.2
|
||||
* first public release
|
||||
|
||||
// vim: set filetype=asciidoc:
|
||||
104
pentadactyl/TODO
Normal file
104
pentadactyl/TODO
Normal file
@@ -0,0 +1,104 @@
|
||||
Priority list:
|
||||
1-9 as in Vim (9 = required for next release, 5 = would be nice, 1 = probably not)
|
||||
|
||||
ARCHITECTURE:
|
||||
- decide on how to document Arrays in our jsdoc(ish) documentation. Host docs
|
||||
on the website - is there even a documentation tool that can parse our source
|
||||
sensibly?
|
||||
|
||||
There are a few that can, to some extent. We more or less follow the
|
||||
ScriptDoc standard, and we're very close to a few other standards.
|
||||
Unfortunately, nearly all of the parsers are lacking in some way, bloated to
|
||||
hell, and/or lack support for JS 1.8. --Kris
|
||||
|
||||
REFACTORING:
|
||||
- remove unnecessary usage of "self"
|
||||
|
||||
BUGS:
|
||||
- Class#closure seems to be throwing [Exception... "Could not convert
|
||||
JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"]
|
||||
in as yet underdetermined circumstances.
|
||||
- add window resize support to hints
|
||||
- searching backwards incrementally does not work i.e. with 'incsearch' set
|
||||
- insert abbreviations broken on <space>
|
||||
- :sidebar improvements (:sidebar! Downloads while downloads is open should refocus the sidebar)
|
||||
- ;s saves the page rather than the image
|
||||
- RC file is sourced once per window
|
||||
- :undo seems to be effected by the tabstrip state
|
||||
- the :help version-information page is no longer generated
|
||||
|
||||
(recent CVS regressions):
|
||||
- visual caret mode is broken, requires a manual page focus first anyway or
|
||||
else it chucks, I haven't investigated --djk
|
||||
- messages is still broken in several ways - needs testing.
|
||||
=> :ls | :echomsg "Foobar" doesn't add "Foobar" to the already open MOW.
|
||||
(NOTE: an intentional design decision by MS - Boo!)
|
||||
=> it often overwrites the open command line while editing etc.
|
||||
- <tags> and <keyword> autocmd 'keywords' are not available when adding a
|
||||
bookmark - they're being set after the observer triggers the autocmd event.
|
||||
- :messages is _very_ slow for message history of several thousand lines ->
|
||||
Unresponsive Script: util.js:79 (sometimes xmlToDom() and elsewhere)
|
||||
- The MOW shouldn't close when executing hints and ;F isn't working.
|
||||
|
||||
FEATURES:
|
||||
8 Document Textarea, Caret and Visual modes.
|
||||
8 Replace config.name tests in dactyl with more specific feature
|
||||
tests or overridable APIs where at all feasible.
|
||||
8 change the extension ID to pentadactyl@vimperator.org rather than
|
||||
pentadactyl@mozdev.org
|
||||
8 finish :help TODOs
|
||||
8 fix local options
|
||||
8 adaptive timeout for auto-completions, :set completions can be updated more often than
|
||||
:open foo
|
||||
8 use the storage module for autocommands
|
||||
8 support 'activate' in buffer.followLink?
|
||||
Leave this to the bookmarks.tabs.loadInBackground. Hint activation
|
||||
should be nearly equivalent to the corresponding mouse motion, and that
|
||||
mouse movement would be governed by the FF pref. However, :tabopen is
|
||||
something Vimp specific, and so it needs a specific setting (i.e.,
|
||||
activate). OTOH, I think it would be better if ";t" *always* opens a
|
||||
new foreground tab and ";b" *always* opensa new background tab. So "F"
|
||||
should be the only hint mode that changes based on loadInBackground.
|
||||
--Ted
|
||||
8 add support for filename special characters such as %
|
||||
8 :redir and 'verbosefile'
|
||||
8 middleclick in content == p, and if command line is open, paste there the clipboard buffer
|
||||
8 all search commands should start searching from the top of the visible viewport
|
||||
8 allow for multiple ex commands separated with | (see #24)
|
||||
8 <C-o>/<C-i> should work as in vim (i.e., save page positions as well as
|
||||
locations in the history list).
|
||||
8 jump to the next heading with ]h, next image ]i, previous textbox [t and so on
|
||||
8 pipe selected text/link/website to an external command
|
||||
7 use ctrl-n/p in insert mode for word completion
|
||||
7 implement QuickFix window based on ItemList
|
||||
7 wherever possible: get rid of dialogs and ask console-like dialog questions
|
||||
or write error prompts directly on the webpage or with :echo()
|
||||
7 [d could go to the last domain in the history stack. So if I browse from
|
||||
google to another page and click 10 links there, [d would take me back to the google page
|
||||
opera's fast forward does something like this
|
||||
7 make an option to disable session saving by default when you close Firefox
|
||||
7 The output of the pageinfo-command should contain the security-information of ssl-encrypted sites
|
||||
7 :grep support (needs location list)
|
||||
6 :mksession
|
||||
6 add [count] support to :b* and :tab* commands where missing
|
||||
6 registers
|
||||
Here, unlike Vim, y and "*y would be equivalent. That is, the pasteboard would
|
||||
always be the default register. --Ted
|
||||
6 check/correct spellings in insert mode with some mappings
|
||||
6 add more autocommands (TabClose, TabOpen, TabChanged etc)
|
||||
6 Use ctrl-w+j/k/w to switch between sidebar, content, preview window
|
||||
6 Command :tags for getting a list of used tags
|
||||
6 ;?<hint> should show more information
|
||||
6 Add information to dactyl/HACKING file about testing and optimization
|
||||
5 when looking at a zoomed out image (because it's large), zi should zoom in
|
||||
maybe with this? : http://mxr.mozilla.org/seamonkey/source/content/html/document/public/nsIImageDocument.idl
|
||||
5 make a command to search within google search results
|
||||
(http://gadelkareem.com/2007/01/28/using-google-ajax-api-as-an-array/)
|
||||
maybe impossible, needs a per-site key from google
|
||||
4 } { should jump to the next paragraph of the page
|
||||
3 A format for 'guitablabel' and 'statusline'
|
||||
3 add a command-line window (:help cmdline-window in Vim).
|
||||
3 Splitting Windows with [:sp :vsp ctrl-w,s ctrl-w,v] and closing with [ctrl-w,q], moving with [ctrl-w,w or tab]
|
||||
have a look into the split browser extension
|
||||
1 Reformat dactyl/HACKING so that git diff can find sections and report changes @ somewhere
|
||||
|
||||
28
pentadactyl/chrome.manifest
Normal file
28
pentadactyl/chrome.manifest
Normal file
@@ -0,0 +1,28 @@
|
||||
# Firefox
|
||||
content pentadactyl content/
|
||||
skin pentadactyl classic/1.0 skin/
|
||||
locale pentadactyl en-US locale/en-US/
|
||||
locale dactyl en-US ../common/locale/en-US/
|
||||
|
||||
content dactyl ../common/content/
|
||||
resource dactyl ../common/modules/
|
||||
skin dactyl classic/1.0 ../common/skin/
|
||||
|
||||
override chrome://dactyl/content/dactyl.dtd chrome://pentadactyl/content/dactyl.dtd
|
||||
override chrome://dactyl/content/config.js chrome://pentadactyl/content/config.js
|
||||
|
||||
overlay chrome://browser/content/browser.xul chrome://dactyl/content/dactyl.xul
|
||||
overlay chrome://browser/content/browser.xul chrome://pentadactyl/content/pentadactyl.xul
|
||||
|
||||
component {81495d80-89ee-4c36-a88d-ea7c4e5ac63f} components/about-handler.js
|
||||
contract @mozilla.org/network/protocol/about;1?what=pentadactyl {81495d80-89ee-4c36-a88d-ea7c4e5ac63f}
|
||||
|
||||
component {16dc34f7-6d22-4aa4-a67f-2921fb5dcb69} components/commandline-handler.js
|
||||
contract @mozilla.org/commandlinehandler/general-startup;1?type=pentadactyl {16dc34f7-6d22-4aa4-a67f-2921fb5dcb69}
|
||||
category command-line-handler m-pentadactyl @mozilla.org/commandlinehandler/general-startup;1?type=pentadactyl
|
||||
|
||||
component {c1b67a07-18f7-4e13-b361-2edcc35a5a0d} components/protocols.js
|
||||
contract @mozilla.org/network/protocol;1?name=chrome-data {c1b67a07-18f7-4e13-b361-2edcc35a5a0d}
|
||||
component {9c8f2530-51c8-4d41-b356-319e0b155c44} components/protocols.js
|
||||
contract @mozilla.org/network/protocol;1?name=dactyl {9c8f2530-51c8-4d41-b356-319e0b155c44}
|
||||
|
||||
47
pentadactyl/components/about-handler.js
Normal file
47
pentadactyl/components/about-handler.js
Normal file
@@ -0,0 +1,47 @@
|
||||
// Header:
|
||||
"use strict";
|
||||
const Name = "Pentadactyl";
|
||||
/*
|
||||
* We can't load our modules here, so the following code is sadly
|
||||
* duplicated: .w !sh
|
||||
vimdiff ../../*'/components/about-handler.js'
|
||||
*/
|
||||
|
||||
// Copyright (c) 2009 by Doug Kearns
|
||||
//
|
||||
// This work is licensed for reuse under an MIT license. Details are
|
||||
// given in the LICENSE.txt file included with this file.
|
||||
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
|
||||
const name = Name.toLowerCase();
|
||||
function AboutHandler() {}
|
||||
AboutHandler.prototype = {
|
||||
|
||||
classDescription: "About " + Name + " Page",
|
||||
|
||||
classID: Components.ID("81495d80-89ee-4c36-a88d-ea7c4e5ac63f"),
|
||||
|
||||
contractID: "@mozilla.org/network/protocol/about;1?what=" + name,
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]),
|
||||
|
||||
newChannel: function (uri) {
|
||||
let channel = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService)
|
||||
.newChannel("chrome://" + name + "/content/about.html", null, null);
|
||||
channel.originalURI = uri;
|
||||
return channel;
|
||||
},
|
||||
|
||||
getURIFlags: function (uri) Ci.nsIAboutModule.ALLOW_SCRIPT,
|
||||
};
|
||||
|
||||
if (XPCOMUtils.generateNSGetFactory)
|
||||
const NSGetFactory = XPCOMUtils.generateNSGetFactory([AboutHandler]);
|
||||
else
|
||||
const NSGetModule = XPCOMUtils.generateNSGetModule([AboutHandler]);
|
||||
|
||||
// vim: set fdm=marker sw=4 ts=4 et:
|
||||
52
pentadactyl/components/commandline-handler.js
Normal file
52
pentadactyl/components/commandline-handler.js
Normal file
@@ -0,0 +1,52 @@
|
||||
// Header:
|
||||
"use strict";
|
||||
const Name = "Pentadactyl";
|
||||
/*
|
||||
* We can't load our modules here, so the following code is sadly
|
||||
* duplicated: .w !sh
|
||||
vimdiff ../../*'/components/commandline-handler.js'
|
||||
*/
|
||||
|
||||
// Copyright (c) 2009 by Doug Kearns
|
||||
//
|
||||
// This work is licensed for reuse under an MIT license. Details are
|
||||
// given in the LICENSE.txt file included with this file.
|
||||
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
const name = Name.toLowerCase();
|
||||
function CommandLineHandler() {
|
||||
this.wrappedJSObject = this;
|
||||
}
|
||||
CommandLineHandler.prototype = {
|
||||
|
||||
classDescription: Name + " Command-line Handler",
|
||||
|
||||
classID: Components.ID("{16dc34f7-6d22-4aa4-a67f-2921fb5dcb69}"),
|
||||
|
||||
contractID: "@mozilla.org/commandlinehandler/general-startup;1?type=" + name,
|
||||
|
||||
_xpcom_categories: [{
|
||||
category: "command-line-handler",
|
||||
entry: "m-" + name
|
||||
}],
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsICommandLineHandler]),
|
||||
|
||||
handle: function (commandLine) {
|
||||
// TODO: handle remote launches differently?
|
||||
try {
|
||||
this.optionValue = commandLine.handleFlagWithParam(name, false);
|
||||
}
|
||||
catch (e) {
|
||||
dump(name + ": option '-" + name + "' requires an argument\n");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (XPCOMUtils.generateNSGetFactory)
|
||||
const NSGetFactory = XPCOMUtils.generateNSGetFactory([CommandLineHandler]);
|
||||
else
|
||||
const NSGetModule = XPCOMUtils.generateNSGetModule([CommandLineHandler]);
|
||||
|
||||
// vim: set ft=javascript fdm=marker sw=4 ts=4 et:
|
||||
1
pentadactyl/components/protocols.js
Symbolic link
1
pentadactyl/components/protocols.js
Symbolic link
@@ -0,0 +1 @@
|
||||
../../common/components/protocols.js
|
||||
34
pentadactyl/content/about.html
Normal file
34
pentadactyl/content/about.html
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>About:Pentadactyl</title>
|
||||
<link rel="stylesheet" href="chrome://pentadactyl/skin/about.css" type="text/css" />
|
||||
<link rel="icon" href="chrome://pentadactyl/skin/icon.png" type="image/png" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="main-container">
|
||||
<div id="img-container">
|
||||
<div id="text-container">
|
||||
<div style="text-align: center;">
|
||||
<img src="chrome://pentadactyl/content/logo.png" alt="Pentadactyl" />
|
||||
version ###VERSION###
|
||||
by Martin Stubenschrott et al.
|
||||
Pentadactyl is open source and freely distributable
|
||||
|
||||
Sponsor Pentadactyl development!</div><div style="padding-left: 5em;">type :help sponsor<<span class="key">Enter</span>> for information
|
||||
|
||||
type :q<<span class="key">Enter</span>> to exit
|
||||
type :help<<span class="key">Enter</span>> or <<span class="key">F1</span>> for on-line help
|
||||
type :help version-2.1<<span class="key">Enter</span>> for version info
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!-- vim: set fdm=marker sw=4 ts=4 et: -->
|
||||
BIN
pentadactyl/content/about_background.png
Normal file
BIN
pentadactyl/content/about_background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 221 KiB |
302
pentadactyl/content/config.js
Normal file
302
pentadactyl/content/config.js
Normal file
@@ -0,0 +1,302 @@
|
||||
// Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
|
||||
// Copyright (c) 2007-2009 by Doug Kearns <dougkearns@gmail.com>
|
||||
// Copyright (c) 2008-2009 by Kris Maglione <maglione.k at Gmail>
|
||||
//
|
||||
// This work is licensed for reuse under an MIT license. Details are
|
||||
// given in the LICENSE.txt file included with this file.
|
||||
|
||||
const Config = Module("config", ConfigBase, {
|
||||
init: function () {
|
||||
},
|
||||
|
||||
/*** required options, no checks done if they really exist, so be careful ***/
|
||||
name: "Pentadactyl",
|
||||
hostApplication: "Firefox",
|
||||
|
||||
/*** optional options, there are checked for existence and a fallback provided ***/
|
||||
features: ["bookmarks", "hints", "history", "marks", "quickmarks", "sanitizer", "session", "tabs", "tabs_undo", "windows"],
|
||||
defaults: {
|
||||
complete: "slf",
|
||||
guioptions: "rb",
|
||||
showtabline: 2,
|
||||
titlestring: "Pentadactyl"
|
||||
},
|
||||
|
||||
guioptions: {
|
||||
m: ["Menubar", ["toolbar-menubar"]],
|
||||
T: ["Toolbar", ["nav-bar"]],
|
||||
B: ["Bookmark bar", ["PersonalToolbar"]]
|
||||
},
|
||||
|
||||
get visualbellWindow() getBrowser().mPanelContainer,
|
||||
styleableChrome: ["chrome://browser/content/browser.xul"],
|
||||
|
||||
autocommands: [["BookmarkAdd", "Triggered after a page is bookmarked"],
|
||||
["ColorScheme", "Triggered after a color scheme has been loaded"],
|
||||
["DOMLoad", "Triggered when a page's DOM content has fully loaded"],
|
||||
["DownloadPost", "Triggered when a download has completed"],
|
||||
["Fullscreen", "Triggered when the browser's fullscreen state changes"],
|
||||
["LocationChange", "Triggered when changing tabs or when navigation to a new location"],
|
||||
["PageLoadPre", "Triggered after a page load is initiated"],
|
||||
["PageLoad", "Triggered when a page gets (re)loaded/opened"],
|
||||
["PrivateMode", "Triggered when private mode is activated or deactivated"],
|
||||
["Sanitize", "Triggered when a sanitizeable item is cleared"],
|
||||
["ShellCmdPost", "Triggered after executing a shell command with :!cmd"],
|
||||
["PentadactylEnter", "Triggered after Firefox starts"],
|
||||
["PentadactylLeavePre","Triggered before exiting Firefox, just before destroying each module"],
|
||||
["PentadactylLeave", "Triggered before exiting Firefox"]],
|
||||
|
||||
dialogs: {
|
||||
about: ["About Firefox",
|
||||
function () { window.openDialog("chrome://browser/content/aboutDialog.xul", "_blank", "chrome,dialog,modal,centerscreen"); }],
|
||||
addbookmark: ["Add bookmark for the current page",
|
||||
function () { PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksRootId); }],
|
||||
addons: ["Manage Add-ons",
|
||||
function () { window.BrowserOpenAddonsMgr(); }],
|
||||
bookmarks: ["List your bookmarks",
|
||||
function () { window.openDialog("chrome://browser/content/bookmarks/bookmarksPanel.xul", "Bookmarks", "dialog,centerscreen,width=600,height=600"); }],
|
||||
checkupdates: ["Check for updates",
|
||||
function () { window.checkForUpdates(); }],
|
||||
cleardata: ["Clear private data",
|
||||
function () { Cc[GLUE_CID].getService(Ci.nsIBrowserGlue).sanitize(window || null); }],
|
||||
cookies: ["List your cookies",
|
||||
function () { window.toOpenWindowByType("Browser:Cookies", "chrome://browser/content/preferences/cookies.xul", "chrome,dialog=no,resizable"); }],
|
||||
console: ["JavaScript console",
|
||||
function () { window.toJavaScriptConsole(); }],
|
||||
customizetoolbar: ["Customize the Toolbar",
|
||||
function () { window.BrowserCustomizeToolbar(); }],
|
||||
dominspector: ["DOM Inspector",
|
||||
function () { try { window.inspectDOMDocument(content.document); } catch (e) { dactyl.echoerr("DOM Inspector extension not installed"); } }],
|
||||
downloads: ["Manage Downloads",
|
||||
function () { window.toOpenWindowByType("Download:Manager", "chrome://mozapps/content/downloads/downloads.xul", "chrome,dialog=no,resizable"); }],
|
||||
history: ["List your history",
|
||||
function () { window.openDialog("chrome://browser/content/history/history-panel.xul", "History", "dialog,centerscreen,width=600,height=600"); }],
|
||||
import: ["Import Preferences, Bookmarks, History, etc. from other browsers",
|
||||
function () { window.BrowserImport(); }],
|
||||
openfile: ["Open the file selector dialog",
|
||||
function () { window.BrowserOpenFileWindow(); }],
|
||||
pageinfo: ["Show information about the current page",
|
||||
function () { window.BrowserPageInfo(); }],
|
||||
pagesource: ["View page source",
|
||||
function () { window.BrowserViewSourceOfDocument(content.document); }],
|
||||
places: ["Places Organizer: Manage your bookmarks and history",
|
||||
function () { PlacesCommandHook.showPlacesOrganizer(ORGANIZER_ROOT_BOOKMARKS); }],
|
||||
preferences: ["Show Firefox preferences dialog",
|
||||
function () { window.openPreferences(); }],
|
||||
printpreview: ["Preview the page before printing",
|
||||
function () { PrintUtils.printPreview(onEnterPrintPreview, onExitPrintPreview); }],
|
||||
printsetup: ["Setup the page size and orientation before printing",
|
||||
function () { PrintUtils.showPageSetup(); }],
|
||||
print: ["Show print dialog",
|
||||
function () { PrintUtils.print(); }],
|
||||
saveframe: ["Save frame to disk",
|
||||
function () { window.saveFrameDocument(); }],
|
||||
savepage: ["Save page to disk",
|
||||
function () { window.saveDocument(window.content.document); }],
|
||||
searchengines: ["Manage installed search engines",
|
||||
function () { window.openDialog("chrome://browser/content/search/engineManager.xul", "_blank", "chrome,dialog,modal,centerscreen"); }],
|
||||
selectionsource: ["View selection source",
|
||||
function () { buffer.viewSelectionSource(); }]
|
||||
},
|
||||
|
||||
hasTabbrowser: true,
|
||||
|
||||
ignoreKeys: {},
|
||||
|
||||
scripts: [
|
||||
"browser.js",
|
||||
"bookmarks.js",
|
||||
"history.js",
|
||||
"quickmarks.js",
|
||||
"sanitizer.js",
|
||||
"tabs.js"
|
||||
],
|
||||
|
||||
get tempFile() {
|
||||
let prefix = this.name.toLowerCase();
|
||||
|
||||
try {
|
||||
prefix += "-" + window.content.document.location.hostname;
|
||||
}
|
||||
catch (e) {}
|
||||
|
||||
return prefix + ".tmp";
|
||||
}
|
||||
}, {
|
||||
}, {
|
||||
commands: function () {
|
||||
commands.add(["winon[ly]"],
|
||||
"Close all other windows",
|
||||
function () {
|
||||
dactyl.windows.forEach(function (win) {
|
||||
if (win != window)
|
||||
win.close();
|
||||
});
|
||||
},
|
||||
{ argCount: "0" });
|
||||
|
||||
commands.add(["pref[erences]", "prefs"],
|
||||
"Show " + config.hostApplication + " preferences",
|
||||
function (args) {
|
||||
if (args.bang) { // open Firefox settings GUI dialog
|
||||
dactyl.open("about:config",
|
||||
(options["newtab"] && options.get("newtab").has("all", "prefs"))
|
||||
? dactyl.NEW_TAB : dactyl.CURRENT_TAB);
|
||||
}
|
||||
else
|
||||
window.openPreferences();
|
||||
},
|
||||
{
|
||||
argCount: "0",
|
||||
bang: true
|
||||
});
|
||||
|
||||
commands.add(["sbcl[ose]"],
|
||||
"Close the sidebar window",
|
||||
function () {
|
||||
if (!document.getElementById("sidebar-box").hidden)
|
||||
window.toggleSidebar();
|
||||
},
|
||||
{ argCount: "0" });
|
||||
|
||||
commands.add(["sideb[ar]", "sb[ar]", "sbope[n]"],
|
||||
"Open the sidebar window",
|
||||
function (args) {
|
||||
let arg = args.literalArg;
|
||||
function compare(a, b) util.compareIgnoreCase(a, b) == 0
|
||||
|
||||
// focus if the requested sidebar is already open
|
||||
if (compare(document.getElementById("sidebar-title").value, arg)) {
|
||||
document.getElementById("sidebar-box").focus();
|
||||
return;
|
||||
}
|
||||
|
||||
let menu = document.getElementById("viewSidebarMenu");
|
||||
|
||||
for (let [, panel] in Iterator(menu.childNodes)) {
|
||||
if (compare(panel.label, arg)) {
|
||||
panel.doCommand();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dactyl.echoerr("No sidebar " + arg + " found");
|
||||
},
|
||||
{
|
||||
argCount: "1",
|
||||
completer: function (context) {
|
||||
context.ignoreCase = true;
|
||||
return completion.sidebar(context);
|
||||
},
|
||||
literal: 0
|
||||
});
|
||||
|
||||
commands.add(["wind[ow]"],
|
||||
"Execute a command and tell it to output in a new window",
|
||||
function (args) {
|
||||
dactyl.forceNewWindow = true;
|
||||
dactyl.execute(args.string, null, true);
|
||||
dactyl.forceNewWindow = false;
|
||||
},
|
||||
{
|
||||
argCount: "+",
|
||||
completer: function (context) completion.ex(context),
|
||||
literal: 0
|
||||
});
|
||||
|
||||
commands.add(["winc[lose]", "wc[lose]"],
|
||||
"Close window",
|
||||
function () { window.close(); },
|
||||
{ argCount: "0" });
|
||||
|
||||
commands.add(["wino[pen]", "wo[pen]"],
|
||||
"Open one or more URLs in a new window",
|
||||
function (args) {
|
||||
args = args.string;
|
||||
|
||||
if (args)
|
||||
dactyl.open(args, dactyl.NEW_WINDOW);
|
||||
else
|
||||
dactyl.open("about:blank", dactyl.NEW_WINDOW);
|
||||
},
|
||||
{
|
||||
completer: function (context) completion.url(context),
|
||||
literal: 0,
|
||||
privateData: true
|
||||
});
|
||||
},
|
||||
completion: function () {
|
||||
var searchRunning = false; // only until Firefox fixes https://bugzilla.mozilla.org/show_bug.cgi?id=510589
|
||||
completion.location = function location(context) {
|
||||
if (!services.get("autoCompleteSearch"))
|
||||
return;
|
||||
|
||||
context.anchored = false;
|
||||
context.compare = CompletionContext.Sort.unsorted;
|
||||
context.filterFunc = null;
|
||||
context.hasItems = context.completions.length > 0; // XXX
|
||||
context.incomplete = true;
|
||||
context.keys.icon = 2;
|
||||
context.title = ["Smart Completions"];
|
||||
context.cancel = function () {
|
||||
if (searchRunning) {
|
||||
services.get("autoCompleteSearch").stopSearch();
|
||||
searchRunning = false;
|
||||
}
|
||||
};
|
||||
if (searchRunning)
|
||||
services.get("autoCompleteSearch").stopSearch();
|
||||
let timer = new Timer(50, 100, function (result) {
|
||||
context.incomplete = result.searchResult >= result.RESULT_NOMATCH_ONGOING;
|
||||
context.completions = [
|
||||
[result.getValueAt(i), result.getCommentAt(i), result.getImageAt(i)]
|
||||
for (i in util.range(0, result.matchCount))
|
||||
];
|
||||
});
|
||||
services.get("autoCompleteSearch").startSearch(context.filter, "", context.result, {
|
||||
onSearchResult: function onSearchResult(search, result) {
|
||||
timer.tell(result);
|
||||
if (result.searchResult <= result.RESULT_SUCCESS) {
|
||||
searchRunning = false;
|
||||
timer.flush();
|
||||
}
|
||||
}
|
||||
});
|
||||
searchRunning = true;
|
||||
};
|
||||
|
||||
completion.sidebar = function sidebar(context) {
|
||||
let menu = document.getElementById("viewSidebarMenu");
|
||||
context.title = ["Sidebar Panel"];
|
||||
context.completions = Array.map(menu.childNodes, function (n) [n.label, ""]);
|
||||
};
|
||||
|
||||
completion.addUrlCompleter("l",
|
||||
"Firefox location bar entries (bookmarks and history sorted in an intelligent way)",
|
||||
completion.location);
|
||||
},
|
||||
modes: function () {
|
||||
this.ignoreKeys = {
|
||||
"<Return>": modes.NORMAL | modes.INSERT,
|
||||
"<Space>": modes.NORMAL | modes.INSERT,
|
||||
"<Up>": modes.NORMAL | modes.INSERT,
|
||||
"<Down>": modes.NORMAL | modes.INSERT
|
||||
};
|
||||
},
|
||||
options: function () {
|
||||
options.add(["online"],
|
||||
"Set the 'work offline' option",
|
||||
"boolean", true,
|
||||
{
|
||||
setter: function (value) {
|
||||
const ioService = services.get("io");
|
||||
if (ioService.offline == value)
|
||||
BrowserOffline.toggleOfflineStatus();
|
||||
return value;
|
||||
},
|
||||
getter: function () !services.get("io").offline
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// vim: set fdm=marker sw=4 ts=4 et:
|
||||
13
pentadactyl/content/dactyl.dtd
Normal file
13
pentadactyl/content/dactyl.dtd
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
<!ENTITY % dactylBranding SYSTEM "chrome://branding/locale/brand.dtd">
|
||||
%dactylBranding;
|
||||
|
||||
<!ENTITY dactyl.mainWindow "main-window">
|
||||
<!ENTITY dactyl.name "pentadactyl">
|
||||
<!ENTITY dactyl.idname "PENTADACTYL">
|
||||
<!ENTITY dactyl.appname "Pentadactyl">
|
||||
<!ENTITY dactyl.host "&brandShortName;">
|
||||
<!ENTITY dactyl.hostbin "firefox">
|
||||
<!ENTITY dactyl.statusBefore "statusbar-display">
|
||||
<!ENTITY dactyl.statusAfter "">
|
||||
|
||||
BIN
pentadactyl/content/logo.png
Normal file
BIN
pentadactyl/content/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
88
pentadactyl/content/pentadactyl.svg
Normal file
88
pentadactyl/content/pentadactyl.svg
Normal file
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="162"
|
||||
height="40"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docbase="/home/maxauthority/code/pentadactyl"
|
||||
sodipodi:docname="pentadactyl.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/home/maxauthority/code/pentadactyl/pentadactyl.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 29 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="185 : 29 : 1"
|
||||
inkscape:persp3d-origin="92.5 : 19.333333 : 1"
|
||||
id="perspective2392" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="4.04"
|
||||
inkscape:cx="84.114858"
|
||||
inkscape:cy="55.052209"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
width="185px"
|
||||
height="58px"
|
||||
showgrid="false" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-5.4392018,-9.6624603)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans Mono"
|
||||
x="6.2673268"
|
||||
y="29.896835"
|
||||
id="text2229"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2231"
|
||||
x="6.2673268"
|
||||
y="29.896835">pentadactyl_</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans Mono"
|
||||
x="6.4079518"
|
||||
y="53.183945"
|
||||
id="text2233"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2235"
|
||||
x="6.4079518"
|
||||
y="53.183945">~</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
58
pentadactyl/content/pentadactyl.xul
Normal file
58
pentadactyl/content/pentadactyl.xul
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- ***** BEGIN LICENSE BLOCK ***** {{{
|
||||
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
|
||||
|
||||
This work is licensed for reuse under an MIT license. Details are
|
||||
given in the LICENSE.txt file included with this file.
|
||||
}}} ***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<!-- <?xml-stylesheet href="chrome://browser/skin/" type="text/css"?> -->
|
||||
|
||||
<overlay id="pentadactyl"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:nc="http://home.netscape.com/NC-rdf#"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<menupopup id="viewSidebarMenu">
|
||||
<menuitem observes="pentadactyl-viewAddonsSidebar" label="Add-ons" accesskey="A"/>
|
||||
<menuitem observes="pentadactyl-viewConsoleSidebar" label="Console" accesskey="C"/>
|
||||
<menuitem observes="pentadactyl-viewDownloadsSidebar" label="Downloads" accesskey="D"/>
|
||||
<menuitem observes="pentadactyl-viewPreferencesSidebar" label="Preferences" accesskey="P"/>
|
||||
</menupopup>
|
||||
|
||||
<broadcasterset id="mainBroadcasterSet">
|
||||
<broadcaster id="pentadactyl-viewAddonsSidebar"
|
||||
autoCheck="false"
|
||||
type="checkbox"
|
||||
group="sidebar"
|
||||
sidebarurl="chrome://mozapps/content/extensions/extensions.xul"
|
||||
sidebartitle="Add-ons"
|
||||
oncommand="toggleSidebar('pentadactyl-viewAddonsSidebar');"/>
|
||||
<broadcaster id="pentadactyl-viewConsoleSidebar"
|
||||
autoCheck="false"
|
||||
type="checkbox"
|
||||
group="sidebar"
|
||||
sidebarurl="chrome://global/content/console.xul"
|
||||
sidebartitle="Console"
|
||||
oncommand="toggleSidebar('pentadactyl-viewConsoleSidebar');"/>
|
||||
<broadcaster id="pentadactyl-viewDownloadsSidebar"
|
||||
autoCheck="false"
|
||||
type="checkbox"
|
||||
group="sidebar"
|
||||
sidebarurl="chrome://mozapps/content/downloads/downloads.xul"
|
||||
sidebartitle="Downloads"
|
||||
oncommand="toggleSidebar('pentadactyl-viewDownloadsSidebar');"/>
|
||||
<broadcaster id="pentadactyl-viewPreferencesSidebar"
|
||||
autoCheck="false"
|
||||
type="checkbox"
|
||||
group="sidebar"
|
||||
sidebarurl="about:config"
|
||||
sidebartitle="Preferences"
|
||||
oncommand="toggleSidebar('pentadactyl-viewPreferencesSidebar');"/>
|
||||
</broadcasterset>
|
||||
|
||||
</overlay>
|
||||
|
||||
<!-- vim: set fdm=marker sw=4 ts=4 et: -->
|
||||
9
pentadactyl/contrib/vim/Makefile
Normal file
9
pentadactyl/contrib/vim/Makefile
Normal file
@@ -0,0 +1,9 @@
|
||||
VIMBALL = pentadactyl.vba
|
||||
|
||||
vimball: mkvimball.txt syntax/pentadactyl.vim ftdetect/pentadactyl.vim
|
||||
-echo '%MkVimball! ${VIMBALL} .' | vim -u NORC -N -e -s mkvimball.txt
|
||||
|
||||
all: vimball
|
||||
|
||||
clean:
|
||||
rm -f ${VIMBALL}
|
||||
1
pentadactyl/contrib/vim/ftdetect/pentadactyl.vim
Normal file
1
pentadactyl/contrib/vim/ftdetect/pentadactyl.vim
Normal file
@@ -0,0 +1 @@
|
||||
au BufNewFile,BufRead *pentadactylrc*,*.vimp set filetype=pentadactyl
|
||||
2
pentadactyl/contrib/vim/mkvimball.txt
Normal file
2
pentadactyl/contrib/vim/mkvimball.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
syntax/pentadactyl.vim
|
||||
ftdetect/pentadactyl.vim
|
||||
111
pentadactyl/contrib/vim/syntax/pentadactyl.vim
Normal file
111
pentadactyl/contrib/vim/syntax/pentadactyl.vim
Normal file
@@ -0,0 +1,111 @@
|
||||
" Vim syntax file
|
||||
" Language: Pentadactyl configuration file
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2009 Nov 14
|
||||
|
||||
" TODO: make this pentadactyl specific - shared dactyl config?
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn include @javascriptTop syntax/javascript.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syn include @cssTop syntax/css.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syn match pentadactylCommandStart "\%(^\s*:\=\)\@<=" nextgroup=pentadactylCommand,pentadactylAutoCmd
|
||||
|
||||
syn keyword pentadactylCommand ab[breviate] ab[clear] addo[ns] bN[ext] b[uffer] ba[ck] bd[elete] beep bf[irst] bl[ast] bma[rk]
|
||||
\ bmarks bn[ext] bp[revious] br[ewind] bufd[o] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cd chd[ir] cm[ap] cmapc[lear]
|
||||
\ cno[remap] colo[rscheme] com[mand] comc[lear] cu[nmap] cuna[bbrev] delbm[arks] delc[ommand] delm[arks] delmac[ros]
|
||||
\ delqm[arks] dels[tyle] dia[log] dl do[autocmd] doautoa[ll] downl[oads] ec[ho] echoe[rr] echom[sg] em[enu] exe[cute]
|
||||
\ exta[dd] extd[isable] extde[lete] exte[nable] extens[ions] exto[ptions] extp[references] exu[sage] files fini[sh] fo[rward]
|
||||
\ frameo[nly] fw h[elp] helpa[ll] ha[rdcopy] hi[ghlight] hist[ory] hs ia[bbrev] iabc[lear] im[ap] imapc[lear] ino[remap]
|
||||
\ iu[nmap] iuna[bbrev] javas[cript] js ju[mps] keepa[lt] let loadplugins lpl ls ma[rk] macros map mapc[lear] marks mes[sages]
|
||||
\ messc[lear] mkv[imperatorrc] nm[ap] nmapc[lear] nno[remap] no[remap] noh[lsearch] norm[al] nu[nmap] o[pen] optionu[sage]
|
||||
\ pa[geinfo] pagest[yle] pas pl[ay] pref[erences] prefs pw[d] q[uit] qa[ll] qma[rk] qmarks quita[ll] re[draw] re[load]
|
||||
\ reloada[ll] res[tart] run runt[ime] sa[nitize] sav[eas] sb[ar] sb[open] sbcl[ose] scrip[tnames] se[t] setg[lobal] setl[ocal]
|
||||
\ sideb[ar] sil[ent] so[urce] st[op] stopa[ll] sty[le] styd[isable] styled[isable] stye[nable] stylee[nable] styt[oggle]
|
||||
\ stylet[oggle] tN[ext] t[open] tab taba[ttach] tabN[ext] tabc[lose] tabd[o] tabde[tach] tabdu[plicate] tabfir[st] tabl[ast]
|
||||
\ tabm[ove] tabn[ext] tabnew tabo[nly] tabopen tabp[revious] tabr[ewind] tabs tbh[ide] tbs[how] tbt[oggle] time tn[ext]
|
||||
\ toolbarh[ide] toolbars[how] toolbart[oggle] tp[revious] u[ndo] una[bbreviate] undoa[ll] unl[et] unm[ap] verb[ose] ve[rsion]
|
||||
\ vie[wsource] viu[sage] vm[ap] vmap[clear] vno[remap] vu[nmap] w[rite] wc[lose] win[open] winc[lose] wind[ow] winon[ly]
|
||||
\ wo[pen] wq wqa[ll] xa[ll] zo[om]
|
||||
\ contained
|
||||
|
||||
syn match pentadactylCommand "!" contained
|
||||
|
||||
syn keyword pentadactylAutoCmd au[tocmd] contained nextgroup=pentadactylAutoEventList skipwhite
|
||||
|
||||
syn keyword pentadactylAutoEvent BookmarkAdd ColorSheme DOMLoad DownloadPost Fullscreen LocationChange PageLoadPre PageLoad
|
||||
\ PrivateMode Sanitize ShellCmdPost VimperatorEnter VimperatorLeavePre VimperatorLeave
|
||||
\ contained
|
||||
|
||||
syn match pentadactylAutoEventList "\(\a\+,\)*\a\+" contained contains=pentadactylAutoEvent
|
||||
|
||||
syn region pentadactylSet matchgroup=pentadactylCommand start="\%(^\s*:\=\)\@<=\<\%(setl\%[ocal]\|setg\%[lobal]\|set\=\)\=\>"
|
||||
\ end="$" keepend oneline contains=pentadactylOption,pentadactylString
|
||||
|
||||
syn keyword pentadactylOption act activate cd cdpath complete cpt defsearch ds editor eht ei enc encoding eventignore
|
||||
\ extendedhinttags fenc fileencoding fh followhints go guioptions helpfile hf hi hin hintinputs hintmatching hinttags
|
||||
\ hinttimeout history hm ht hto laststatus ls maxitems messages msgs newtab nextpattern pa pageinfo popups pps previouspattern
|
||||
\ rtp runtimepath si sanitizeitems sts sanitizetimespan scr scroll sh shcf shell shellcmdflag showstatuslinks showtabline ssli
|
||||
\ stal suggestengines titlestring urlseparator vbs verbose wic wig wildcase wildignore wildmode wildoptions wim wop
|
||||
\ wordseparators wsp
|
||||
\ contained nextgroup=pentadactylSetMod
|
||||
|
||||
" toggle options
|
||||
syn match pentadactylOption "\<\%(no\|inv\)\=\%(errorbells\|eb\|exrc\|ex\|focuscontent\|fc\|fullscreen\|fs\|ignorecase\|ic\)\>!\="
|
||||
\ contained nextgroup=pentadactylSetMod
|
||||
syn match pentadactylOption "\<\%(no\|inv\)\=\%(incsearch\|is\|insertmode\|im\|hlsearch\|hls\|linksearch\|lks\)\>!\="
|
||||
\ contained nextgroup=pentadactylSetMod
|
||||
syn match pentadactylOption "\<\%(no\|inv\)\=\%(loadplugins\|lpl\|more\|online\|private\|showmode\|smd\|smartcase\|scs\)\>!\="
|
||||
\ contained nextgroup=pentadactylSetMod
|
||||
syn match pentadactylOption "\<\%(no\|inv\)\=\%(online\|visualbell\|vb\|usermode\|um\)\>!\="
|
||||
\ contained nextgroup=pentadactylSetMod
|
||||
|
||||
syn match pentadactylSetMod "\%(\<[a-z_]\+\)\@<=&" contained
|
||||
|
||||
syn region pentadactylJavaScript start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=" end="$" contains=@javascriptTop keepend oneline
|
||||
syn region pentadactylJavaScript matchgroup=pentadactylJavascriptDelimiter
|
||||
\ start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@javascriptTop fold
|
||||
|
||||
let s:cssRegionStart = '\%(^\s*sty\%[le]!\=\s\+\%(-\%(n\|name\)\%(\s\+\|=\)\S\+\s\+\)\=[^-]\S\+\s\+\)\@<='
|
||||
execute 'syn region pentadactylCss start="' . s:cssRegionStart . '" end="$" contains=@cssTop keepend oneline'
|
||||
execute 'syn region pentadactylCss matchgroup=pentadactylCssDelimiter'
|
||||
\ 'start="' . s:cssRegionStart . '<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@cssTop fold'
|
||||
|
||||
syn match pentadactylNotation "<[0-9A-Za-z-]\+>"
|
||||
|
||||
syn match pentadactylComment +".*$+ contains=pentadactylTodo,@Spell
|
||||
syn keyword pentadactylTodo FIXME NOTE TODO XXX contained
|
||||
|
||||
syn region pentadactylString start="\z(["']\)" end="\z1" skip="\\\\\|\\\z1" oneline
|
||||
|
||||
syn match pentadactylLineComment +^\s*".*$+ contains=pentadactylTodo,@Spell
|
||||
|
||||
" NOTE: match vim.vim highlighting group names
|
||||
hi def link pentadactylAutoCmd pentadactylCommand
|
||||
hi def link pentadactylAutoEvent Type
|
||||
hi def link pentadactylCommand Statement
|
||||
hi def link pentadactylComment Comment
|
||||
hi def link pentadactylJavascriptDelimiter Delimiter
|
||||
hi def link pentadactylCssDelimiter Delimiter
|
||||
hi def link pentadactylNotation Special
|
||||
hi def link pentadactylLineComment Comment
|
||||
hi def link pentadactylOption PreProc
|
||||
hi def link pentadactylSetMod pentadactylOption
|
||||
hi def link pentadactylString String
|
||||
hi def link pentadactylTodo Todo
|
||||
|
||||
let b:current_syntax = "pentadactyl"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: tw=130 et ts=4 sw=4:
|
||||
28
pentadactyl/install.rdf
Normal file
28
pentadactyl/install.rdf
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0"?>
|
||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
<Description about="urn:mozilla:install-manifest">
|
||||
<em:id>pentadactyl@dactyl.googlecode.com</em:id>
|
||||
<em:name>Pentadactyl</em:name>
|
||||
<em:version>@VERSION@</em:version>
|
||||
<em:description>Make Firefox behave like Vim</em:description>
|
||||
<em:creator>Kris Maglione</em:creator>
|
||||
<em:homepageURL>http://pentadactyl.sf.net/</em:homepageURL>
|
||||
<em:iconURL>chrome://pentadactyl/skin/icon.png</em:iconURL>
|
||||
<em:optionsURL>chrome://dactyl/content/preferences.xul</em:optionsURL>
|
||||
<em:file>
|
||||
<Description about="urn:mozilla:extension:file:pentadactyl.jar">
|
||||
<em:package>content/dactyl/</em:package>
|
||||
</Description>
|
||||
</em:file>
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
|
||||
<em:minVersion>3.5</em:minVersion>
|
||||
<em:maxVersion>4.0</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
</Description>
|
||||
</RDF>
|
||||
|
||||
<!-- vim: set fdm=marker sw=4 ts=4 et: -->
|
||||
14
pentadactyl/locale/en-US/all.xml
Normal file
14
pentadactyl/locale/en-US/all.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
|
||||
|
||||
<!DOCTYPE overlay SYSTEM "chrome://dactyl/content/dactyl.dtd">
|
||||
|
||||
<overlay
|
||||
xmlns="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<include href="tutorial" tag="tutorial.html" insertafter="intro.html" />
|
||||
|
||||
</overlay>
|
||||
|
||||
<!-- vim:se sts=4 sw=4 et: -->
|
||||
43
pentadactyl/locale/en-US/autocommands.xml
Normal file
43
pentadactyl/locale/en-US/autocommands.xml
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
|
||||
|
||||
<!DOCTYPE overlay SYSTEM "chrome://dactyl/content/dactyl.dtd">
|
||||
|
||||
<overlay
|
||||
xmlns="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<dl tag="autocommand-list" replace="autocommand-list">
|
||||
<dt>BookmarkAdd</dt> <dd>Triggered after a page is bookmarked</dd>
|
||||
<dt>ColorScheme</dt> <dd>Triggered after a color scheme has been loaded</dd>
|
||||
<dt>DOMLoad</dt> <dd>Triggered when a page's DOM content has fully loaded</dd>
|
||||
<dt>DownloadPost</dt> <dd>Triggered when a download has completed</dd>
|
||||
<dt>Fullscreen</dt> <dd>Triggered when the browser's fullscreen state changes</dd>
|
||||
<dt>LocationChange</dt> <dd>Triggered when changing tabs or when navigating to a new location</dd>
|
||||
<dt>PageLoadPre</dt> <dd>Triggered after a page load is initiated</dd>
|
||||
<dt>PageLoad</dt> <dd>Triggered when a page gets (re)loaded/opened</dd>
|
||||
<dt>PrivateMode</dt> <dd>Triggered when private mode is activated or deactivated</dd>
|
||||
<dt>Sanitize</dt> <dd>Triggered when privata data are sanitized</dd>
|
||||
<dt>ShellCmdPost</dt> <dd>Triggered after executing a shell command with <ex>:!</ex><a>cmd</a></dd>
|
||||
<dt>&dactyl.appname;Enter</dt> <dd>Triggered after &dactyl.host; starts</dd>
|
||||
<dt>&dactyl.appname;LeavePre</dt><dd>Triggered before exiting &dactyl.host;, just before destroying each module</dd>
|
||||
<dt>&dactyl.appname;Leave</dt> <dd>Triggered before exiting &dactyl.host;</dd>
|
||||
</dl>
|
||||
|
||||
<dl tag="autocommand-args" replace="autocommand-args">
|
||||
<dt><url></dt> <dd>The URL against which the event was selected.</dd>
|
||||
<dt><title></dt> <dd>The page, bookmark or download title.</dd>
|
||||
<dt><doc></dt> <dd>The document for which the event occurred. Only for <em>DOMLoad</em>, <em>PageLoad</em> and <em>PageLoadPre</em>.</dd>
|
||||
<dt><tab></dt> <dd>The tab in which the event occurred. Only for <em>DOMLoad</em>, <em>PageLoad</em> and <em>PageLoadPre</em>.</dd>
|
||||
<dt><tags></dt> <dd>The tags applied to <url>. Only for <em>BookmarkAdd</em>.</dd>
|
||||
<dt><keyword></dt> <dd>The keywords applied to the bookmark. Only for <em>BookmarkAdd</em>.</dd>
|
||||
<dt><icon></dt> <dd>The icon associated with <url>. Only for <em>BookmarkAdd</em>.</dd>
|
||||
<dt><size></dt> <dd>The size of a downloaded file. Only for <em>DownloadPost</em>.</dd>
|
||||
<dt><file></dt> <dd>The target destination of a download. Only for <em>DownloadPost</em>.</dd>
|
||||
<dt><state></dt> <dd>The new state. Only for "Fullscreen" and <em>PrivateMode</em>.</dd>
|
||||
<dt><name></dt> <dd>The name of the item. Only for <em>ColorScheme</em> and <em>Sanitize</em>.</dd>
|
||||
</dl>
|
||||
|
||||
</overlay>
|
||||
|
||||
<!-- vim:se sts=4 sw=4 et: -->
|
||||
4
pentadactyl/locale/en-US/dactyl.dtd
Normal file
4
pentadactyl/locale/en-US/dactyl.dtd
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
<!ENTITY appname "Pentadactyl">
|
||||
<!ENTITY hostapp "Firefox">
|
||||
|
||||
40
pentadactyl/locale/en-US/gui.xml
Normal file
40
pentadactyl/locale/en-US/gui.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
|
||||
|
||||
<!DOCTYPE overlay SYSTEM "chrome://dactyl/content/dactyl.dtd">
|
||||
|
||||
<overlay
|
||||
xmlns="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<dl tag="dialog-list" replace="dialog-list">
|
||||
<dt>about</dt> <dd>About Mozilla &dactyl.host;;</dd>
|
||||
<dt>addbookmark</dt> <dd>Add bookmark for the current page</dd>
|
||||
<dt>addons</dt> <dd>Manage Add-ons</dd>
|
||||
<dt>bookmarks</dt> <dd>List your bookmarks</dd>
|
||||
<dt>checkupdates</dt> <dd>Check for updates</dd>
|
||||
<dt>cleardata</dt> <dd>Clear private data</dd>
|
||||
<dt>cookies</dt> <dd>List your cookies</dd>
|
||||
<dt>console</dt> <dd>JavaScript console</dd>
|
||||
<dt>customizetoolbar</dt><dd>Customize the Toolbar</dd>
|
||||
<dt>dominspector</dt> <dd>DOM Inspector</dd>
|
||||
<dt>downloads</dt> <dd>Manage Downloads</dd>
|
||||
<dt>history</dt> <dd>List your history</dd>
|
||||
<dt>import</dt> <dd>Import Preferences, Bookmarks, History, etc. from other browsers</dd>
|
||||
<dt>openfile</dt> <dd>Open the file selector dialog</dd>
|
||||
<dt>pageinfo</dt> <dd>Show information about the current page</dd>
|
||||
<dt>pagesource</dt> <dd>View page source</dd>
|
||||
<dt>places</dt> <dd>Places Organizer: Manage your bookmarks and history</dd>
|
||||
<dt>preferences</dt> <dd>Show &dactyl.host; preferences dialog</dd>
|
||||
<dt>printpreview</dt> <dd>Preview the page before printing</dd>
|
||||
<dt>printsetup</dt> <dd>Setup the page size and orientation before printing</dd>
|
||||
<dt>print</dt> <dd>Show print dialog</dd>
|
||||
<dt>saveframe</dt> <dd>Save frame to disk</dd>
|
||||
<dt>savepage</dt> <dd>Save page to disk</dd>
|
||||
<dt>searchengines</dt> <dd>Manage installed search engines</dd>
|
||||
<dt>selectionsource</dt> <dd>View selection source</dd>
|
||||
</dl>
|
||||
|
||||
</overlay>
|
||||
|
||||
<!-- vim:se sts=4 sw=4 et: -->
|
||||
203
pentadactyl/locale/en-US/intro.xml
Normal file
203
pentadactyl/locale/en-US/intro.xml
Normal file
@@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
|
||||
|
||||
<!DOCTYPE document SYSTEM "chrome://dactyl/content/dactyl.dtd">
|
||||
|
||||
<document
|
||||
name="intro"
|
||||
title="&dactyl.appname; Introduction"
|
||||
xmlns="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<h1 tag="intro">Introduction</h1>
|
||||
|
||||
<link topic="http://vimperator.org">&dactyl.appname;</link> is a free browser add-on for &dactyl.host;,
|
||||
which makes it look and behave like the
|
||||
<link topic="http://www.vim.org">Vim</link>
|
||||
text editor. It has similar key bindings, and you could call it a modal
|
||||
web browser, as key bindings differ according to which mode you are in.
|
||||
|
||||
<warning tag="warning">
|
||||
To provide the most authentic Vim experience, the &dactyl.host; menubar and toolbar are hidden.
|
||||
</warning>
|
||||
|
||||
<p>If you really need them, type: <ex>:set guioptions+=mT</ex> to get them back.</p>
|
||||
<p>
|
||||
If you don't like &dactyl.appname; at all, you can uninstall it by typing
|
||||
<ex>:extdelete &dactyl.appname;</ex> or <ex>:extdisable &dactyl.appname;</ex> to disable it.
|
||||
</p>
|
||||
<p>
|
||||
If you like it but can't remember the shortcuts, then press
|
||||
<key name="F1"/> or <ex>:help</ex> to get this help window back.
|
||||
</p>
|
||||
|
||||
<tags>author donaton sponsor</tags>
|
||||
<strut/>
|
||||
<p>
|
||||
&dactyl.appname; was initially written by
|
||||
<link topic="mailto:stubenschrott@vimperator.org">Martin
|
||||
Stubenschrott</link> but has found many other
|
||||
<link topic="http://vimperator.org/trac/wiki/&dactyl.appname;/Authors">contributors</link>
|
||||
in the meanwhile. If you appreciate the work on &dactyl.appname; and want to
|
||||
encourage us working on it more, you can send us greetings, patches, or
|
||||
donations (thanks a lot to
|
||||
<link topic="http://vimperator.org/trac/wiki/&dactyl.appname;/Donors">these
|
||||
people</link>
|
||||
who already did):
|
||||
</p>
|
||||
|
||||
<pan><handle/></pan>
|
||||
|
||||
<p>
|
||||
If you prefer getting some nice products for your money, you can also support
|
||||
us by buying some cool
|
||||
<link topic="http://www.zazzle.com/maxauthority*">merchandise</link> like
|
||||
t-shirts or mugs. Of course, as we believe in free, open source software, only
|
||||
support us financially if you really like &dactyl.appname; and the money doesn't hurt
|
||||
— otherwise just use it, recommend it, and like it :)
|
||||
</p>
|
||||
|
||||
<h2 tag="overview">Help topics</h2>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<link topic="tutorial">Quick-start tutorial</link>:
|
||||
A quick-start tutorial for new users.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="starting">Starting &dactyl.appname;</link>:
|
||||
How &dactyl.appname; starts up, where it reads the config file…
|
||||
</li>
|
||||
<li>
|
||||
<link topic="browsing">Browsing</link>:
|
||||
Basic mappings and commands needed for a browsing session (how to open
|
||||
a web page or go back in history).
|
||||
</li>
|
||||
<li>
|
||||
<link topic="buffer">Buffer</link>:
|
||||
Operations on the current document like scrolling or copying text.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="cmdline">Command-line mode</link>:
|
||||
Command-line editing.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="insert">Insert mode</link>:
|
||||
Insert-mode editing.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="options">Options</link>:
|
||||
A description of all options.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="pattern">Text search commands</link>:
|
||||
Searching for text in the current buffer.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="tabs">Tabs</link>:
|
||||
Managing your tabbed browsing session.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="hints">Hints</link>:
|
||||
Selecting hyperlinks and other page elements.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="">Key mappings, abbreviations, and user-defined commands</link>:
|
||||
Defining new key mappings, abbreviations and user commands.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="eval">Expression evaluation</link>:
|
||||
Executing JavaScript.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="marks">Marks</link>:
|
||||
Using bookmarks, QuickMarks, history and local marks.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="repeat">Repeating commands</link>:
|
||||
Using macros to repeat recurring workflows.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="autocommands">Automatic commands</link>:
|
||||
Automatically executing code on certain events.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="print">Printing</link>:
|
||||
Printing pages.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="gui">&dactyl.appname;'s GUI</link>:
|
||||
Accessing &dactyl.host; menus, dialogs and the sidebar.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="styling">Styling the GUI and web pages</link>:
|
||||
Changing the styling of content pages and &dactyl.appname; itself.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="message">Error and informational messages</link>:
|
||||
A description of messages and error messages.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="developer">Developer information</link>:
|
||||
How to write docs or plugins.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="various">Various commands</link>:
|
||||
Other help which didn't fit into any other category.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="plugins">Plugins</link>:
|
||||
Documentation for any plugins you may have installed.
|
||||
</li>
|
||||
<li>
|
||||
<link topic="index">Index</link>:
|
||||
An index of all commands and options.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
You can also jump directly to the help of a specific command with <ex>:help o</ex>
|
||||
or <ex>:help :set</ex>.
|
||||
</p>
|
||||
|
||||
<h2 tag="features">Features</h2>
|
||||
|
||||
<ul>
|
||||
<li>Vim-like keybindings (<k>h</k>, <k>j</k>, <k>k</k>, <k>l</k>, <k>gg</k>, <k>G</k>, <k>0</k>, <k>$</k>, <k>ZZ</k>, <k name="C-f"/>, etc.)</li>
|
||||
<li>Ex commands (<ex>:quit</ex>, <ex>:open www.foo.com</ex>, …)</li>
|
||||
<li>Tab completion available for all commands with support for "longest" matching when set in 'wildmode'</li>
|
||||
<li>Hit-a-hint like navigation of links (start with <k>f</k> to follow a link)</li>
|
||||
<li>Advanced completion of bookmark and history URLs (searching also in title, not only URL)</li>
|
||||
<li>Vim-like statusline with a Wget-like progress bar</li>
|
||||
<li>Minimal GUI (easily hide useless menubar and toolbar with <ex>:set guioptions=</ex>)</li>
|
||||
<li>Ability to <ex>:source</ex> JavaScript files, and to use a <em>~/.pentadactylrc</em> file with syntax highlighting if you install pentadactyl.vim</li>
|
||||
<li>Easy quick searches (<ex>:open foo</ex> will search for "foo" in google, <ex>:open ebay terminator</ex> will search for "terminator" on ebay) with support for &dactyl.host; keyword bookmarks and search engines</li>
|
||||
<li>Count supported for many commands (<em>3</em><k name="C-o"/> will go back 3 pages)</li>
|
||||
<li>Beep on errors</li>
|
||||
<li>Marks support (<k>m</k><em>a</em> to set mark a on a web page, <k>'</k><em>a</em> to go there)</li>
|
||||
<li>QuickMarks support (quickly go to previously marked web pages with <k>go</k><a>a-zA-Z0-9</a>)</li>
|
||||
<li><ex>:map</ex> and <ex>:command</ex> support (and feedkeys() for script writers)</li>
|
||||
<li><ex>:time</ex> support for profiling</li>
|
||||
<li>Move the text cursor and select text with Vim keys and a Visual mode</li>
|
||||
<li>External editor support</li>
|
||||
<li>Macros to replay key strokes</li>
|
||||
<li>AutoCommands to execute actions on certain events</li>
|
||||
<li>A comprehensive help system, explaining all commands, mappings and options</li>
|
||||
</ul>
|
||||
|
||||
<h2 tag="contact">Contact</h2>
|
||||
|
||||
<p>
|
||||
Please send comments/bug reports/patches to the mailing list, where we will
|
||||
properly answer any questions. You can also join the
|
||||
<link topic="irc://irc.freenode.net/pentadactyl">#pentadactyl</link> IRC channel
|
||||
on <link target="http://www.freenode.net/">Freenode</link> or check the
|
||||
<link topic="http://vimperator.org/trac/wiki/&dactyl.appname;/Wiki">Wiki</link> for
|
||||
<link topic="http://vimperator.org/trac/wiki/&dactyl.appname;/FAQ">
|
||||
frequently asked questions (FAQ)
|
||||
</link>. Make sure, you have read the TODO file first, as we are aware of many
|
||||
things which can be improved when we find time for it or receive patches.
|
||||
</p>
|
||||
|
||||
</document>
|
||||
<!-- vim:se sts=4 sw=4 et: -->
|
||||
26
pentadactyl/locale/en-US/options.xml
Normal file
26
pentadactyl/locale/en-US/options.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
|
||||
|
||||
<!DOCTYPE overlay SYSTEM "chrome://dactyl/content/dactyl.dtd">
|
||||
|
||||
<overlay
|
||||
xmlns="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<item insertbefore=":set">
|
||||
<tags>:seg :way</tags>
|
||||
<spec>:se[a]</spec>
|
||||
<description>
|
||||
<p>Show all options that differ from their default value.</p>
|
||||
</description>
|
||||
</item>
|
||||
|
||||
<item insertafter=":set-default">
|
||||
<tags>:sturm :drang</tags>
|
||||
<spec>:und</spec>
|
||||
<description>
|
||||
<p>Show all options that differ from their default value.</p>
|
||||
</description>
|
||||
</item>
|
||||
</overlay>
|
||||
<!-- vim:se sts=4 sw=4 et: -->
|
||||
369
pentadactyl/locale/en-US/tutorial.xml
Normal file
369
pentadactyl/locale/en-US/tutorial.xml
Normal file
@@ -0,0 +1,369 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
|
||||
|
||||
<!DOCTYPE document SYSTEM "chrome://dactyl/content/dactyl.dtd">
|
||||
|
||||
<document
|
||||
name="tutorial"
|
||||
title="&dactyl.appname; Tutorial"
|
||||
xmlns="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<!-- Initial revision: Sun Jun 8 10:07:05 UTC 2008 (penryu) -->
|
||||
|
||||
<h1 tag="tutorial">Quick-start tutorial</h1>
|
||||
|
||||
<html:p style="text-align: center">
|
||||
This is a quickstart tutorial to help get new users up and running
|
||||
in &dactyl.appname;. It is not intended as a full reference explaining all
|
||||
features.
|
||||
</html:p>
|
||||
|
||||
<p>
|
||||
If you've started using &dactyl.appname; from scratch (i.e., without any
|
||||
customization), you should be looking at this help page in a relatively
|
||||
bare-looking window. The menubar, navigation bar, and bookmark bars are hidden.
|
||||
In case you missed the notice in the <t>intro</t>, you can
|
||||
regain these by issuing the command
|
||||
</p>
|
||||
|
||||
<code><ex>:set go+=mTB<key name="CR"/></ex></code>
|
||||
|
||||
<p>
|
||||
where <k name="CR"/> represents pressing the <key name="Enter"/> or <key name="Return"/> key.
|
||||
If you're a veteran Vim user, this may look familiar. It should.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
However, in this author's opinion, the best way to get familiar with
|
||||
&dactyl.appname; is to leave these disabled for now. (The above action can be
|
||||
reversed with <ex>:set go=<key name="CR"/></ex>) You can look at the entry for <o>guioptions</o> in
|
||||
<t>options</t> for more information on this.
|
||||
</p>
|
||||
|
||||
<h2 tag="modal">&dactyl.appname;'s modal interface</h2>
|
||||
|
||||
<p>
|
||||
&dactyl.appname;'s power, like Vim's, comes from it's modal interface. Keys have
|
||||
different meanings depending on which mode the browser is in. &dactyl.appname; has
|
||||
several modes, but the 2 most important are <em>Normal</em> mode and
|
||||
<em>Command-line</em> mode.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When &dactyl.appname; starts, it is in Normal mode by default. This is probably where
|
||||
you will spend the majority of your time.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The other core mode of &dactyl.appname;, Command-line mode, can be entered from
|
||||
Normal mode by typing a <k>:</k> (colon). You will frequently see &dactyl.appname;
|
||||
commands start with a <k>:</k>, indicating that what follows is a command.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To return to Normal mode from Command-line mode, type <k name="Esc"/>. Pressing
|
||||
<k name="Esc"/> will also return you to Normal mode from most other modes in
|
||||
&dactyl.appname;.
|
||||
</p>
|
||||
|
||||
<h2 tag="getting-help">Getting help</h2>
|
||||
|
||||
<p>
|
||||
Vim is a great editor but it's not much of a web browser. So even seasoned Vim
|
||||
users will probably have to look at &dactyl.appname; documentation sooner or later.
|
||||
Most of the documentation for &dactyl.appname;'s features are easily found using the
|
||||
<ex>:help</ex> command. For example, you can find help on the <ex>:help</ex> command
|
||||
by typing
|
||||
</p>
|
||||
|
||||
<code><ex>:help :help<key name="CR"/></ex></code>
|
||||
|
||||
<p>
|
||||
Similarly, help on configurable options is available with
|
||||
<ex>:help '<a>option_name</a>'</ex>. (Note the single quotes
|
||||
around the option name as in Vim.) Information on all available
|
||||
options is, predictably, <ex>:help options</ex>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
And you can find out about the <k>gt</k> and <k>gT</k> mapping with
|
||||
</p>
|
||||
|
||||
<code>
|
||||
<ex>:help gt<key name="CR"/></ex>
|
||||
<ex>:help gT<key name="CR"/></ex>
|
||||
</code>
|
||||
|
||||
<p>
|
||||
Finally, in addition to the help system itself, <ex>:exusage</ex>, <ex>:viusage</ex>
|
||||
and <ex>:optionusage</ex> are useful quick-reference commands.
|
||||
</p>
|
||||
|
||||
<h2 tag="living-mouseless">Mouseless</h2>
|
||||
|
||||
<em>– or how I learned to stop worrying and love the 80+ buttons I already have.</em>
|
||||
|
||||
<p>
|
||||
The efficiency of &dactyl.appname;, as with the legendary editor it was inspired by,
|
||||
relies on the user being able to keep his fingers on the keyboard where they
|
||||
can do the most good. While there are some areas where the mouse is clearly
|
||||
superior at, such as GUI design or some games, &dactyl.appname; acts on the
|
||||
assumption that a web browser doesn't have to be one of those.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here are some areas where the mouse is typically considered indisposable, and
|
||||
how &dactyl.appname; challenges this preconception.
|
||||
</p>
|
||||
|
||||
<h2 tag="keyboard-scrolling">Scrolling</h2>
|
||||
|
||||
<p>
|
||||
Scrolling the browser window is done with simple keystrokes:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><k>j</k>/<k>k</k> –
|
||||
scroll window down/up by one line, respectively
|
||||
</li>
|
||||
<li><k>h</k>/<k>l</k> –
|
||||
scroll window left/right
|
||||
</li>
|
||||
<li><k name="Space"/>/<k name="C-b"/> –
|
||||
scroll down/up by one page
|
||||
</li>
|
||||
<li><k name="C-d"/>/<k name="C-u"/> –
|
||||
scroll down/up by 1/2 page
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Your standard buttons (<k name="Up"/>/<k name="Down"/>/<k name="PgUp"/>/<k name="PgDn"/>) will
|
||||
also work as expected.
|
||||
</p>
|
||||
|
||||
<h2 tag="history-navigation tab-navigation">History and tabs</h2>
|
||||
|
||||
<p>
|
||||
History navigation (e.g., <em>Back</em>, <em>Forward</em>) are done similarly to
|
||||
scrolling.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><k name="C-o"/>/<k name="C-i"/> –
|
||||
move Back/Forward in the current window/tab's history, respectively
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Move between tabs using these keystrokes which may also be familiar to tabbing
|
||||
Vimmers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><k>gt</k>/<k name="C-n"/> –
|
||||
go to the next tab
|
||||
</li>
|
||||
<li><k>gT</k>/<k name="C-p"/> –
|
||||
go to the previous tab
|
||||
</li>
|
||||
<li><k>g0</k>/<k>g$</k> –
|
||||
go to the first/last tab
|
||||
</li>
|
||||
<li><k>d</k> –
|
||||
close the active tab (delete the buffer)
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
To open a web page in a new tab, use the <ex>:tabopen <a>url</a></ex>. To open a URL in
|
||||
the current tab, use <ex>:open</ex>. The Normal mode mappings <k>t</k> and <k>o</k>,
|
||||
respectively, map to these commands, so the following pairs of sequences are
|
||||
equivalent:
|
||||
</p>
|
||||
|
||||
<code>
|
||||
<ex>:open my.webmail.com<key name="CR"/></ex>
|
||||
<k>o</k>my.webmail.com<key name="CR"/>
|
||||
|
||||
<ex>:tabopen vimperator.org<key name="CR"/></ex>
|
||||
<k>t</k>vimperator.org<key name="CR"/>
|
||||
</code>
|
||||
|
||||
<h2 tag="hints-tutorial">Some hints about surfing…</h2>
|
||||
|
||||
<p>
|
||||
So now you can navigate around in &dactyl.appname;. But wait… how do you <em>open</em> a
|
||||
page or tab linked in a web page? How do you <em>click</em> on all those links
|
||||
without your tailed friend?
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The answer is <em>hints</em>. Activating hints displays a number next to every link
|
||||
&dactyl.appname; can find. To follow the link, simply type the number corresponding
|
||||
to the hint, a white number inside a red square by default.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For text links, there's an additional shortcut; you can type some text
|
||||
contained in the link and &dactyl.appname; will search all the links it can find and
|
||||
only hint the matching links, further narrowing down the list. If the text you
|
||||
type uniquely identifies any given link, &dactyl.appname; will follow that link
|
||||
immediately without any further user input.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Whichever way you choose to indicate your target link, once &dactyl.appname; has
|
||||
highlighted the link you want, simply hit <k name="Enter"/> to open it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The most common hint mode is called <t>quick-hints</t>.
|
||||
To activate QuickHint mode, press either <k>f</k> or <k>F</k>. The lower-case
|
||||
<k>f</k> will open the resulting link in the current tab, while the upper-case
|
||||
<k>F</k> will open it in a new tab.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To test it, try this link: <link target="http://vimperator.org/">&dactyl.appname; Homepage</link>.
|
||||
Activate QuickHint mode with <k>f</k> or <k>F</k> to highlight all currently
|
||||
visible links. Then start typing the text of the link. The link should be
|
||||
uniquely identified soon, and &dactyl.appname; will open it. Once you're done,
|
||||
remember to use <k name="C-o"/> (<em>History Back</em>) or <k>d</k> (<em>Delete Buffer</em>)
|
||||
to return here, depending on which key you used to activate QuickHint mode.
|
||||
</p>
|
||||
|
||||
<h2 tag="common-issues">Common issues</h2>
|
||||
|
||||
<p>
|
||||
Say you get half-way done typing in a new URL, only to remember that you've
|
||||
already got that page open in the previous tab. Your command line might look
|
||||
something like this:
|
||||
</p>
|
||||
|
||||
<code><ex>:open my.partial.url/fooba</ex></code>
|
||||
|
||||
<p>
|
||||
You can exit the command line and access the already loaded page with the
|
||||
following:
|
||||
</p>
|
||||
|
||||
<code><k name="Esc"/></code>
|
||||
|
||||
<h2 tag="pentadactylrc">Saving for posterity - pentadactylrc</h2>
|
||||
|
||||
<p>
|
||||
Once you get &dactyl.appname; set up with your desired options, maps, and commands,
|
||||
you'll probably want them to be available the next time you open &dactyl.appname;.
|
||||
Continuing the Vim theme, this is done with a pentadactylrc file.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To save your current settings and allow them to be loaded automatically
|
||||
next time you start &dactyl.appname;, issue the <ex>:mkv</ex> command.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This will create the file <em>$HOME/.pentadactylrc</em> containing your settings.
|
||||
It is a simple text file, just like a vimrc file and can be easily
|
||||
edited to suit your preferences.
|
||||
</p>
|
||||
|
||||
<h2 tag="quitting-without-menus">Find the exit nearest you</h2>
|
||||
|
||||
<p>
|
||||
&dactyl.appname; supports all of Vim's classic methods of exiting.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><ex>:xall</ex> – command to quit and save the current browsing
|
||||
session for next time; the default.
|
||||
</li>
|
||||
<li><ex>:qall</ex> – command to quit <em>without</em> saving the session
|
||||
</li>
|
||||
<li><k>ZZ</k> – Normal mode mapping equivalent to <ex>:xall</ex>
|
||||
</li>
|
||||
<li><k>ZQ</k> – Normal mode mapping equivalent to <ex>:qall</ex>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 tag="whither-&dactyl.host;">Where did &dactyl.host; go?</h2>
|
||||
|
||||
<p>
|
||||
You might feel pretty disoriented now. Don't worry. This is still &dactyl.host;
|
||||
underneath. Here are some ways &dactyl.appname; allows &dactyl.host; to shine through. See
|
||||
the <ex>:help</ex> for these commands and mappings for more information on how to
|
||||
make the best use of them.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><ex>:dialog</ex> –
|
||||
To access some of &dactyl.host;'s many dialog windows, you can use the
|
||||
<ex>:dialog</ex> command. See <ex>:help :dialog</ex>.
|
||||
</li>
|
||||
<li><ex>:bmarks</ex> –
|
||||
&dactyl.appname; provides a new interface to bookmarks, but they're still your
|
||||
standard &dactyl.host; bookmarks under the hood. <ex>:bmark</ex> will add a new
|
||||
bookmark, while <ex>:bmarks</ex> will list the bookmarks currently defined.
|
||||
</li>
|
||||
<li><ex>:history</ex> –
|
||||
It's exactly what it sounds like. This command will display a colorized,
|
||||
scrollable and clickable list of the locations in &dactyl.appname;'s history.
|
||||
</li>
|
||||
<li><ex>:emenu</ex> –
|
||||
Access the &dactyl.host; menus through the &dactyl.appname; command line.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Feel free to explore at this point. If you use the <ex>:tabopen</ex> command,
|
||||
remember to use the <k>gt</k>/<k>gT</k> mappings to get back to this page. If
|
||||
using the <ex>:open</ex> command, use the history keys (e.g., <k>H</k>) to return.
|
||||
If you get hopelessly lost, just type <ex>:help<key name="CR"/></ex> and click the
|
||||
<em>Tutorial</em> link to return.
|
||||
</p>
|
||||
|
||||
|
||||
<!-- TODO: other sections? -->
|
||||
|
||||
|
||||
<h2 tag="removal">Get me out of here!</h2>
|
||||
|
||||
<p>
|
||||
If you've given it a fair shot and determined … TODO
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The &dactyl.appname; way to do this is with the command <ex>:addons</ex>. Issuing this
|
||||
command brings up the &dactyl.host; Add-ons dialog window; you can then remove it as
|
||||
normal, selecting &dactyl.appname; from the list and clicking (yes, clicking)
|
||||
<em>Uninstall</em>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Alternatively, you can do this the old-fashioned way: re-enable the menubar,
|
||||
as above, with <ex>:set go+=m</ex>, and select <em>Add-ons</em> from the <em>Tools</em> menu.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 tag="support">I'm interested… but lost!</h2>
|
||||
|
||||
<p>
|
||||
&dactyl.appname; has an energetic and growing user base. If you've run into a problem
|
||||
that you can't seem to solve with &dactyl.appname;, or if you think you might have
|
||||
found a bug, please let us know! There is support available on the
|
||||
<link target="http://code.google.com/p/pentadactyl-labs/w/list?q=label%3Aproject-pentadactyl">wiki</link>
|
||||
or in the <link target="irc://irc.freenode.net/pentadactyl">#pentadactyl</link> IRC
|
||||
channel on <link target="http://freenode.net/">freenode</link>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you have any feature requests or (even better) offers to help, we'd love to
|
||||
hear from you as well. Developers work on &dactyl.appname; whenever possible, but we
|
||||
are neither infinite nor omnipotent; please bear with us. If you can't wait for
|
||||
us to get around to it, rest assured patches are welcome! See the
|
||||
<t>developer</t> page for more information.
|
||||
</p>
|
||||
|
||||
</document>
|
||||
<!-- vim:se sts=4 sw=4 et: -->
|
||||
21
pentadactyl/pentadactylrc.example
Normal file
21
pentadactyl/pentadactylrc.example
Normal file
@@ -0,0 +1,21 @@
|
||||
" TODO: add some useful examples
|
||||
|
||||
" I don't like beeps
|
||||
set visualbell
|
||||
|
||||
" autoignore mode on certain pages
|
||||
:autocmd PageLoad .* :js modes.passAllKeys = /gmail\.com/.test(buffer.URL)
|
||||
|
||||
|
||||
" embedded javascript is possible
|
||||
" You can even add new functions which are then available in the :js command
|
||||
javascript <<EOF
|
||||
hello = function(name)
|
||||
{
|
||||
alert("Hello world: " + name);
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "pentadactylrc sourced"
|
||||
|
||||
" vim: ft=pentadactyl:
|
||||
244
pentadactyl/regressions.js
Normal file
244
pentadactyl/regressions.js
Normal file
@@ -0,0 +1,244 @@
|
||||
// Copyright (c) 2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
|
||||
//
|
||||
// This work is licensed for reuse under an MIT license. Details are
|
||||
// given in the LICENSE.txt file included with this file.
|
||||
|
||||
|
||||
// Script to find regressions
|
||||
//
|
||||
// It should use as few dactyl methods as possible, but fall back to standard mozilla/DOM methods
|
||||
// The reason is, we don't want to find regressions in the regressions script, and it should survive
|
||||
// massive changes in the internal dactyl API, but just test for functionality of
|
||||
// user-visible commands/mappings
|
||||
//
|
||||
// NOTE: It is preferable to run this script in a clean profile or at least do NOT use
|
||||
// :mkpentadactylrc afterwards, as it can remove commands/mappings, etc.
|
||||
//
|
||||
// Usage: :[count]regr[essions]
|
||||
// When [count] is given, just run this test. TODO: move to :regressions [spec]?
|
||||
|
||||
// all tests
|
||||
var skipTests = [":bmarks", "gg"];
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Put definitions here which might change due to internal dactyl refactoring
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var doc; // document where we output status messages
|
||||
var multilineOutput = document.getElementById("dactyl-multiline-output");
|
||||
var singlelineOutput = document.getElementById("dactyl-message");
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// TESTS
|
||||
//
|
||||
// They are run in order, so you can specify commands which expect side effects of a
|
||||
// previous command
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// A series of Ex commands or mappings, each with a
|
||||
// function checking whether the command succeeded
|
||||
// If the string starts with a ":" it is executed as an Ex command, otherwise as a mapping
|
||||
// You can also mix commands and mappings
|
||||
let tests = [
|
||||
{ cmds: [":!dir"],
|
||||
verify: function () getMultilineOutput().length > 10 },
|
||||
{ cmds: [":abbr VIMP pentadactyl labs", ":abbr"],
|
||||
verify: function () getOutput().indexOf("pentadactyl labs") >= 0 },
|
||||
{ cmds: [":unabbr VIMP", ":abbr"],
|
||||
verify: function () getOutput().indexOf("pentadactyl labs") == -1 },
|
||||
{ cmds: [":bmarks"],
|
||||
verify: function () getMultilineOutput().length > 100 },
|
||||
{ cmds: [":echo \"test\""],
|
||||
verify: function () getSinglelineOutput() == "test" },
|
||||
{ cmds: [":qmark V http://test.vimperator.org", ":qmarks"],
|
||||
verify: function () getMultilineOutput().indexOf("test.vimperator.org") >= 0 },
|
||||
{ cmds: [":javascript dactyl.echo('test', commandline.FORCE_MULTILINE)"],
|
||||
verify: function () getMultilineOutput() == "test" },
|
||||
// { cmds: [":echomsg \"testmsg\""],
|
||||
// verify: function () getOutput() == "testmsg" },
|
||||
// { cmds: [":echoerr \"testerr\""],
|
||||
// verify: function () getOutput() == "testerr" },
|
||||
{ cmds: ["gg", "<C-f>"], // NOTE: does not work when there is no page to scroll, we should load a large page before doing these tests
|
||||
verify: function () this._initialPos.y != getBufferPosition().y,
|
||||
init: function () this._initialPos = getBufferPosition() }
|
||||
|
||||
// testing tab behavior
|
||||
];
|
||||
|
||||
// these functions highly depend on the dactyl API, so use Ex command tests whenever possible
|
||||
let functions = [
|
||||
function () { return bookmarks.get("").length > 0 }, // will fail for people without bookmarks :( Might want to add one before
|
||||
function () { return history.get("").length > 0 }
|
||||
];
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// functions below should be as generic as possible, and not require being rewritten
|
||||
// even after doing major Pentadactyl refactoring
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function resetEnvironment() {
|
||||
multilineOutput.contentDocument.body.innerHTML = "";
|
||||
singlelineOutput.value = "";
|
||||
commandline.close();
|
||||
modes.reset();
|
||||
}
|
||||
|
||||
function getOutput() multilineOutput.contentDocument.body.textContent || singlelineOutput.value;
|
||||
function getMultilineOutput() multilineOutput.contentDocument.body.textContent;
|
||||
function getSinglelineOutput() singlelineOutput.value;
|
||||
|
||||
function getTabIndex() getBrowser().mTabContainer.selectedIndex;
|
||||
function getTabCount() getBrowser().mTabs.length;
|
||||
|
||||
function getBufferPosition() {
|
||||
let win = window.content;
|
||||
return { x: win.scrollMaxX ? win.pageXOffset / win.scrollMaxX : 0,
|
||||
y: win.scrollMaxY ? win.pageYOffset / win.scrollMaxY : 0 }
|
||||
};
|
||||
|
||||
function getLocation() window.content.document.location.href;
|
||||
|
||||
function echoLine(str, group) {
|
||||
if (!doc)
|
||||
return;
|
||||
|
||||
doc.body.appendChild(util.xmlToDom(
|
||||
<div highlight={group} style="border: 1px solid gray; white-space: pre; height: 1.5em; line-height: 1.5em;">{str}</div>,
|
||||
doc));
|
||||
}
|
||||
function echoMulti(str, group) {
|
||||
if (!doc)
|
||||
return;
|
||||
|
||||
doc.body.appendChild(util.xmlToDom(<div class="ex-command-output"
|
||||
style="white-space: nowrap; border: 1px solid black; min-height: 1.5em;"
|
||||
highlight={group}>{template.maybeXML(str)}</div>,
|
||||
doc));
|
||||
}
|
||||
|
||||
commands.addUserCommand(["regr[essions]"],
|
||||
"Run regression tests",
|
||||
function (args) {
|
||||
// TODO: might need to increase the 'messages' option temporarily
|
||||
// TODO: count (better even range) support to just run test 34 of 102
|
||||
// TODO: bang support to either: a) run commands like deleting bookmarks which
|
||||
// should only be done in a clean profile or b) run functions and not
|
||||
// just Ex command tests; Yet to be decided
|
||||
|
||||
let updateOutputHeight = null;
|
||||
function init() {
|
||||
dactyl.registerObserver("echoLine", echoLine);
|
||||
dactyl.registerObserver("echoMultiline", echoMulti);
|
||||
dactyl.open("chrome://dactyl/content/buffer.xhtml", dactyl.NEW_TAB);
|
||||
events.waitForPageLoad();
|
||||
doc = content.document;
|
||||
doc.body.setAttributeNS(NS.uri, "highlight", "CmdLine");
|
||||
|
||||
updateOutputHeight = commandline.updateOutputHeight;
|
||||
commandline.updateOutputHeight = function (open) {
|
||||
let elem = document.getElementById("dactyl-multiline-output");
|
||||
if (open)
|
||||
elem.collapsed = false;
|
||||
elem.height = 0;
|
||||
};
|
||||
}
|
||||
function cleanup() {
|
||||
dactyl.unregisterObserver("echoLine", echoLine);
|
||||
dactyl.unregisterObserver("echoMultiline", echoMulti);
|
||||
commandline.updateOutputHeight = updateOutputHeight;
|
||||
}
|
||||
|
||||
function run() {
|
||||
let now = Date.now();
|
||||
let totalTests = tests.length + functions.length;
|
||||
let successfulTests = 0;
|
||||
let skippedTests = 0;
|
||||
let currentTest = 0;
|
||||
|
||||
init();
|
||||
|
||||
// TODO: might want to unify 'tests' and 'functions' handling
|
||||
// 1.) run commands and mappings tests
|
||||
outer:
|
||||
for (let [, test] in Iterator(tests)) {
|
||||
currentTest++;
|
||||
if (args.count >= 1 && currentTest != args.count)
|
||||
continue;
|
||||
|
||||
let testDescription = util.clip(test.cmds.join(" -> "), 80);
|
||||
for (let [, cmd] in Iterator(test.cmds)) {
|
||||
if (skipTests.indexOf(cmd) != -1) {
|
||||
skippedTests++;
|
||||
dactyl.echomsg("Skipping test " + currentTest + " of " + totalTests + ": " + testDescription, 0);
|
||||
continue outer;
|
||||
}
|
||||
};
|
||||
|
||||
commandline.echo("Running test " + currentTest + " of " + totalTests + ": " + testDescription, "Filter", commandline.APPEND_TO_MESSAGES);
|
||||
resetEnvironment();
|
||||
if ("init" in test)
|
||||
test.init();
|
||||
|
||||
test.cmds.forEach(function (cmd) {
|
||||
if (cmd[0] == ":")
|
||||
dactyl.execute(cmd);
|
||||
else
|
||||
events.feedkeys(cmd);
|
||||
});
|
||||
|
||||
if (!test.verify())
|
||||
dactyl.echoerr("Test " + currentTest + " failed: " + testDescription);
|
||||
else
|
||||
successfulTests++;
|
||||
}
|
||||
|
||||
// 2.) Run function tests
|
||||
for (let [, func] in Iterator(functions)) {
|
||||
currentTest++;
|
||||
if (args.count >= 1 && currentTest != args.count)
|
||||
continue;
|
||||
|
||||
commandline.echo("Running test " + currentTest + " of " + totalTests + ": " + util.clip(func.toString().replace(/[\s\n]+/gm, " "), 80), "Filter", commandline.APPEND_TO_MESSAGES);
|
||||
resetEnvironment();
|
||||
|
||||
if (!func())
|
||||
dactyl.echoerr("Test " + currentTest + " failed!");
|
||||
else
|
||||
successfulTests++;
|
||||
}
|
||||
|
||||
cleanup();
|
||||
|
||||
let runTests = (args.count >= 1 ? 1 : totalTests) - skippedTests;
|
||||
XML.ignoreWhitespace = false;
|
||||
dactyl.echomsg(<e4x>
|
||||
<span style="font-weight: bold">{successfulTests}</span> of <span style="font-weight: bold">{runTests}</span>
|
||||
tests successfully completed (<span style="font-weight: bold">{skippedTests}</span> tests skipped) in
|
||||
<span class="time-total">{((Date.now() - now) / 1000.0)}</span> msec
|
||||
</e4x>.*);
|
||||
dactyl.execute(":messages");
|
||||
}
|
||||
|
||||
if (!args.bang) {
|
||||
dactyl.echo(<e4x>
|
||||
<span style="font-weight: bold">Running tests should always be done in a new profile.</span><br/>
|
||||
|
||||
It should not do any harm to your profile, but your current settings like options,
|
||||
abbreviations or mappings might not be in the same state as before running the tests.
|
||||
Just make sure, you don't :mkpentadactylrc, after running the tests.<br/><br/>
|
||||
<!--' vim. -->
|
||||
|
||||
Use :regressions! to skip this prompt.
|
||||
</e4x>.*);
|
||||
commandline.input("Type 'yes' to run the tests: ", function (res) { if (res == "yes") run(); } );
|
||||
return;
|
||||
}
|
||||
run();
|
||||
},
|
||||
{
|
||||
bang: true,
|
||||
argCount: "0",
|
||||
count: true
|
||||
});
|
||||
|
||||
// vim: set et sts=4 sw=4 :
|
||||
37
pentadactyl/skin/about.css
Normal file
37
pentadactyl/skin/about.css
Normal file
@@ -0,0 +1,37 @@
|
||||
/* Based on vimperator.org home page layout. */
|
||||
|
||||
#main-container {
|
||||
width: 775px;
|
||||
margin: 55px auto;
|
||||
}
|
||||
|
||||
#img-container {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
width: 775px;
|
||||
height: 440px;
|
||||
border: 5px solid black;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url(chrome://pentadactyl/content/about_background.png);
|
||||
background-color: green;
|
||||
border-spacing: 0px 10px;
|
||||
-moz-border-radius: 10px;
|
||||
}
|
||||
|
||||
#text-container {
|
||||
float: right;
|
||||
border: solid black;
|
||||
white-space: pre-wrap;
|
||||
font-family: monospace;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
width: 500px;
|
||||
height: 275px;
|
||||
color: black;
|
||||
background-color: rgb(176, 196, 222);
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.key { color: blue; }
|
||||
|
||||
/* vim: set fdm=marker sw=4 ts=4 et: */
|
||||
BIN
pentadactyl/skin/icon.png
Normal file
BIN
pentadactyl/skin/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 588 B |
Reference in New Issue
Block a user