<?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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.10" />
<title>GNOME-EXTENSIONS(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */

/* Default font. */
body {
  font-family: Georgia,serif;
}

/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
  font-family: Arial,Helvetica,sans-serif;
}

body {
  margin: 1em 5% 1em 5%;
}

a {
  color: blue;
  text-decoration: underline;
}
a:visited {
  color: fuchsia;
}

em {
  font-style: italic;
  color: navy;
}

strong {
  font-weight: bold;
  color: #083194;
}

h1, h2, h3, h4, h5, h6 {
  color: #527bbd;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}

h1, h2, h3 {
  border-bottom: 2px solid silver;
}
h2 {
  padding-top: 0.5em;
}
h3 {
  float: left;
}
h3 + * {
  clear: left;
}
h5 {
  font-size: 1.0em;
}

div.sectionbody {
  margin-left: 0;
}

hr {
  border: 1px solid silver;
}

p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

ul, ol, li > p {
  margin-top: 0;
}
ul > li     { color: #aaa; }
ul > li > * { color: black; }

.monospaced, code, pre {
  font-family: "Courier New", Courier, monospace;
  font-size: inherit;
  color: navy;
  padding: 0;
  margin: 0;
}
pre {
  white-space: pre-wrap;
}

#author {
  color: #527bbd;
  font-weight: bold;
  font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}

#footer {
  font-size: small;
  border-top: 2px solid silver;
  padding-top: 0.5em;
  margin-top: 4.0em;
}
#footer-text {
  float: left;
  padding-bottom: 0.5em;
}
#footer-badges {
  float: right;
  padding-bottom: 0.5em;
}

#preamble {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
div.admonitionblock {
  margin-top: 2.0em;
  margin-bottom: 2.0em;
  margin-right: 10%;
  color: #606060;
}

div.content { /* Block element content. */
  padding: 0;
}

/* Block element titles. */
div.title, caption.title {
  color: #527bbd;
  font-weight: bold;
  text-align: left;
  margin-top: 1.0em;
  margin-bottom: 0.5em;
}
div.title + * {
  margin-top: 0;
}

td div.title:first-child {
  margin-top: 0.0em;
}
div.content div.title:first-child {
  margin-top: 0.0em;
}
div.content + div.title {
  margin-top: 0.0em;
}

div.sidebarblock > div.content {
  background: #ffffee;
  border: 1px solid #dddddd;
  border-left: 4px solid #f0f0f0;
  padding: 0.5em;
}

div.listingblock > div.content {
  border: 1px solid #dddddd;
  border-left: 5px solid #f0f0f0;
  background: #f8f8f8;
  padding: 0.5em;
}

div.quoteblock, div.verseblock {
  padding-left: 1.0em;
  margin-left: 1.0em;
  margin-right: 10%;
  border-left: 5px solid #f0f0f0;
  color: #888;
}

div.quoteblock > div.attribution {
  padding-top: 0.5em;
  text-align: right;
}

div.verseblock > pre.content {
  font-family: inherit;
  font-size: inherit;
}
div.verseblock > div.attribution {
  padding-top: 0.75em;
  text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
  text-align: left;
}

div.admonitionblock .icon {
  vertical-align: top;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: underline;
  color: #527bbd;
  padding-right: 0.5em;
}
div.admonitionblock td.content {
  padding-left: 0.5em;
  border-left: 3px solid #dddddd;
}

div.exampleblock > div.content {
  border-left: 3px solid #dddddd;
  padding-left: 0.5em;
}

div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }

dl {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
dt {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-style: normal;
  color: navy;
}
dd > *:first-child {
  margin-top: 0.1em;
}

ul, ol {
    list-style-position: outside;
}
ol.arabic {
  list-style-type: decimal;
}
ol.loweralpha {
  list-style-type: lower-alpha;
}
ol.upperalpha {
  list-style-type: upper-alpha;
}
ol.lowerroman {
  list-style-type: lower-roman;
}
ol.upperroman {
  list-style-type: upper-roman;
}

div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
  margin-top: 0.1em;
  margin-bottom: 0.1em;
}

tfoot {
  font-weight: bold;
}
td > div.verse {
  white-space: pre;
}

div.hdlist {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
div.hdlist tr {
  padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
  font-weight: bold;
}
td.hdlist1 {
  vertical-align: top;
  font-style: normal;
  padding-right: 0.8em;
  color: navy;
}
td.hdlist2 {
  vertical-align: top;
}
div.hdlist.compact tr {
  margin: 0;
  padding-bottom: 0;
}

.comment {
  background: yellow;
}

.footnote, .footnoteref {
  font-size: 0.8em;
}

span.footnote, span.footnoteref {
  vertical-align: super;
}

#footnotes {
  margin: 20px 0 20px 0;
  padding: 7px 0 0 0;
}

