1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 04:57:59 +01:00

Add some rudimentary extension related commands.

Adds :extadd, :extdelete, :extdisable, :extenable, :extensions.
This commit is contained in:
Doug Kearns
2009-07-07 21:37:41 +10:00
parent 3a904b16d9
commit 4df207e6e5
10 changed files with 292 additions and 43 deletions

View File

@@ -147,6 +147,43 @@ const liberator = (function () //{{{
liberator.help(tag);
}
function getExtension(name) getExtensions().filter(function (e) e.name == name)[0]
// TODO: maybe make this a property
function getExtensions()
{
const rdf = services.get("rdf");
const extensionManager = services.get("extensionManager");
let extensions = extensionManager.getItemList(Ci.nsIUpdateItem.TYPE_EXTENSION, {});
function getRdfProperty(item, property)
{
let resource = rdf.GetResource("urn:mozilla:item:" + item.id);
let value = "";
if (resource)
{
let target = extensionManager.datasource.GetTarget(resource,
rdf.GetResource("http://www.mozilla.org/2004/em-rdf#" + property), true);
if (target && target instanceof Ci.nsIRDFLiteral)
value = target.Value;
}
return value;
}
//const Extension = new Struct("id", "name", "description", "icon", "enabled", "version");
return [{
id: e.id,
name: e.name,
description: getRdfProperty(e, "description"),
icon: e.iconURL,
enabled: getRdfProperty(e, "isDisabled") != "true",
version: e.version
} for ([,e] in Iterator(extensions))];
}
/////////////////////////////////////////////////////////////////////////////}}}
////////////////////// OPTIONS /////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////{{{
@@ -385,6 +422,107 @@ const liberator = (function () //{{{
}
});
commands.add(["exta[dd]"],
"Install an extension",
function (args)
{
let file = io.getFile(args[0]);
if (file.exists() && file.isReadable() && file.isFile())
services.get("extensionManager").installItemFromFile(file, "app-profile");
else
{
if (file.exists() && file.isDirectory())
liberator.echomsg("Cannot install a directory: \"" + file.path + "\"", 0);
liberator.echoerr("E484: Can't open file " + file.path);
}
},
{
argCount: "1",
completer: function (context) {
context.filters.push(function ({ item: f }) f.isDirectory() || /\.xpi$/.test(f.leafName));
completion.file(context);
}
});
// TODO: handle extension dependencies
[
{
name: "extde[lete]",
description: "Uninstall an extension",
action: "uninstallItem"
},
{
name: "exte[nable]",
description: "Enable an extension",
action: "enableItem"
},
{
name: "extd[isable]",
description: "Disable an extension",
action: "disableItem"
}
].forEach(function (command) {
commands.add([command.name],
command.description,
function (args)
{
let name = args[0];
function action(e) { services.get("extensionManager")[command.action](e.id); };
if (args.bang)
getExtensions().forEach(function (e) { action(e); });
else
{
if (!name)
return void liberator.echoerr("E471: Argument required"); // XXX
let extension = getExtension(name);
if (extension)
action(extension);
else
liberator.echoerr("E474: Invalid argument");
}
},
{
argCount: "?", // FIXME: should be "1"
bang: true,
completer: function (context) completion.extension(context)
});
});
// TODO: maybe indicate pending status too?
commands.add(["extens[ions]"],
"List available extensions",
function (args)
{
let filter = args[0] || "";
let extensions = getExtensions().filter(function (e) e.name.indexOf(filter) >= 0);
if (extensions.length > 0)
{
let list = template.tabular(
["Name", "Version", "Status", "Description"], [],
([template.icon(e, e.name),
e.version,
e.enabled ? <span style="color: blue;">enabled</span>
: <span style="color: red;">disabled</span>,
e.description] for ([,e] in Iterator(extensions)))
);
commandline.echo(list, commandline.HL_NORMAL, commandline.FORCE_MULTILINE);
}
else
{
if (filter)
liberator.echoerr("Exxx: No extension matching \"" + filter + "\"");
else
liberator.echoerr("No extensions installed");
}
},
{ argCount: "?" });
commands.add(["exu[sage]"],
"List all Ex commands with a short description",
function (args) { showHelpIndex("ex-cmd-index", commands, args.bang); },
@@ -609,6 +747,13 @@ const liberator = (function () //{{{
context.completions = config.dialogs;
};
completion.extension = function extension(context) {
context.title = ["Extension"];
context.anchored = false;
context.keys = { text: "name", description: "description", icon: "icon" },
context.completions = getExtensions();
};
completion.help = function help(context) {
context.title = ["Help"];
context.anchored = false;

View File

@@ -99,6 +99,7 @@ function Services()
self.add("io", "@mozilla.org/network/io-service;1", Ci.nsIIOService);
self.add("pref", "@mozilla.org/preferences-service;1", [Ci.nsIPrefService, Ci.nsIPrefBranch, Ci.nsIPrefBranch2]);
self.add("profile", "@mozilla.org/toolkit/profile-service;1", Ci.nsIToolkitProfileService);
self.add("rdf", "@mozilla.org/rdf/rdf-service;1", Ci.nsIRDFService);
self.add("sessionStore", "@mozilla.org/browser/sessionstore;1", Ci.nsISessionStore);
self.add("subscriptLoader", "@mozilla.org/moz/jssubscript-loader;1", Ci.mozIJSSubScriptLoader);
self.add("threadManager", "@mozilla.org/thread-manager;1", Ci.nsIThreadManager);

View File

@@ -49,10 +49,7 @@ function Addressbook() //{{{
return "";
}
function getDirectoryFromURI(uri)
{
return rdf.GetResource(uri).QueryInterface(Ci.nsIAbDirectory);
}
function getDirectoryFromURI(uri) services.get("rdf").GetResource(uri).QueryInterface(Ci.nsIAbDirectory)
/////////////////////////////////////////////////////////////////////////////}}}
////////////////////// OPTIONS /////////////////////////////////////////////////

View File

@@ -12,7 +12,10 @@
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>. - Is this still true, or going to be true? --djk
and <C-A> are equivalent, to map the uppercase character use <C-S-A>.
* add extension related commands - :extadd, :extdelete, :extdisable,
:extenable, :extensions
* add '-javascript' flag to :autocommand
* add 'private' - enter private browsing mode, matching 'PrivateMode'
autocommand

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: VIMperator configuration file
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2009 Jul 1
" Last Change: 2009 Jul 6
if exists("b:current_syntax")
finish
@@ -22,15 +22,16 @@ syn keyword vimperatorCommand ab[breviate] ab[clear] addo[ns] bN[ext] b[uffer] b
\ 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] e[dit] ec[ho] echoe[rr] echom[sg] em[enu] exe[cute]
\ exu[sage] files fini[sh] fo[rward] frameo[nly] fw h[elp] 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] let loadplugins lpl ls ma[rk] macros map mapc[lear]
\ marks mes[sages] mkv[imperatorrc] nm[ap] nmapc[lear] nno[remap] no[remap] noh[lsearch] norm[al] nu[nmap] o[pen]
\ optionu[sage] messc[lear] pa[geinfo] pagest[yle] pas pc[lose] 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] 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] tN[ext] t[open] tab tabN[ext] tabc[lose] tabd[o]
\ tabdu[plicate] tabde[tach] tabe[dit] tabfir[st] tabl[ast] tabm[ove] tabn[ext] tabnew tabo[nly] tabopen tabp[revious]
\ tabr[ewind] tabs time tn[ext] tp[revious] u[ndo] una[bbreviate] undoa[ll] unl[et] unm[ap] ve[rsion] vie[wsource] viu[sage]
\ vm[ap] vmap[clear] vno[remap] vu[nmap] w[rite] wc[lose] win[open] winc[lose] wine[dit] wo[pen] wq wqa[ll] xa[ll] zo[om]
\ exta[dd] extde[lete] extd[isable] exte[nable] extens[ions] exu[sage] files fini[sh] fo[rward] frameo[nly] fw h[elp]
\ 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] let loadplugins lpl ls ma[rk] macros map mapc[lear] marks mes[sages] mkv[imperatorrc] nm[ap] nmapc[lear] nno[remap]
\ no[remap] noh[lsearch] norm[al] nu[nmap] o[pen] optionu[sage] messc[lear] pa[geinfo] pagest[yle] pas pc[lose] 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]
\ 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] tN[ext] t[open] tab tabN[ext] tabc[lose] tabd[o] tabdu[plicate] tabde[tach] tabe[dit] tabfir[st] tabl[ast] tabm[ove]
\ tabn[ext] tabnew tabo[nly] tabopen tabp[revious] tabr[ewind] tabs time tn[ext] tp[revious] u[ndo] una[bbreviate] undoa[ll]
\ unl[et] unm[ap] ve[rsion] vie[wsource] viu[sage] vm[ap] vmap[clear] vno[remap] vu[nmap] w[rite] wc[lose] win[open]
\ winc[lose] wine[dit] wo[pen] wq wqa[ll] xa[ll] zo[om]
\ contained
syn match vimperatorCommand "!" contained

