1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-30 23:02:27 +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:
Kris Maglione
2010-08-28 18:02:03 -04:00
parent 2e830d380a
commit 924863cd61
141 changed files with 1836 additions and 1850 deletions

View File

@@ -7,5 +7,5 @@ Inactive/former developers:
Patches:
* Christian Dietrich (too many to list)
A lot of people contributed to Vimperator, which is the basis of Muttator, so please refer
A lot of people contributed to Pentadactyl, which is the basis of Muttator, so please refer
to that AUTHOR file for more contributors.

View File

@@ -59,6 +59,6 @@
2008-04-29:
* version 0.1
* first public release, straight port from Vimperator with many basic mappings
* first public release, straight port from Pentadactyl with many basic mappings
// vim: set filetype=asciidoc:

View File

@@ -1,18 +1,18 @@
# Thunderbird
content muttator content/
skin muttator classic/1.0 skin/
locale liberator en-US locale/en-US/
locale dactyl en-US locale/en-US/
content liberator ../common/content/
resource liberator ../common/modules/
skin liberator classic/1.0 ../common/skin/
content dactyl ../common/content/
resource dactyl ../common/modules/
skin dactyl classic/1.0 ../common/skin/
override chrome://liberator/content/liberator.dtd chrome://muttator/content/liberator.dtd
override chrome://liberator/content/config.js chrome://muttator/content/config.js
override chrome://dactyl/content/dactyl.dtd chrome://muttator/content/dactyl.dtd
override chrome://dactyl/content/config.js chrome://muttator/content/config.js
overlay chrome://messenger/content/messenger.xul chrome://liberator/content/liberator.xul
overlay chrome://messenger/content/messenger.xul chrome://dactyl/content/dactyl.xul
overlay chrome://messenger/content/messenger.xul chrome://muttator/content/muttator.xul
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://muttator/content/compose/liberator.xul
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://muttator/content/compose/dactyl.xul
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://muttator/content/compose/compose.xul

View File

