|
| 1 | +Vimperator-labs |
| 2 | +=============== |
| 3 | + |
| 4 | +[![amo release][amo_version]][amo_release] |
| 5 | +[![github release][github_version]][github_release] |
| 6 | + |
| 7 | +**Make Firefox/Thunderbird look and behave like Vim** |
| 8 | + |
| 9 | +> **To beginners**: Welcome to the Vimperator-labs! |
| 10 | +> This README isn't written usage and help for the add-on itself. |
| 11 | +> Try `:help` command after installing add-on for details. |
| 12 | +
|
| 13 | +Description |
| 14 | +----------- |
| 15 | + |
| 16 | +See also [Home page][homepage]. |
| 17 | + |
| 18 | +Writing efficient user interfaces is the main maxim, here at Vimperator labs. |
| 19 | +We often follow the Vim way of doing things, but extend its principles when |
| 20 | +necessary. |
| 21 | +Towards this end, we've created the liberator library for Mozilla based |
| 22 | +applications, to encapsulate as many of these generic principles as possible, |
| 23 | +and liberate developers from the tedium of reinventing the wheel. |
| 24 | + |
| 25 | +Currently, these applications are using this library: |
| 26 | + |
| 27 | +### Vimperator |
| 28 | + |
| 29 | +Vimperator, the flagship project from Vimperator labs, creates a Vim-like |
| 30 | +Firefox. |
| 31 | + |
| 32 | +Vimperator is a Firefox browser extension with strong inspiration from the Vim |
| 33 | +text editor, with a mind towards faster and more efficient browsing. It has |
| 34 | +similar key bindings and you could call it a modal web browser, as key bindings |
| 35 | +differ according to which mode you are in. For example, it has a special Hint |
| 36 | +mode, where you can follow links easily with the keyboard only. Also most |
| 37 | +functionality is available as commands, typing `:back` will go back within the |
| 38 | +current page history, just like hitting the back button in the toolbar. |
| 39 | + |
| 40 | +### Muttator |
| 41 | + |
| 42 | +Muttator is to Thunderbird what Vimperator is to Firefox. Combines the best |
| 43 | +aspects of Vim and Mutt. |
| 44 | + |
| 45 | +Muttator is a free add-on for the Thunderbird mail client, which makes it look |
| 46 | +and behave like the Vim text editor. It has similar key bindings and you could |
| 47 | +call it a modal mail client, as key bindings differ according to which mode you |
| 48 | +are in. For example, it the same keys can select the next message while the |
| 49 | +message list has focus or can scroll down an existing message when the message |
| 50 | +preview is selected. It also adds commands for accessing most Thunderbird |
| 51 | +functionality. E.g., `:contact -lastname "Vimperator" [email protected]` |
| 52 | +will add Vimperator's mailing list to your address book. |
| 53 | + |
| 54 | +Features (Vimperator) |
| 55 | +--------------------- |
| 56 | + |
| 57 | +- Vim-like keybindings (`h`, `j`, `k`, `l`, `gg`, `G`, `0`, `$`, `ZZ`, etc.) |
| 58 | +- Ex commands (`:quit`, `:open www.foo.com`, ...) |
| 59 | +- Tab completion available for all commands with support for 'longest' matching |
| 60 | + when set in 'wildmode' |
| 61 | +- Extensions! Yes, you can extend Vimperator's functionality with scripts just |
| 62 | + like you can extend Firefox with extensions |
| 63 | +- Explore JavaScript objects with `:echo window` and even context-sensitive tab |
| 64 | + completion |
| 65 | +- Hit-a-hint like navigation of links (start with `f` to follow a link) |
| 66 | +- Advanced completion of bookmark and history URLs (searching also in title, |
| 67 | + not only URL) |
| 68 | +- Vim-like statusline with a wget-like progress bar |
| 69 | +- Minimal GUI (easily hide useless menubar and toolbar with `:set guioptions=`) |
| 70 | +- Ability to `:source` JavaScript files, and to use a `~/.vimperatorrc` file |
| 71 | +- Easy quick searches (`:open foo` will search for "foo" in google, `:open ebay |
| 72 | + terminator` will search for "terminator" on ebay) with support for Firefox |
| 73 | + keyword bookmarks and search engines |
| 74 | +- Count supported for many commands (`3<C-o>` will go back 3 pages) |
| 75 | +- Beep on errors |
| 76 | +- Marks support (`ma` to set mark 'a' on a webpage, `'a` to go there) |
| 77 | +- QuickMarks support (quickly go to previously marked web pages with |
| 78 | + `go{a-zA-Z0-9}`) |
| 79 | +- `:map` and `:command` support (and `feedkeys()` for script writers) |
| 80 | +- `:time` support for profiling |
| 81 | +- Move the text cursor and select text with vim keys and a visual mode |
| 82 | +- External editor support |
| 83 | +- Macros to replay key strokes |
| 84 | +- AutoCommands to execute action on certain events |
| 85 | +- A comprehensive `:help`, explaining all commands, mappings and options |
| 86 | +- Much more... |
| 87 | + |
| 88 | +Installation (Vimperator) |
| 89 | +------------------------- |
| 90 | + |
| 91 | +> Note that Vimperator doesn't support multi-process aka |
| 92 | +> [Electrolysis][wiki_e10s] (e10s), it's necessary to disable e10s to use the |
| 93 | +> add-on. |
| 94 | +
|
| 95 | +- Download **signed** add-on from addons.mozilla.org (AMO) <sup>1</sup> |
| 96 | + |
| 97 | + 1. Enter [Add-ons page][amo_release]. |
| 98 | + 2. Click `Continue to Download` button. |
| 99 | + 3. Click `Add to Firefox` button. |
| 100 | + |
| 101 | +- Download **unsigned** <sup>2</sup> add-on from github.com (Github) |
| 102 | + |
| 103 | + 1. Enter [Releases page][github_release]. |
| 104 | + 2. Click `vimperator-3.N.N.xpi` link under Downloads topic. |
| 105 | + |
| 106 | +- Build own version (and signing) |
| 107 | + See [Build own version](#build-own-version) topic. |
| 108 | + |
| 109 | +> <sup>1</sup> If the version on [AMO][amo_release] is older than the [latest |
| 110 | +> release][github_release], you can build your own version and use it until AMO |
| 111 | +> release is updated. |
| 112 | +
|
| 113 | +> <sup>2</sup> Since version 48, installing add-on to Firefox has required |
| 114 | +> signing. Unsigned add-on is for Unbranded Builds. See [mozilla |
| 115 | +> wiki][wiki_signing]. |
| 116 | +
|
| 117 | +Build own version |
| 118 | +----------------- |
| 119 | + |
| 120 | +### Unsigned (for Unbranded Builds) |
| 121 | + |
| 122 | +See http://www.vimperator.org/developerinfo. |
| 123 | + |
| 124 | +### Signed (for Firefox 48+) |
| 125 | + |
| 126 | +Instructions for building this can be found in |
| 127 | +vimperator/private.properties.in. See also [MDN document][mdn_signing] |
| 128 | +(developer.mozilla.org) for details about signing and distribution. |
| 129 | + |
| 130 | +There are necessary four steps to use own version. |
| 131 | + |
| 132 | +1. Prepare "AMO API key" and "jpm" if first time |
| 133 | +2. Build unsigned add-on |
| 134 | +3. Submit unsigned add-on to AMO |
| 135 | +4. Install signed add-on to Firefox |
| 136 | +5. Addition: Use Command-line interface (CLI) to build and submit |
| 137 | + |
| 138 | +#### Prepare AMO API key and jpm |
| 139 | + |
| 140 | +- [AMO API key][amo_api_key] (require Firefox Account) |
| 141 | +- [jpm][jpm_repo] (require node.js): |
| 142 | + |
| 143 | + ```bash |
| 144 | + npm install -g jpm |
| 145 | + ``` |
| 146 | + |
| 147 | +#### Build unsigned add-on |
| 148 | + |
| 149 | +Clone repository and create private.properties: |
| 150 | + |
| 151 | +```bash |
| 152 | +git clone https://github.com/vimperator/vimperator-labs.git |
| 153 | +cd vimperator-labs/vimperator |
| 154 | +cp private.properties.in private.properties |
| 155 | +``` |
| 156 | + |
| 157 | +Then edit private.properties so that it looks something like: |
| 158 | + |
| 159 | +```makefile |
| 160 | +VERSION := $(VERSION).$(shell date '+%Y%m%d%H%M%S') |
| 161 | +UUID = vimperator@<uniqueid> # e.g. vimperator@<yourdomain> |
| 162 | +AMO_API_KEY = <your API key> # AKA "Issuer" |
| 163 | +AMO_API_SECRET = <your API secret> |
| 164 | +UPDATE_URL = |
| 165 | +UPDATE_URL_XPI = |
| 166 | +``` |
| 167 | + |
| 168 | +Then run: |
| 169 | + |
| 170 | +```bash |
| 171 | +make xpi |
| 172 | +``` |
| 173 | + |
| 174 | +The unsigned XPI should appear in |
| 175 | +`../downloads/vimperator-3.N.N.yyyymmddhhmmss.xpi`. |
| 176 | + |
| 177 | +#### Submit unsigned add-on to AMO |
| 178 | + |
| 179 | +<table> |
| 180 | +<tr> |
| 181 | + <th>Have you ever submitted own version to AMO?</th><th>How to submit</th> |
| 182 | +</tr> |
| 183 | +<tr> |
| 184 | + <td>No, I'd like to register own version.</td> |
| 185 | + <td>Enter <a |
| 186 | + href="https://addons.mozilla.org/en-US/developers/addon/submit/distribution"> |
| 187 | + How to Distribute this Version</a>, upload the XPI selecting <code>On your |
| 188 | + own</code> button. |
| 189 | + </td> |
| 190 | +</tr> |
| 191 | +<tr> |
| 192 | + <td>Yes, I'd like to update own version.</td> |
| 193 | + <td>Enter <a href="https://addons.mozilla.org/en-US/developers/addons"> |
| 194 | + Manage My Submissions</a>, upload the XPI from your Vimperator's <code>New |
| 195 | + Version</code> link. |
| 196 | + </td> |
| 197 | +</tr> |
| 198 | +</table> |
| 199 | + |
| 200 | +Then the validation starts. Finally, automatically validation XPI finishes, |
| 201 | +click `Sign add-on` button to sign. |
| 202 | + |
| 203 | +#### Install signed add-on to Firefox |
| 204 | + |
| 205 | +Install it via the link in your AMO developer account (find your Vimperator's |
| 206 | +`Manage Status & Versions`). The new UUID makes it a new add-on, so don't |
| 207 | +forget to disable the old version. |
| 208 | + |
| 209 | +#### Use CLI to build and submit |
| 210 | + |
| 211 | +After once you signed the add-on, you are able to update the add-on using CLI. |
| 212 | + |
| 213 | +```bash |
| 214 | +cd vimperator-labs/vimperator |
| 215 | +make sign |
| 216 | +``` |
| 217 | + |
| 218 | +Contributing |
| 219 | +------------ |
| 220 | + |
| 221 | +**Vimperator is in need of collaborators! Help bring vimperator into the age |
| 222 | +of e10s!** |
| 223 | + |
| 224 | +Please check existing issues for similar issues before opening a new issue. |
| 225 | +See [CONTIRIBUTING.md][contributing] for details. |
| 226 | + |
| 227 | +License |
| 228 | +------- |
| 229 | + |
| 230 | +Vimperator-labs is released under the MIT license, see [License.txt][license]. |
| 231 | + |
| 232 | +Links | URL |
| 233 | +---------------------|--------------------------------------------------------- |
| 234 | +Home page | http://www.vimperator.org/ |
| 235 | +Add-ons (Vimperator) | https://addons.mozilla.org/en-US/firefox/addon/vimperator/ |
| 236 | +Add-ons (Muttator) | https://addons.mozilla.org/en-US/firefox/addon/muttator/ |
| 237 | +Github repository | https://github.com/vimperator/vimperator-labs/ |
| 238 | + |
| 239 | +<!-- References --> |
| 240 | +[amo_version]: https://img.shields.io/amo/v/vimperator.svg |
| 241 | +[amo_release]: https://addons.mozilla.org/en-US/firefox/addon/vimperator/ |
| 242 | +[github_version]: https://img.shields.io/github/release/vimperator/vimperator-labs.svg |
| 243 | +[github_release]: https://github.com/vimperator/vimperator-labs/releases/latest |
| 244 | +[homepage]: http://www.vimperator.org/ |
| 245 | +[wiki_e10s]: https://wiki.mozilla.org/Electrolysis |
| 246 | +[wiki_signing]: https://wiki.mozilla.org/Add-ons/Extension_Signing |
| 247 | +[mdn_signing]: https://developer.mozilla.org/en-US/Add-ons/Distribution |
| 248 | +[amo_api_key]: https://addons.mozilla.org/en-US/developers/addon/api/key/ |
| 249 | +[jpm_repo]: https://github.com/mozilla-jetpack/jpm |
| 250 | +[contributing]: https://github.com/vimperator/vimperator-labs/blob/master/CONTRIBUTING.md |
| 251 | +[license]: https://github.com/vimperator/vimperator-labs/blob/master/License.txt |
| 252 | + |
| 253 | +<!-- vim: set ft=markdown sw=4 ts=4 sts=4 et ai: --> |
0 commit comments