View File

@@ -5,6 +5,8 @@ Ex and Normal mode commands there may be times when directly accessing the GUI
is required. There are commands for accessing the menu system, standard dialogs
and the sidebar.
section:Menus[menu]
|:emenu| +
||:emenu {menu}||
________________________________________________________________________________
@@ -14,6 +16,7 @@ hierarchical path to the menu item with each submenu separated by a period.
E.g. [c]:emenu File.Open File...[c]
________________________________________________________________________________
section:Dialogs[dialogs]
|:addo| |:addons| +
||:addo[ns]||
@@ -69,6 +72,49 @@ Show progress of current downloads. Open the original Firefox download dialog
in a new tab. Here, downloads can be paused, canceled and resumed.
________________________________________________________________________________
section:Add-ons[extensions,add-ons]
|:exta| |:extadd| +
||:exta[dd] {file}||
________________________________________________________________________________
Install an extension. {file} is an extension XPInstall file (*.xpi).
________________________________________________________________________________
|:extde| |:extdelete| +
||:extde[lete] {extension}|| +
||:extde[lete]!||
________________________________________________________________________________
Uninstall an extension. {extension} is the extension's name. When [!] is given
all extensions are uninstalled.
________________________________________________________________________________
|:extd| |:extdisable| +
||:extd[isable] {extension}|| +
||:extd[isable]!||
________________________________________________________________________________
Disable an extension. {extension} is the extension's name. When [!] is given
all extensions are disabled.
________________________________________________________________________________
|:exte| |:extenable| +
||:exte[nable] {extension}|| +
||:exte[nable]!||
________________________________________________________________________________
Enable an extension. {extension} is the extension's name. When [!] is given all
extensions are enabled.
________________________________________________________________________________
|:extens| |:extensions| +
||:extens[ions]||
________________________________________________________________________________
List all installed extensions.
________________________________________________________________________________
section:Sidebar[sidebar]
|:sbcl| |:sbclose| +
||:sbcl[ose]||