@@ -62,9 +62,9 @@ const Addressbook = Module("addressbook", {
if (addresses.length < 1) {
if (!filter)
liberator.echoerr("Exxx: No contacts", commandline.FORCE_SINGLELINE);
dactyl.echoerr("Exxx: No contacts", commandline.FORCE_SINGLELINE);
else
liberator.echoerr("Exxx: No contacts matching string '" + filter + "'", commandline.FORCE_SINGLELINE);
dactyl.echoerr("Exxx: No contacts matching string '" + filter + "'", commandline.FORCE_SINGLELINE);
return false;
}
@@ -99,9 +99,9 @@ const Addressbook = Module("addressbook", {
displayName = this.generateDisplayName(firstName, lastName);
if (addressbook.add(mailAddr, firstName, lastName, displayName))
liberator.echomsg("Added address: " + displayName + " <" + mailAddr + ">", 1, commandline.FORCE_SINGLELINE);
dactyl.echomsg("Added address: " + displayName + " <" + mailAddr + ">", 1, commandline.FORCE_SINGLELINE);
else
liberator.echoerr("Exxx: Could not add contact `" + mailAddr + "'", commandline.FORCE_SINGLELINE);
dactyl.echoerr("Exxx: Could not add contact `" + mailAddr + "'", commandline.FORCE_SINGLELINE);
},
{
@@ -126,7 +126,7 @@ const Addressbook = Module("addressbook", {
var to = gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor;
}
catch (e) {
liberator.beep();
dactyl.beep();
}
if (!to)

View File

@@ -0,0 +1,4 @@
<!ENTITY dactyl.mainWindow "msgcomposeWindow">
<!ENTITY dactyl.name "muttator">
<!ENTITY dactyl.statusBefore "">
<!ENTITY dactyl.statusAfter "statusText">

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ***** 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://dactyl/skin/dactyl.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "dactyl.dtd" [
<!ENTITY dactyl.content "chrome://dactyl/content/">
]>
<overlay id="dactyl"
xmlns:dactyl="http://vimperator.org/namespaces/liberator"
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">
<script type="application/x-javascript;version=1.8" src="&dactyl.content;dactyl-overlay.js"/>
<window id="&dactyl.mainWindow;">
<keyset id="mainKeyset">
<key id="key_open_vimbar" key=":" oncommand="dactyl.modules.commandline.open(':', '', dactyl.modules.modes.EX);" modifiers=""/>
<key id="key_stop" keycode="VK_ESCAPE" oncommand="dactyl.modules.events.onEscape();"/>
<!-- other keys are handled inside the event loop in events.js -->
</keyset>
<popupset>
<panel id="dactyl-visualbell" dactyl:highlight="Bell"/>
</popupset>
<!--this notifies us also of focus events in the XUL
from: http://developer.mozilla.org/en/docs/XUL_Tutorial:Updating_Commands !-->
<commandset id="onPentadactylFocus"
commandupdater="true"
events="focus"
oncommandupdate="if (dactyl.modules.events != undefined) dactyl.modules.events.onFocusChange(event);"/>
<commandset id="onPentadactylSelect"
commandupdater="true"
events="select"
oncommandupdate="if (dactyl.modules.events != undefined) dactyl.modules.events.onSelectionChange(event);"/>
<!-- As of Firefox 3.1pre, <iframe>.height changes do not seem to have immediate effect,
therefore we need to put them into a <vbox> for which that works just fine -->
<vbox class="dactyl-container" hidden="false" collapsed="true">
<iframe id="dactyl-multiline-output" src="chrome://dactyl/content/buffer.xhtml"
flex="1" hidden="false" collapsed="false"
onclick="dactyl.modules.commandline.onMultilineOutputEvent(event)"/>
</vbox>
<vbox class="dactyl-container" hidden="false" collapsed="true">
<iframe id="dactyl-completions" src="chrome://dactyl/content/buffer.xhtml"
flex="1" hidden="false" collapsed="false"
onclick="dactyl.modules.commandline.onMultilineOutputEvent(event)"/>
</vbox>
<stack orient="horizontal" align="stretch" class="dactyl-container" dactyl:highlight="CmdLine">
<textbox class="plain" id="dactyl-message" flex="1" readonly="true" dactyl:highlight="Normal"/>
<hbox id="dactyl-commandline" hidden="false" collapsed="true" class="dactyl-container" dactyl:highlight="Normal">
<label class="plain" id="dactyl-commandline-prompt" flex="0" crop="end" value="" collapsed="true"/>
<textbox class="plain" id="dactyl-commandline-command" flex="1" type="timed" timeout="100"
oninput="dactyl.modules.commandline.onEvent(event);"
onkeyup="dactyl.modules.commandline.onEvent(event);"
onfocus="dactyl.modules.commandline.onEvent(event);"
onblur="dactyl.modules.commandline.onEvent(event);"/>
</hbox>
</stack>
<vbox class="dactyl-container" hidden="false" collapsed="false">
<textbox id="dactyl-multiline-input" class="plain" flex="1" rows="1" hidden="false" collapsed="true" multiline="true"
onkeypress="dactyl.modules.commandline.onMultilineInputEvent(event);"
oninput="dactyl.modules.commandline.onMultilineInputEvent(event);"
onblur="dactyl.modules.commandline.onMultilineInputEvent(event);"/>
</vbox>
</window>
<statusbar id="status-bar" dactyl:highlight="StatusLine">
<hbox insertbefore="&dactyl.statusBefore;" insertafter="&dactyl.statusAfter;"
id="dactyl-statusline" flex="1" hidden="false" align="center">
<textbox class="plain" id="dactyl-statusline-field-url" readonly="false" flex="1" crop="end"/>
<label class="plain" id="dactyl-statusline-field-inputbuffer" flex="0"/>
<label class="plain" id="dactyl-statusline-field-progress" flex="0"/>
<label class="plain" id="dactyl-statusline-field-tabcount" flex="0"/>
<label class="plain" id="dactyl-statusline-field-bufferposition" flex="0"/>
</hbox>
<!-- just hide them since other elements expect them -->
<statusbarpanel id="statusbar-display" hidden="true"/>
<statusbarpanel id="statusbar-progresspanel" hidden="true"/>
</statusbar>
</overlay>
<!-- vim: set fdm=marker sw=4 ts=4 et: -->

View File

@@ -1,4 +0,0 @@
<!ENTITY liberator.mainWindow "msgcomposeWindow">
<!ENTITY liberator.name "muttator">
<!ENTITY liberator.statusBefore "">
<!ENTITY liberator.statusAfter "statusText">

View File

@@ -1,98 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ***** 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://liberator/skin/liberator.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "liberator.dtd" [
<!ENTITY liberator.content "chrome://liberator/content/">
]>
<overlay id="liberator"
xmlns:liberator="http://vimperator.org/namespaces/liberator"
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">
<script type="application/x-javascript;version=1.8" src="&liberator.content;liberator-overlay.js"/>
<window id="&liberator.mainWindow;">
<keyset id="mainKeyset">
<key id="key_open_vimbar" key=":" oncommand="liberator.modules.commandline.open(':', '', liberator.modules.modes.EX);" modifiers=""/>
<key id="key_stop" keycode="VK_ESCAPE" oncommand="liberator.modules.events.onEscape();"/>
<!-- other keys are handled inside the event loop in events.js -->
</keyset>
<popupset>
<panel id="liberator-visualbell" liberator:highlight="Bell"/>
</popupset>
<!--this notifies us also of focus events in the XUL
from: http://developer.mozilla.org/en/docs/XUL_Tutorial:Updating_Commands !-->
<commandset id="onVimperatorFocus"
commandupdater="true"
events="focus"
oncommandupdate="if (liberator.modules.events != undefined) liberator.modules.events.onFocusChange(event);"/>
<commandset id="onVimperatorSelect"
commandupdater="true"
events="select"
oncommandupdate="if (liberator.modules.events != undefined) liberator.modules.events.onSelectionChange(event);"/>
<!-- As of Firefox 3.1pre, <iframe>.height changes do not seem to have immediate effect,
therefore we need to put them into a <vbox> for which that works just fine -->
<vbox class="liberator-container" hidden="false" collapsed="true">
<iframe id="liberator-multiline-output" src="chrome://liberator/content/buffer.xhtml"
flex="1" hidden="false" collapsed="false"
onclick="liberator.modules.commandline.onMultilineOutputEvent(event)"/>
</vbox>
<vbox class="liberator-container" hidden="false" collapsed="true">
<iframe id="liberator-completions" src="chrome://liberator/content/buffer.xhtml"
flex="1" hidden="false" collapsed="false"
onclick="liberator.modules.commandline.onMultilineOutputEvent(event)"/>
</vbox>
<stack orient="horizontal" align="stretch" class="liberator-container" liberator:highlight="CmdLine">
<textbox class="plain" id="liberator-message" flex="1" readonly="true" liberator:highlight="Normal"/>
<hbox id="liberator-commandline" hidden="false" collapsed="true" class="liberator-container" liberator:highlight="Normal">
<label class="plain" id="liberator-commandline-prompt" flex="0" crop="end" value="" collapsed="true"/>
<textbox class="plain" id="liberator-commandline-command" flex="1" type="timed" timeout="100"
oninput="liberator.modules.commandline.onEvent(event);"
onkeyup="liberator.modules.commandline.onEvent(event);"
onfocus="liberator.modules.commandline.onEvent(event);"
onblur="liberator.modules.commandline.onEvent(event);"/>
</hbox>
</stack>
<vbox class="liberator-container" hidden="false" collapsed="false">
<textbox id="liberator-multiline-input" class="plain" flex="1" rows="1" hidden="false" collapsed="true" multiline="true"
onkeypress="liberator.modules.commandline.onMultilineInputEvent(event);"
oninput="liberator.modules.commandline.onMultilineInputEvent(event);"
onblur="liberator.modules.commandline.onMultilineInputEvent(event);"/>
</vbox>
</window>
<statusbar id="status-bar" liberator:highlight="StatusLine">
<hbox insertbefore="&liberator.statusBefore;" insertafter="&liberator.statusAfter;"
id="liberator-statusline" flex="1" hidden="false" align="center">
<textbox class="plain" id="liberator-statusline-field-url" readonly="false" flex="1" crop="end"/>
<label class="plain" id="liberator-statusline-field-inputbuffer" flex="0"/>
<label class="plain" id="liberator-statusline-field-progress" flex="0"/>
<label class="plain" id="liberator-statusline-field-tabcount" flex="0"/>
<label class="plain" id="liberator-statusline-field-bufferposition" flex="0"/>
</hbox>
<!-- just hide them since other elements expect them -->
<statusbarpanel id="statusbar-display" hidden="true"/>
<statusbarpanel id="statusbar-progresspanel" hidden="true"/>
</statusbar>
</overlay>
<!-- vim: set fdm=marker sw=4 ts=4 et: -->

View File

@@ -12,7 +12,7 @@ const Config = Module("config", ConfigBase, {
/*** required options, no checks done if they really exist, so be careful ***/
name: "Muttator",
hostApplication: "Thunderbird", // TODO: can this be found out otherwise? gBrandBundle.getString("brandShortName");
// Yes, but it will be localized unlike all other strings. So, it's best left until we i18n liberator. --djk
// Yes, but it will be localized unlike all other strings. So, it's best left until we i18n dactyl. --djk
get mainWindowId() this.isComposeWindow ? "msgcomposeWindow" : "messengerWindow",
@@ -94,11 +94,11 @@ const Config = Module("config", ConfigBase, {
focusChange: function (win) {
// we switch to -- MESSAGE -- mode for Muttator, when the main HTML widget gets focus
if (win && win.document instanceof HTMLDocument || liberator.focus instanceof HTMLAnchorElement) {
if (win && win.document instanceof HTMLDocument || dactyl.focus instanceof HTMLAnchorElement) {
if (config.isComposeWindow)
modes.set(modes.INSERT, modes.TEXTAREA);
else if (liberator.mode != modes.MESSAGE)
liberator.mode = modes.MESSAGE;
else if (dactyl.mode != modes.MESSAGE)
dactyl.mode = modes.MESSAGE;
}
},

View File

@@ -0,0 +1,13 @@
<!ENTITY % dactylBranding SYSTEM "chrome://branding/locale/brand.dtd">
%dactylBranding;
<!ENTITY dactyl.mainWindow "messengerWindow">
<!ENTITY dactyl.name "muttator">
<!ENTITY dactyl.idname "muttator">
<!ENTITY dactyl.appname "Muttator">
<!ENTITY dactyl.host "&brandShortName;">
<!ENTITY dactyl.hostbin "thunderbird">
<!ENTITY dactyl.statusBefore "">
<!ENTITY dactyl.statusAfter "statusTextBox">

View File

@@ -1,13 +0,0 @@
<!ENTITY % liberatorBranding SYSTEM "chrome://branding/locale/brand.dtd">
%liberatorBranding;
<!ENTITY liberator.mainWindow "messengerWindow">
<!ENTITY liberator.name "muttator">
<!ENTITY liberator.idname "muttator">
<!ENTITY liberator.appname "Muttator">
<!ENTITY liberator.host "&brandShortName;">
<!ENTITY liberator.hostbin "thunderbird">
<!ENTITY liberator.statusBefore "">
<!ENTITY liberator.statusAfter "statusTextBox">

View File

@@ -71,17 +71,17 @@ const Mail = Module("mail", {
_moveOrCopy: function (copy, destinationFolder, operateOnThread) {
let folders = mail.getFolders(destinationFolder);
if (folders.length == 0)
return void liberator.echoerr("Exxx: No matching folder for " + destinationFolder);
return void dactyl.echoerr("Exxx: No matching folder for " + destinationFolder);
else if (folders.length > 1)
return liberator.echoerr("Exxx: More than one match for " + destinationFolder);
return dactyl.echoerr("Exxx: More than one match for " + destinationFolder);
let count = gDBView.selection.count;
if (!count)
return void liberator.beep();
return void dactyl.beep();
(copy ? MsgCopyMessage : MsgMoveMessage)(folders[0]);
setTimeout(function () {
liberator.echomsg(count + " message(s) " + (copy ? "copied" : "moved") + " to " + folders[0].prettyName, 1);
dactyl.echomsg(count + " message(s) " + (copy ? "copied" : "moved") + " to " + folders[0].prettyName, 1);
}, 100);
},
@@ -115,7 +115,7 @@ const Mail = Module("mail", {
i += direction;
}
if (!folder || count > 0)
liberator.beep();
dactyl.beep();
else
gFolderTreeView.selection.timedSelect(c + folder, 500);
},
@@ -169,7 +169,7 @@ const Mail = Module("mail", {
let url = args.attachments.pop();
let file = io.getFile(url);
if (!file.exists())
return void liberator.echoerr("Exxx: Could not attach file `" + url + "'", commandline.FORCE_SINGLELINE);
return void dactyl.echoerr("Exxx: Could not attach file `" + url + "'", commandline.FORCE_SINGLELINE);
attachment = Cc["@mozilla.org/messengercompose/attachment;1"].createInstance(Ci.nsIMsgAttachment);
attachment.url = "file://" + file.path;
@@ -354,7 +354,7 @@ const Mail = Module("mail", {
}
catch (e) {
msgs = folder.getMessages(msgWindow); // for older thunderbirds
liberator.dump("WARNING: " + folder.prettyName + " failed to getMessages, trying old API");
dactyl.dump("WARNING: " + folder.prettyName + " failed to getMessages, trying old API");
//continue;
}
@@ -376,7 +376,7 @@ const Mail = Module("mail", {
// TODO: finally for the "rest" of the current folder
liberator.beep();
dactyl.beep();
},
setHTML: function (value) {
@@ -403,8 +403,8 @@ const Mail = Module("mail", {
let folder = mail.getFolders(arg, true, true)[count];
if (!folder)
liberator.echoerr("Exxx: Folder \"" + arg + "\" does not exist");
else if (liberator.forceNewTab)
dactyl.echoerr("Exxx: Folder \"" + arg + "\" does not exist");
else if (dactyl.forceNewTab)
MsgOpenNewTabForFolder(folder.URI);
else
SelectFolder(folder.URI);
@@ -435,7 +435,7 @@ const Mail = Module("mail", {
// TODO: is there a better way to check for validity?
if (addresses.some(function (recipient) !(/\S@\S+\.\S/.test(recipient))))
return void liberator.echoerr("Exxx: Invalid e-mail address");
return void dactyl.echoerr("Exxx: Invalid e-mail address");
mail.composeNewMail(mailargs);
},
@@ -499,7 +499,7 @@ const Mail = Module("mail", {
"Open the message in new tab",
function () {
if (gDBView && gDBView.selection.count < 1)
return void liberator.beep();
return void dactyl.beep();
MsgOpenNewTabForMessage();
});
@@ -558,7 +558,7 @@ const Mail = Module("mail", {
let author = gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor.toLowerCase();
mail.selectMessage(function (msg) msg.mime2DecodedAuthor.toLowerCase().indexOf(author) == 0, true, true, false, count);
}
catch (e) { liberator.beep(); }
catch (e) { dactyl.beep(); }
},
{ count: true });
@@ -569,7 +569,7 @@ const Mail = Module("mail", {
let author = gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor.toLowerCase();
mail.selectMessage(function (msg) msg.mime2DecodedAuthor.toLowerCase().indexOf(author) == 0, true, true, true, count);
}
catch (e) { liberator.beep(); }
catch (e) { dactyl.beep(); }
},
{ count: true });
@@ -586,7 +586,7 @@ const Mail = Module("mail", {
commandline.open(":", "mail " + to + " -subject=", modes.EX);
}
catch (e) {
liberator.beep();
dactyl.beep();
}
});
@@ -634,7 +634,7 @@ const Mail = Module("mail", {
if (messenger.canUndo())
messenger.undo(msgWindow);
else
liberator.beep();
dactyl.beep();
});
mappings.add(myModes, ["<C-r>"],
"Redo",
@@ -642,7 +642,7 @@ const Mail = Module("mail", {
if (messenger.canRedo())
messenger.redo(msgWindow);
else
liberator.beep();
dactyl.beep();
});
// GETTING MAIL
@@ -699,7 +699,7 @@ const Mail = Module("mail", {
if (folder)
SelectFolder(folder.URI);
else
liberator.beep();
dactyl.beep();
},
{ count: true });
@@ -789,7 +789,7 @@ const Mail = Module("mail", {
"Label message",
function (arg) {
if (!GetSelectedMessages())
return void liberator.beep();
return void dactyl.beep();
switch (arg) {
case "r": MsgMarkMsgAsRead(); break;
@@ -799,7 +799,7 @@ const Mail = Module("mail", {
case "p": ToggleMessageTagKey(3); break; // Personal
case "t": ToggleMessageTagKey(4); break; // TODO
case "l": ToggleMessageTagKey(5); break; // Later
default: liberator.beep();
default: dactyl.beep();
}
},
{
@@ -811,7 +811,7 @@ const Mail = Module("mail", {
"Mark current folder as read",
function () {
if (mail.currentFolder.isServer)
return liberator.beep();
return dactyl.beep();
mail.currentFolder.markAllMessagesRead(msgWindow);
});
@@ -846,7 +846,7 @@ const Mail = Module("mail", {
let subject = gDBView.hdrForFirstSelectedMessage.mime2DecodedSubject;
util.copyToClipboard(subject, true);
}
catch (e) { liberator.beep(); }
catch (e) { dactyl.beep(); }
});
mappings.add(myModes, ["y"],
@@ -858,7 +858,7 @@ const Mail = Module("mail", {
else
util.copyToClipboard(gDBView.hdrForFirstSelectedMessage.mime2DecodedAuthor, true);
}
catch (e) { liberator.beep(); }
catch (e) { dactyl.beep(); }
});
// RSS specific mappings
@@ -871,7 +871,7 @@ const Mail = Module("mail", {
// TODO: what to do for non-rss message?
}
catch (e) {
liberator.beep();
dactyl.beep();
}
});
},

View File

@@ -14,10 +14,10 @@
sodipodi:version="0.32"
inkscape:version="0.46"
version="1.0"
sodipodi:docbase="/home/maxauthority/code/vimperator"
sodipodi:docbase="/home/maxauthority/code/pentadactyl"
sodipodi:docname="muttator.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/maxauthority/code/vimperator/vimperator.png"
inkscape:export-filename="/home/maxauthority/code/pentadactyl/pentadactyl.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -3,7 +3,7 @@
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2009 Aug 27
" TODO: make this muttator specific - shared liberator config?
" TODO: make this muttator specific - shared dactyl config?
if exists("b:current_syntax")
finish

View File

@@ -9,9 +9,9 @@
<em:creator>Martin Stubenschrott</em:creator>
<em:homepageURL>http://vimperator.org/</em:homepageURL>
<em:iconURL>chrome://muttator/skin/icon.png</em:iconURL>
<em:optionsURL>chrome://liberator/content/preferences.xul</em:optionsURL>
<em:optionsURL>chrome://dactyl/content/preferences.xul</em:optionsURL>
<em:file>
<Description about="urn:mozilla:extension:file:vimperator.jar">
<Description about="urn:mozilla:extension:file:pentadactyl.jar">
<em:package>content/muttator/</em:package>
</Description>
</em:file>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
<!DOCTYPE overlay SYSTEM "chrome://liberator/content/liberator.dtd">
<!DOCTYPE overlay SYSTEM "chrome://dactyl/content/dactyl.dtd">
<overlay
xmlns="http://vimperator.org/namespaces/liberator"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
<!DOCTYPE overlay SYSTEM "chrome://liberator/content/liberator.dtd">
<!DOCTYPE overlay SYSTEM "chrome://dactyl/content/dactyl.dtd">
<overlay
xmlns="http://vimperator.org/namespaces/liberator"
@@ -16,11 +16,11 @@
<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>ShellCmdPost</dt> <dd>Triggered after executing a shell command with <ex>:!</ex><a>cmd</a></dd>
<dt>&liberator.appname;Enter</dt> <dd>Triggered after &liberator.host; starts</dd>
<dt>&liberator.appname;LeavePre</dt><dd>Triggered before exiting &liberator.host;, just before destroying each module</dd>
<dt>&liberator.appname;Leave</dt> <dd>Triggered before exiting &liberator.host;</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>
<dt>FolderLoad</dt> <dd>Triggered after switching folders in &liberator.host;</dd>
<dt>FolderLoad</dt> <dd>Triggered after switching folders in &dactyl.host;</dd>
</dl>
<dl tag="autocommand-args" replace="autocommand-args">

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
<!DOCTYPE overlay SYSTEM "chrome://liberator/content/liberator.dtd">
<!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 &liberator.host;</dd>
<dt>about</dt> <dd>About &dactyl.host;</dd>
<dt>addons</dt> <dd>Manage Add-ons</dd>
<dt>addressbook</dt> <dd>Address book</dd>
<dt>checkupdates</dt> <dd>Check for updates</dd>
@@ -18,7 +18,7 @@
<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>preferences</dt> <dd>Show &liberator.host; preferences dialog</dd>
<dt>preferences</dt> <dd>Show &dactyl.host; preferences dialog</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>

View File

@@ -1,38 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
<?xml-stylesheet type="text/xsl" href="chrome://dactyl/content/help.xsl"?>
<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
<!DOCTYPE document SYSTEM "chrome://dactyl/content/dactyl.dtd">
<document
name="intro"
title="&liberator.appname; Introduction"
title="&dactyl.appname; Introduction"
xmlns="http://vimperator.org/namespaces/liberator"
xmlns:html="http://www.w3.org/1999/xhtml">
<logo/>
<html:p style="text-align: center; font-weight: bold;">
First there was a Navigator, then there was an Explorer.
Later it was time for a Konqueror. Now it's time for an Imperator, the
VIMperator :)
</html:p>
<h1 tag="intro">Introduction</h1>
<link topic="http://vimperator.org">&liberator.appname;</link> is a free browser add-on for &liberator.host;,
<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 &liberator.host; menubar and toolbar are hidden.
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 &liberator.appname; at all, you can uninstall it by typing
<ex>:extdelete &liberator.appname;</ex> or <ex>:extdisable &liberator.appname;</ex> to disable it.
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
@@ -41,21 +35,21 @@ web browser, as key bindings differ according to which mode you are in.
<tags>author donaton sponsor</tags>
<p>
&liberator.appname; was initially written by
&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/&liberator.appname;/Authors">contributors</link>
in the meanwhile. If you appreciate the work on &liberator.appname; and want to
<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/&liberator.appname;/Donors">these
<link topic="http://vimperator.org/trac/wiki/&dactyl.appname;/Donors">these
people</link>
who already did):
</p>
<html:form style="text-align: center;" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="image" src="chrome://liberator/content/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
<input type="image" src="chrome://dactyl/content/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHPwYJKoZIhvcNAQcEoIIHMDCCBywCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBDDJfc+lXLBSAM9XSWv/ebzG/L7PTqYiIXaWVg8pfinDsfYaAcifcgCTuApg4v/VaZIQ/hLODzQu2EvmjGXP0twErA/Q8G5gx0l197PJSyVXb1sLwd1mgOdLF4t0HmDCdEI9z3H6CMhsb3xVwlfpzllSfCIqzlSpx4QtdzEZGzLDELMAkGBSsOAwIaBQAwgbwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI8ZOwn5QkHgaAgZjjtPQxB7Vw2rS7Voap9y+xdVLoczUQ97hw+bOdZLcGykBtfoVjdn76MS51QKjGp1fEmxkqTuQ+Fxv8+OVtHu0QF/qlrhmC3fJBRJ0IFWxKdXS+Wod4615BDaG2X1hzvCL443ffka8XlLSiFTuW43BumQs/O+6Jqsk2hcReP3FIQOvtWMSgGTALnZx7x5c60u/3NSKW5qvyWKCCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA3MDMyMTIyMzI1OFowIwYJKoZIhvcNAQkEMRYEFCirrvlwYVHQiNEEbM6ikfx9+Dm5MA0GCSqGSIb3DQEBAQUABIGAtbsR8GdCdURLziozXLSdtY+zJZUPPeQFXXy2V1S/3ldiN+pRvd4HI7xz8mOY1UaKJZpwZnOosy9MflL1/hbiEtEyQ2Dm/s4jnTcJng/NjLIZu+0NYxXRJhB+zMJubnMMMjzNrGlqI4F2HAB/bCA1eOJ5B83Of3dA4rk/T/8GoSQ=-----END PKCS7-----"/>
</html:form>
@@ -64,7 +58,7 @@ web browser, as key bindings differ according to which mode you are in.
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 &liberator.appname; and the money doesn't hurt
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>
@@ -76,8 +70,8 @@ web browser, as key bindings differ according to which mode you are in.
A quick-start tutorial for new users.
</li>
<li>
<link topic="starting">Starting &liberator.appname;</link>:
How &liberator.appname; starts up, where it reads the config file…
<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>:
@@ -137,12 +131,12 @@ web browser, as key bindings differ according to which mode you are in.
Printing pages.
</li>
<li>
<link topic="gui">&liberator.appname;'s GUI</link>:
Accessing &liberator.host; menus, dialogs and the sidebar.
<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 &liberator.appname; itself.
Changing the styling of content pages and &dactyl.appname; itself.
</li>
<li>
<link topic="message">Error and informational messages</link>:
@@ -177,8 +171,8 @@ or <ex>:help :set</ex>.
<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>~/.vimperatorrc</em> file with syntax highlighting if you install vimperator.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 &liberator.host; keyword bookmarks and search engines</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>
@@ -197,10 +191,10 @@ or <ex>:help :set</ex>.
<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/vimperator">#vimperator</link> IRC channel
<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/&liberator.appname;/Wiki">Wiki</link> for
<link topic="http://vimperator.org/trac/wiki/&liberator.appname;/FAQ">
<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.
@@ -216,41 +210,41 @@ mutt.
<h2 tag="intro">Introduction</h2>
http://vimperator.org/muttator[&liberator.appname;] is a free browser add-on for
&liberator.hostapp;, which makes it look and behave like the http://www.vim.org[Vim]
http://vimperator.org/muttator[&dactyl.appname;] is a free browser add-on for
&dactyl.hostapp;, which makes it look and behave like the http://www.vim.org[Vim]
text editor. It has similar key bindings, and you could call it a modal mail
client, as key bindings differ according to which mode you are in.
|warning| +
Warning:
To provide the most authentic Vim experience, the &liberator.hostapp; menubar and toolbar were hidden. +
To provide the most authentic Vim experience, the &dactyl.hostapp; menubar and toolbar were hidden. +
If you really need them, type: <ex>:set guioptions+=mT</ex> to get them back. +
If you don't like &liberator.appname; at all, you can uninstall it by typing
If you don't like &dactyl.appname; at all, you can uninstall it by typing
<ex>:addons</ex> and remove/disable it. +
If you like it, but can't remember the shortcuts, press <k>F1</k> or
<ex>:help</ex> to get this help window back.
|author| |donation| +
&liberator.appname; was written by mailto:stubenschrott@vimperator.org[Martin Stubenschrott].
If you appreciate my work on &liberator.appname; and want to encourage me working on it
&dactyl.appname; was written by mailto:stubenschrott@vimperator.org[Martin Stubenschrott].
If you appreciate my work on &dactyl.appname; and want to encourage me working on it
more, you can either send me greetings, patches or make a donation:
NOTE: If this link does not work, go to http://vimperator.org/muttator and
click the donation button there, because &liberator.hostapp; seems to have a problem
click the donation button there, because &dactyl.hostapp; seems to have a problem
when this link is inside an e-mail (which this help screen actually is).
<pan><handle/></pan>
Of course as a believer in free open source software, only make a donation
if you really like &liberator.appname; and the money doesn't hurt -- otherwise just use
if you really like &dactyl.appname; and the money doesn't hurt -- otherwise just use
it, recommend it and like it :)
<h2 tag="overview">Help topics</h2>
<ol>
<li>
<link topic="starting">Starting &liberator.appname;</link>:
How &liberator.appname; starts up, where it reads the config file…
<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>:
@@ -310,12 +304,12 @@ it, recommend it and like it :)
Printing pages.
</li>
<li>
<link topic="gui">&liberator.appname;'s GUI</link>:
Accessing &liberator.host; menus, dialogs and the sidebar.
<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 &liberator.appname; itself.
Changing the styling of content pages and &dactyl.appname; itself.
</li>
<li>
<link topic="message">Error and informational messages</link>:
@@ -339,7 +333,7 @@ it, recommend it and like it :)
For now use <ex>:viusage!</ex>, <ex>:exusage!</ex> and <ex>:optionusage!</ex> to find
out about available mappings, commands and options. When in Message mode
(activated by <k>i</k>), most mappings from &liberator.appname; are available.
(activated by <k>i</k>), most mappings from &dactyl.appname; are available.
You can also jump directly to the help of a specific command with
@@ -364,13 +358,13 @@ You can also jump directly to the help of a specific command with
<li>
Ability to <ex>:source</ex> JavaScript files, and to use a
[a]~/.muttatorrc[a] file with syntax highlighting if you install
http://code.google.com/p/vimperator-labs/issues/detail?id=51[muttator.vim]
http://code.google.com/p/pentadactyl-labs/issues/detail?id=51[muttator.vim]
</li>
<li>Count supported for many commands (<em>3</em><key name="C-o"/> will go back 3 messages)</li>
<li>Beep on errors</li>
<li><ex>:map</ex> support (and feedkeys() for script writers)</li>
<li><ex>:time</ex> support for profiling</li>
<li>Many other vimperator features are available when in <tt>-- MESSAGE --</tt> mode</li>
<li>Many other pentadactyl features are available when in <tt>-- MESSAGE --</tt> mode</li>
<li>A comprehensive help file, explaining all commands, mappings and options. </li>
</ul>
@@ -378,14 +372,14 @@ You can also jump directly to the help of a specific command with
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/vimperator">#vimperator</link> IRC channel
<link topic="irc://irc.freenode.net/pentadactyl">#pentadactyl</link> IRC channel
on <link topic="http://www.freenode.net/">Freenode</link> or check the
<link topic="http://code.google.com/p/vimperator-labs/w/list?q=label%3Aproject-muttator">Wiki</link>
<link topic="http://code.google.com/p/pentadactyl-labs/w/list?q=label%3Aproject-muttator">Wiki</link>
for
<link topic="http://code.google.com/p/vimperator-labs/wiki/&liberator.appname;FAQ">
<link topic="http://code.google.com/p/pentadactyl-labs/wiki/&dactyl.appname;FAQ">
frequently asked questions (FAQ)</link>.
Make sure, you have read the
<link topic="http://vimperator-labs.googlecode.com/hg/muttator/TODO">TODO</link>
<link topic="http://pentadactyl-labs.googlecode.com/hg/muttator/TODO">TODO</link>
file first, as we are aware of many things which can be improved when we find
time for it or receive patches.