#footnotes div.footnote {
  margin: 0 0 5px 0;
}

#footnotes hr {
  border: none;
  border-top: 1px solid silver;
  height: 1px;
  text-align: left;
  margin-left: 0;
  width: 20%;
  min-width: 100px;
}

div.colist td {
  padding-right: 0.5em;
  padding-bottom: 0.3em;
  vertical-align: top;
}
div.colist td img {
  margin-top: 0.3em;
}

@media print {
  #footer-badges { display: none; }
}

#toc {
  margin-bottom: 2.5em;
}

#toctitle {
  color: #527bbd;
  font-size: 1.1em;
  font-weight: bold;
  margin-top: 1.0em;
  margin-bottom: 0.1em;
}

div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  margin-top: 0;
  margin-bottom: 0;
}
div.toclevel2 {
  margin-left: 2em;
  font-size: 0.9em;
}
div.toclevel3 {
  margin-left: 4em;
  font-size: 0.9em;
}
div.toclevel4 {
  margin-left: 6em;
  font-size: 0.9em;
}

span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }

span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }

span.big { font-size: 2em; }
span.small { font-size: 0.6em; }

span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }

div.unbreakable { page-break-inside: avoid; }


/*
 * xhtml11 specific
 *
 * */

div.tableblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
div.tableblock > table {
  border: 3px solid #527bbd;
}
thead, p.table.header {
  font-weight: bold;
  color: #527bbd;
}
p.table {
  margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
  border-style: none;
}
div.tableblock > table[frame="hsides"] {
  border-left-style: none;
  border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
  border-top-style: none;
  border-bottom-style: none;
}


/*
 * html5 specific
 *
 * */

table.tableblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
thead, p.tableblock.header {
  font-weight: bold;
  color: #527bbd;
}
p.tableblock {
  margin-top: 0;
}
table.tableblock {
  border-width: 3px;
  border-spacing: 0px;
  border-style: solid;
  border-color: #527bbd;
  border-collapse: collapse;
}
th.tableblock, td.tableblock {
  border-width: 1px;
  padding: 4px;
  border-style: solid;
  border-color: #527bbd;
}

table.tableblock.frame-topbot {
  border-left-style: hidden;
  border-right-style: hidden;
}
table.tableblock.frame-sides {
  border-top-style: hidden;
  border-bottom-style: hidden;
}
table.tableblock.frame-none {
  border-style: hidden;
}

th.tableblock.halign-left, td.tableblock.halign-left {
  text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
  text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
  text-align: right;
}

th.tableblock.valign-top, td.tableblock.valign-top {
  vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
  vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
  vertical-align: bottom;
}


/*
 * manpage specific
 *
 * */

body.manpage h1 {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  border-top: 2px solid silver;
  border-bottom: 2px solid silver;
}
body.manpage h2 {
  border-style: none;
}
body.manpage div.sectionbody {
  margin-left: 3em;
}

@media print {
  body.manpage div#toc { display: none; }
}


