Codebase list gnome-shell-extensions / master HACKING.md
master

Tree @master (Download .tar.gz)

HACKING.md @masterview markup · raw · history · blame

Creating a New Extension

To create a new extension, add a subdirectory in extensions. Then create a meson.build from the provided template. If you need additional sources, add them to extension_sources. Similarily add GSettings schemas to extension_schemas and other files to extension_data.

Then modify the toplevel Meson file to add the new extension name in the appropriate set (that is one of classic_extensions, default_extensions or all_extensions).

Don't forget to add any translatable file to po/POTFILES.in, and then you're done. The Gettext domain you should choose is gnome-shell-extensions, not gnome-shell, unless you're sure there is the string you need in gnome-shell.

Coding Style

Generally, we follow GJS coding style, which in short is: indent 4 spaces, no tabs, space after comma, no space after function call.

The Emacs mode line for this / -- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -- /

Imports should be at the top, in two groups, one for standard imports (like imports.lang or imports.dbus) and introspection, the other for Shell API. Within the same group, put everything in alphabetic order.