View File

@@ -182,10 +182,15 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:echomsg[c]|| Echo the expression as an informational message +
||[c]:emenu[c]|| Execute the specified menu item from the command line +
||[c]:execute[c]|| Execute the argument as an Ex command +
||[c]:extadd[c]|| Install an extensions +
||[c]:extdelete[c]||
||[c]:extdisable[c]||
||[c]:extenable[c]||
||[c]:extensions[c]|| List all installed extensions +
||[c]:exusage[c]|| List all Ex commands with a short description +
||[c]:finish[c]|| Stop sourcing a script file +
||[c]:frameonly[c]|| Show only the current frame's page +
||[c]:forward[c]|| Go forward in the browser history +
||[c]:frameonly[c]|| Show only the current frame's page +
||[c]:hardcopy[c]|| Print current document +
||[c]:help[c]|| Display help +
||[c]:highlight[c]|| Style Vimperator +
@@ -236,13 +241,13 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:setlocal[c]|| Set local option +
||[c]:sidebar[c]|| Open the sidebar window +
||[c]:silent[c]|| Execute a command silently +
||[c]:style[c]|| Style Vimperator and web sites +
||[c]:source[c]|| Read Ex commands from a file +
||[c]:stop[c]|| Stop loading the current web page +
||[c]:stopall[c]|| Stop loading all tab pages +
||[c]:style[c]|| Style Vimperator and web sites +
||[c]:tab[c]|| Execute a command and tell it to output in a new tab +
||[c]:tabdo[c]|| Execute a command in each tab +
||[c]:tabdetach[c]|| Detach current tab to its own window +
||[c]:tabdo[c]|| Execute a command in each tab +
||[c]:tabduplicate[c]|| Duplicate current tab +
||[c]:tablast[c]|| Switch to the last tab +
||[c]:tabmove[c]|| Move the current tab after tab N +

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: xulmus configuration file
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2009 Jul 1
" Last Change: 2009 Jul 6
" TODO: make this xulmus specific
@@ -24,14 +24,15 @@ syn keyword xulmusCommand ab[breviate] ab[clear] addo[ns] bN[ext] b[uffer] ba[ck
\ bmarks bn[ext] bp[revious] br[ewind] 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] e[dit] ec[ho] echoe[rr] echom[sg] em[enu] exe[cute]
\ exu[sage] files fini[sh] fo[rward] fw h[elp] 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] let loadplugins lpl ls ma[rk] macros map mapc[lear] marks mes[sages]
\ mkv[imperatorrc] no[remap] noh[lsearch] norm[al] o[pen] optionu[sage] pa[geinfo] pagest[yle] pc[lose] 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] sav[eas] sb[ar]
\ sb[open] sbcl[ose] scrip[tnames] se[t] setg[lobal] setl[ocal] sideb[ar] so[urce] st[op] sty[le] tN[ext] t[open] tab
\ tabN[ext] tabc[lose] tabdu[plicate] tabde[tach] tabe[dit] tabfir[st] tabl[ast] tabm[ove] tabn[ext] tabnew tabo[nly] tabopen
\ tabp[revious] tabr[ewind] tabs time tn[ext] tp[revious] u[ndo] una[bbreviate] undoa[ll] unl[et] unm[ap] ve[rsion]
\ vie[wsource] viu[sage] w[rite] wc[lose] win[open] winc[lose] wine[dit] wo[pen] wq wqa[ll] xa[ll] zo[om]
\ exta[dd] extde[lete] extd[isable] exte[nable] extens[ions] exu[sage] files fini[sh] fo[rward] fw h[elp] 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] let
\ loadplugins lpl ls ma[rk] macros map mapc[lear] marks mes[sages] mkv[imperatorrc] no[remap] noh[lsearch] norm[al] o[pen]
\ optionu[sage] pa[geinfo] pagest[yle] pc[lose] 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] sav[eas] sb[ar] sb[open] sbcl[ose] scrip[tnames] se[t] setg[lobal]
\ setl[ocal] sideb[ar] so[urce] st[op] sty[le] tN[ext] t[open] tab tabN[ext] tabc[lose] tabdu[plicate] tabde[tach] tabe[dit]
\ tabfir[st] tabl[ast] tabm[ove] tabn[ext] tabnew tabo[nly] tabopen tabp[revious] tabr[ewind] tabs time tn[ext] tp[revious]
\ u[ndo] una[bbreviate] undoa[ll] unl[et] unm[ap] ve[rsion] vie[wsource] viu[sage] w[rite] wc[lose] win[open] winc[lose]
\ wine[dit] wo[pen] wq wqa[ll] xa[ll] zo[om]
\ contained
syn match xulmusCommand "!" contained