</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = {  // Namespace.

/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////

/* Author: Mihai Bazon, September 2002
 * http://students.infoiasi.ro/~mishoo
 *
 * Table Of Content generator
 * Version: 0.4
 *
 * Feel free to use this script under the terms of the GNU General Public
 * License, as long as you do not remove or alter this notice.
 */

 /* modified by Troy D. Hanson, September 2006. License: GPL */
 /* modified by Stuart Rackham, 2006, 2009. License: GPL */

// toclevels = 1..4.
toc: function (toclevels) {

  function getText(el) {
    var text = "";
    for (var i = el.firstChild; i != null; i = i.nextSibling) {
      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
        text += i.data;
      else if (i.firstChild != null)
        text += getText(i);
    }
    return text;
  }

  function TocEntry(el, text, toclevel) {
    this.element = el;
    this.text = text;
    this.toclevel = toclevel;
  }

  function tocEntries(el, toclevels) {
    var result = new Array;
    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
    // Function that scans the DOM tree for header elements (the DOM2
    // nodeIterator API would be a better technique but not supported by all
    // browsers).
    var iterate = function (el) {
      for (var i = el.firstChild; i != null; i = i.nextSibling) {
        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
          var mo = re.exec(i.tagName);
          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
          }
          iterate(i);
        }
      }
    }
    iterate(el);
    return result;
  }

  var toc = document.getElementById("toc");
  if (!toc) {
    return;
  }

  // Delete existing TOC entries in case we're reloading the TOC.
  var tocEntriesToRemove = [];
  var i;
  for (i = 0; i < toc.childNodes.length; i++) {
    var entry = toc.childNodes[i];
    if (entry.nodeName.toLowerCase() == 'div'
     && entry.getAttribute("class")
     && entry.getAttribute("class").match(/^toclevel/))
      tocEntriesToRemove.push(entry);
  }
  for (i = 0; i < tocEntriesToRemove.length; i++) {
    toc.removeChild(tocEntriesToRemove[i]);
  }

  // Rebuild TOC entries.
  var entries = tocEntries(document.getElementById("content"), toclevels);
  for (var i = 0; i < entries.length; ++i) {
    var entry = entries[i];
    if (entry.element.id == "")
      entry.element.id = "_toc_" + i;
    var a = document.createElement("a");
    a.href = "#" + entry.element.id;
    a.appendChild(document.createTextNode(entry.text));
    var div = document.createElement("div");
    div.appendChild(a);
    div.className = "toclevel" + entry.toclevel;
    toc.appendChild(div);
  }
  if (entries.length == 0)
    toc.parentNode.removeChild(toc);
},


/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////

/* Based on footnote generation code from:
 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
 */

