Extensions only require two mandatory files, so create them:
Optionally create additional files:
Extensions are distributed as Zip files with the two required files:
example@blah.zip
extension.js
metadata.json
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:
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/