View File

@@ -5,6 +5,8 @@ Ex and Normal mode commands there may be times when directly accessing the GUI
is required. There are commands for accessing the menu system, standard dialogs
and the sidebar.
section:Menus[menu]
|:emenu| +
||:emenu {menu}||
________________________________________________________________________________
@@ -14,6 +16,7 @@ hierarchical path to the menu item with each submenu separated by a period.
E.g. [c]:emenu File.Open File...[c]
________________________________________________________________________________
section:Dialogs[dialogs]
|:addo| |:addons| +
||:addo[ns]||
@@ -65,6 +68,49 @@ Show progress of current downloads. Open the original Songbird download dialog
in a new tab. Here, downloads can be paused, canceled and resumed.
________________________________________________________________________________
section:Add-ons[extensions,add-ons]
|:exta| |:extadd| +
||:exta[dd] {file}||
________________________________________________________________________________
Install an extension. {file} is an extension XPInstall file (*.xpi).
________________________________________________________________________________
|:extde| |:extdelete| +
||:extde[lete] {extension}|| +
||:extde[lete]!||
________________________________________________________________________________
Uninstall an extension. {extension} is the extension's name. When [!] is given
all extensions are uninstalled.
________________________________________________________________________________
|:extd| |:extdisable| +
||:extd[isable] {extension}|| +
||:extd[isable]!||
________________________________________________________________________________
Disable an extension. {extension} is the extension's name. When [!] is given
all extensions are disabled.
________________________________________________________________________________
|:exte| |:extenable| +
||:exte[nable] {extension}|| +
||:exte[nable]!||
________________________________________________________________________________
Enable an extension. {extension} is the extension's name. When [!] is given all
extensions are enabled.
________________________________________________________________________________
|:extens| |:extensions| +
||:extens[ions]||
________________________________________________________________________________
List all installed extensions.
________________________________________________________________________________
section:Sidebar[sidebar]
|:dpcl| |:dpclose| +
||:dpcl[ose] {pane}||