footnotes: function () {
  // Delete existing footnote entries in case we're reloading the footnodes.
  var i;
  var noteholder = document.getElementById("footnotes");
  if (!noteholder) {
    return;
  }
  var entriesToRemove = [];
  for (i = 0; i < noteholder.childNodes.length; i++) {
    var entry = noteholder.childNodes[i];
    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
      entriesToRemove.push(entry);
  }
  for (i = 0; i < entriesToRemove.length; i++) {
    noteholder.removeChild(entriesToRemove[i]);
  }

  // Rebuild footnote entries.
  var cont = document.getElementById("content");
  var spans = cont.getElementsByTagName("span");
  var refs = {};
  var n = 0;
  for (i=0; i<spans.length; i++) {
    if (spans[i].className == "footnote") {
      n++;
      var note = spans[i].getAttribute("data-note");
      if (!note) {
        // Use [\s\S] in place of . so multi-line matches work.
        // Because JavaScript has no s (dotall) regex flag.
        note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
        spans[i].innerHTML =
          "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
          "' title='View footnote' class='footnote'>" + n + "</a>]";
        spans[i].setAttribute("data-note", note);
      }
      noteholder.innerHTML +=
        "<div class='footnote' id='_footnote_" + n + "'>" +
        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
        n + "</a>. " + note + "</div>";
      var id =spans[i].getAttribute("id");
      if (id != null) refs["#"+id] = n;
    }
  }
  if (n == 0)
    noteholder.parentNode.removeChild(noteholder);
  else {
    // Process footnoterefs.
    for (i=0; i<spans.length; i++) {
      if (spans[i].className == "footnoteref") {
        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
        href = href.match(/#.*/)[0];  // Because IE return full URL.
        n = refs[href];
        spans[i].innerHTML =
          "[<a href='#_footnote_" + n +
          "' title='View footnote' class='footnote'>" + n + "</a>]";
      }
    }
  }
},

install: function(toclevels) {
  var timerId;

  function reinstall() {
    asciidoc.footnotes();
    if (toclevels) {
      asciidoc.toc(toclevels);
    }
  }

  function reinstallAndRemoveTimer() {
    clearInterval(timerId);
    reinstall();
  }

  timerId = setInterval(reinstall, 500);
  if (document.addEventListener)
    document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
  else
    window.onload = reinstallAndRemoveTimer;
}

}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
GNOME-EXTENSIONS(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>gnome-extensions -
   Command line tool for managing GNOME extensions
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>gnome-extensions</strong> help [<em>COMMAND</em>]</p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> version</p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> enable <em>UUID</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> disable <em>UUID</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> reset <em>UUID</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> info <em>UUID</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> show <em>UUID</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> list [<em>OPTION</em>&#8230;]</p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> prefs <em>UUID</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> create [<em>OPTION</em>&#8230;]</p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> pack [<em>OPTION</em>&#8230;]</p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> install [<em>OPTION</em>&#8230;] <em>PACK</em></p></div>
<div class="paragraph"><p><strong>gnome-extensions</strong> uninstall <em>UUID</em></p></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p><strong>gnome-extensions</strong> is a utility that makes some common GNOME extensions
operations available on the command line.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_common_options">COMMON OPTIONS</h2>
<div class="sectionbody">
<div class="paragraph"><p>All commands except for <strong>help</strong> and <strong>version</strong> handle the following options:</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
<strong>--quiet</strong>, <strong>-q</strong>
</dt>
<dd>
<p>
Do not print error messages
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_commands">COMMANDS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
<strong>help</strong> [<em>COMMAND</em>]
</dt>
<dd>
<p>
Displays a short synopsis of the available commands or provides
detailed help on a specific command.
</p>
</dd>
<dt class="hdlist1">
<strong>version</strong>
</dt>
<dd>
<p>
Prints the program version.
</p>
</dd>
<dt class="hdlist1">
<strong>enable</strong> <em>UUID</em>
</dt>
<dd>
<p>
Enables the extension identified by <em>UUID</em>.
</p>
<div class="paragraph"><p>The command will not detect any errors from the extension itself, use the
<strong>info</strong> command to confirm that the extension state is <strong>ENABLED</strong>.</p></div>
<div class="paragraph"><p>If the extension is already enabled, the command will do nothing.</p></div>
</dd>
<dt class="hdlist1">
<strong>disable</strong> <em>UUID</em>
</dt>
<dd>
<p>
Disables the extension identified by <em>UUID</em>.
</p>
<div class="paragraph"><p>If the extension is not enabled, the command will do nothing.</p></div>
</dd>
<dt class="hdlist1">
<strong>reset</strong> <em>UUID</em>
</dt>
<dd>
<p>
Reset the extension identified by <em>UUID</em>.
</p>
<div class="paragraph"><p>The extension will be disabled in GNOME, but may be enabled by other sessions
like GNOME Classic.</p></div>
</dd>
<dt class="hdlist1">
<strong>info</strong> <em>UUID</em>
</dt>
<dd>
<p>
Show details of the extension identified by <em>UUID</em>, including name,
description and state.
</p>
</dd>
<dt class="hdlist1">
<strong>show</strong> <em>UUID</em>
</dt>
<dd>
<p>
Synonym of info.
</p>
</dd>
<dt class="hdlist1">
<strong>list</strong> [<em>OPTION</em>&#8230;]
</dt>
<dd>
<p>
Displays a list of installed extensions.
</p>
<div class="dlist"><div class="title">Options</div><dl>
<dt class="hdlist1">
<strong>--user</strong>
</dt>
<dd>
<p>
    Include extensions installed in the user&#8217;s <strong>$HOME</strong>
</p>
</dd>
<dt class="hdlist1">
<strong>--system</strong>
</dt>
<dd>
<p>
    Include extensions installed in the system
</p>
</dd>
<dt class="hdlist1">
<strong>--enabled</strong>
</dt>
<dd>
<p>
    Include enabled extensions
</p>
</dd>
<dt class="hdlist1">
<strong>--disabled</strong>
</dt>
<dd>
<p>
    Include disabled extensions
</p>
</dd>
<dt class="hdlist1">
<strong>--prefs</strong>
</dt>
<dd>
<p>
    Only include extensions with preferences
</p>
</dd>
<dt class="hdlist1">
<strong>--updates</strong>
</dt>
<dd>
<p>
    Only include extensions with pending updates
</p>
</dd>
<dt class="hdlist1">
<strong>-d</strong>
</dt>
<dt class="hdlist1">
<strong>--details</strong>
</dt>
<dd>
<p>
    Show some extra information for each extension
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
<strong>prefs</strong> <em>UUID</em>
</dt>
<dd>
<p>
Open the preference dialog of the extension identified by <em>UUID</em>.
</p>
</dd>
<dt class="hdlist1">
<strong>create</strong> [<em>OPTION</em>&#8230;]
</dt>
<dd>
<p>
Creates a new extension from a template.
</p>
<div class="dlist"><div class="title">Options</div><dl>
<dt class="hdlist1">
<strong>--name</strong>=<em>NAME</em>
</dt>
<dd>
<p>
    Set the user-visible name in the extension&#8217;s metadata
    to <em>NAME</em>
</p>
</dd>
<dt class="hdlist1">
<strong>--description</strong>=<em>DESC</em>
</dt>
<dd>
<p>
    Set the description in the extension&#8217;s metadata to <em>DESC</em>
</p>
</dd>
<dt class="hdlist1">
<strong>--uuid</strong>=<em>UUID</em>
</dt>
<dd>
<p>
    Set the unique extension ID in the metadata to <em>UUID</em>
</p>
</dd>
<dt class="hdlist1">
<strong>--template</strong>=<em>TEMPLATE</em>
</dt>
<dd>
<p>
    Use <em>TEMPLATE</em> as base for the new extension
</p>
</dd>
<dt class="hdlist1">
<strong>-i</strong>
</dt>
<dt class="hdlist1">
<strong>--interactive</strong>
</dt>
<dd>
<p>
    Prompt for any extension metadata that hasn&#8217;t been provided
    on the command line
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
<strong>pack</strong> [<em>OPTION</em>&#8230;] [<em>SOURCE-DIRECTORY</em>]
</dt>
<dd>
<p>
Creates an extension bundle that is suitable for publishing.
</p>
<div class="paragraph"><p>The bundle will always include the required files extension.js
and metadata.json, as well as the optional stylesheet.css and
prefs.js if found. Each additional source that should be included
must be specified with <strong>--extra-source</strong>.</p></div>
<div class="paragraph"><p>If the extension includes one or more GSettings schemas, they can
either be placed in a schemas/ folder to be picked up automatically,
or be specified with <strong>--schema</strong>.</p></div>
<div class="paragraph"><p>Similarily, translations are included automatically when they are
located in a po/ folder, otherwise the <strong>--podir</strong> option can be
used to point to the correct directory. If no gettext domain is
provided on the command line, the value of the <strong>gettext-domain</strong>
metadata field is used if it exists, and the extension UUID
if not.</p></div>
<div class="paragraph"><p>All files are searched in <em>SOURCE-DIRECTORY</em> if specified, or
the current directory otherwise.</p></div>
<div class="dlist"><div class="title">Options</div><dl>
<dt class="hdlist1">
<strong>--extra-source</strong>=<em>FILE</em>
</dt>
<dd>
<p>
    Additional source to include in the bundle
</p>
</dd>
<dt class="hdlist1">
<strong>--schema</strong>=<em>SCHEMA</em>
</dt>
<dd>
<p>
    A GSettings schema that should be compiled and
    included
</p>
</dd>
<dt class="hdlist1">
<strong>--podir</strong>=<em>PODIR</em>
</dt>
<dd>
<p>
    A directory with translations that should be
    compiled and included
</p>
</dd>
<dt class="hdlist1">
<strong>--gettext-domain</strong>=<em>DOMAIN</em>
</dt>
<dd>
<p>
    The gettext domain to use for translations
</p>
</dd>
<dt class="hdlist1">
<strong>-f</strong>
</dt>
<dt class="hdlist1">
<strong>--force</strong>
</dt>
<dd>
<p>
    Overwrite an existing pack
</p>
</dd>
<dt class="hdlist1">
<strong>-o</strong>
</dt>
<dt class="hdlist1">
<strong>--out-dir</strong>=<em>DIRECTORY</em>
</dt>
<dd>
<p>
    The directory where the pack should be created
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
<strong>install</strong> [<em>OPTION</em>&#8230;] <em>PACK</em>
</dt>
<dd>
<p>
Installs an extension from the bundle <em>PACK</em>.
</p>
<div class="paragraph"><p>The command unpacks the extension files and moves them to
the expected location in the user&#8217;s <strong>$HOME</strong>, so that it
will be loaded in the next session.</p></div>
<div class="paragraph"><p>It is mainly intended for testing, not as a replacement for
GNOME Software or the extension website. As extensions have
privileged access to the user&#8217;s session, it is advised to
never load extensions from untrusted sources without carefully
reviewing their content.</p></div>
<div class="dlist"><div class="title">Options</div><dl>
<dt class="hdlist1">
<strong>--force</strong>
</dt>
<dd>
<p>
    Override an existing extension
</p>
</dd>
</dl></div>
</dd>
<dt class="hdlist1">
<strong>uninstall</strong> <em>UUID</em>
</dt>
<dd>
<p>
Uninstalls the extension identified by <em>UUID</em>.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_exit_status">EXIT STATUS</h2>
<div class="sectionbody">
<div class="paragraph"><p>On success 0 is returned, a non-zero failure code otherwise.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_bugs">BUGS</h2>
<div class="sectionbody">
<div class="paragraph"><p>The tool is part of the gnome-shell project, and bugs should be reported
in its issue tracker at <a href="https://gitlab.gnome.org/GNOME/gnome-shell/issues">https://gitlab.gnome.org/GNOME/gnome-shell/issues</a>.</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated
 2021-01-15 18:07:57 CET
</div>
</div>
</body>
</html>
