====== Gnome - Extensions - Create an Extension ====== ===== Creating the files for an extension ===== Extensions only require two mandatory files, so create them: * [[Gnome:Extensions:extension.js|extension.js]] * [[Gnome:Extensions:metadata.json|metadata.json]] Optionally create additional files: * See [[Gnome:Extensions:prefs.js|prefs.js]] ---- ===== Distributing an Extension ===== Extensions are distributed as Zip files with the two required files: example@blah.zip extension.js metadata.json ---- ==== Complete Extension Zip File Layout ==== If additional optional files were also used in the extension, then the zip extension usually looks like this: example@blah.zip locale/ de/ LC_MESSAGES/ example.mo schemas/ gschemas.compiled org.gnome.shell.extensions.example.gschema.xml extension.js metadata.json prefs.js stylesheet.css **NOTE:** * The topic of GSettings and the schemas/ directory is explained on the [[https://gjs.guide/extensions/development/preferences.html|Preferences]] page. * The topic of Gettext and the locale/ directory is explained on the [[https://gjs.guide/extensions/development/translations.html|Translations]] page ---- ===== Installation of an extension ===== Extension are installed in one of two places. For User Extensions, ~/.local/share/gnome-shell/extensions/example@blah/ For System Extensions, /usr/share/gnome-shell/extensions/example@blah/ ---- ===== References ===== http://smasue.github.io/gnome-shell-tw https://gjs.guide/extensions/overview/anatomy.html#metadata-json-required