View File

@@ -180,18 +180,6 @@ section:Command-line{nbsp}editing[ex-edit-index]
section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:filter[c]|| Filter and show the tracks as a view +
||[c]:load[c]|| Load a playlist +
||[c]:mediaview[c]|| Change the media view +
||[c]:playerplay[c]|| Play the current track +
||[c]:playerprev[c]|| Play the previous track +
||[c]:playernext[c]|| Play the next track +
||[c]:playerpause[c]|| Pause/unpause the current track +
||[c]:playerstop[c]|| Stop playing the current track +
||[c]:queue[c]|| Queue tracks by artist/album/track +
||[c]:seek[c]|| Seek to an absolute or relative position in a track +
||[c]:volume[c]|| Set the player volume +
||[c]:![c]|| Run a command +
||[c]:abbreviate[c]|| Abbreviate a key sequence +
||[c]:abclear[c]|| Remove all abbreviations +
@@ -222,20 +210,26 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:delqmarks[c]|| Delete the specified QuickMarks +
||[c]:delstyle[c]|| Delete any matching styles +
||[c]:dialog[c]|| Open a Songbird dialog +
||[c]:displaypane[c]|| Open the specified display pane +
||[c]:doautoall[c]|| Apply the autocommands matching the specified URL to all buffers +
||[c]:doautocmd[c]|| Apply the autocommands matching the specified URL to the current buffer +
||[c]:downloads[c]|| Show progress of current downloads +
||[c]:displaypane[c]|| Open the specified display pane +
||[c]:dpclose[c]|| Close the specified display pane +
||[c]:echo[c]|| Echo the expression +
||[c]:echoerr[c]|| Echo the expression as an error message +
||[c]:echomsg[c]|| Echo the expression as an informational message +
||[c]:emenu[c]|| Execute the specified menu item from the command line +
||[c]:execute[c]|| Execute the argument as an Ex command +
||[c]:extadd[c]|| Install an extensions +
||[c]:extdelete[c]||
||[c]:extdisable[c]||
||[c]:extenable[c]||
||[c]:extensions[c]|| List all installed extensions +
||[c]:exusage[c]|| List all Ex commands with a short description +
||[c]:filter[c]|| Filter and show the tracks as a view +
||[c]:finish[c]|| Stop sourcing a script file +
||[c]:frameonly[c]|| Show only the current frame's page +
||[c]:forward[c]|| Go forward in the browser history +
||[c]:frameonly[c]|| Show only the current frame's page +
||[c]:hardcopy[c]|| Print current document +
||[c]:help[c]|| Display help +
||[c]:highlight[c]|| Style Xulmus +
@@ -250,12 +244,14 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:javascript[c]|| Run a JavaScript command through eval() +
||[c]:jumps[c]|| Show jumplist +
||[c]:let[c]|| Set or list a variable +
||[c]:load[c]|| Load a playlist +
||[c]:loadplugins[c]|| Immediately load all unloaded plugins +
||[c]:macros[c]|| List all macros +
||[c]:map[c]|| Map a key sequence +
||[c]:mapclear[c]|| Remove all mappings +
||[c]:mark[c]|| Mark current location within the web page +
||[c]:marks[c]|| Show all location marks of current web page +
||[c]:mediaview[c]|| Change the media view +
||[c]:messages[c]|| Display previously given messages +
||[c]:messclear[c]|| Clear the message history +
||[c]:mkxulmusrc[c]|| Write current key mappings and changed options to the config file +
@@ -267,10 +263,16 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:pageinfo[c]|| Show various page information +
||[c]:pagestyle[c]|| Select the author style sheet to apply +
||[c]:play[c]|| Replay a recorded macro +
||[c]:playernext[c]|| Play the next track +
||[c]:playerpause[c]|| Pause/unpause the current track +
||[c]:playerplay[c]|| Play the current track +
||[c]:playerprev[c]|| Play the previous track +
||[c]:playerstop[c]|| Stop playing the current track +
||[c]:preferences[c]|| Show Songbird preferences dialog +
||[c]:pwd[c]|| Print the current directory name +
||[c]:qmark[c]|| Mark a URL with a letter for quick access +
||[c]:qmarks[c]|| Show all QuickMarks +
||[c]:queue[c]|| Queue tracks by artist/album/track +
||[c]:quit[c]|| Quit current tab +
||[c]:quitall[c]|| Quit Xulmus +
||[c]:redraw[c]|| Redraw the screen +
@@ -280,17 +282,18 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:runtime[c]|| Source the specified file from each directory in 'runtimepath' +
||[c]:saveas[c]|| Save current document to disk +
||[c]:scriptnames[c]|| List all sourced script names +
||[c]:seek[c]|| Seek to an absolute or relative position in a track +
||[c]:set[c]|| Set an option +
||[c]:setglobal[c]|| Set global option +
||[c]:setlocal[c]|| Set local option +
||[c]:silent[c]|| Execute a command silently +
||[c]:style[c]|| Style Xulmus and web sites +
||[c]:source[c]|| Read Ex commands from a file +
||[c]:stop[c]|| Stop loading the current web page +
||[c]:stopall[c]|| Stop loading all tab pages +
||[c]:style[c]|| Style Xulmus and web sites +
||[c]:tab[c]|| Execute a command and tell it to output in a new tab +
||[c]:tabdo[c]|| Execute a command in each tab +
||[c]:tabdetach[c]|| Detach current tab to its own window +
||[c]:tabdo[c]|| Execute a command in each tab +
||[c]:tabduplicate[c]|| Duplicate current tab +
||[c]:tablast[c]|| Switch to the last tab +
||[c]:tabmove[c]|| Move the current tab after tab N +
@@ -308,6 +311,7 @@ section:Ex{nbsp}commands[ex-cmd-index,:index]
||[c]:version[c]|| Show version information +
||[c]:viewsource[c]|| View source code of current document +
||[c]:viusage[c]|| List all mappings with a short description +
||[c]:volume[c]|| Set the player volume +
||[c]:winclose[c]|| Close window +
||[c]:winopen[c]|| Open one or more URLs in a new window +
||[c]:wqall[c]|| Save the session and quit +