You're welcome to contribute to the code or to the translations!
The recommended way of testing the extension is to use a virtual machine, and to transfer the extension from your host system to the virtualized system.
To pack the extension as a zip file instead of installing it on your system, you can use the pack option when configuring Meson:
meson setup builddir -Dpack=trueWhen running meson install -C builddir, it will create an archive in the dist directory. You can then transfer the extension to the VM and install it there using gnome-extensions install nightthemeswitcher@romainvigier.fr.zip.
To print debug logs, set the build type to debug when configuring Meson:
meson setup builddir -Dbuildtype=debugYou can then read the logs with journalctl -f /usr/bin/gnome-shell.
You'll need NPM to install the development dependencies:
meson compile -C builddir devWhen you're done, commit all your changes. Make one commit per change. The commit message must include which part of the code you worked on. Example:
Commands Switcher: Change spawned command
You can then push to a branch and create a new merge request.
We follow the GNOME Shell coding style and we use ESLint to enforce it.
To make sure your code follows it:
meson test -C builddir --suite=codeIf you make changes to a file, please put a copyright notice at the top of the file, or in a separate file (named original-file.ext.license), following the SPDX specification. For example:
SPDX-FileCopyrightText: Night Theme Switcher Contributors
SPDX-License-Identifier: GPL-3.0-or-later
We use reuse to check that all the needed information is present:
meson test -C builddir --suite=licensingIf you add new source files, you have to add their paths in different files:
./src/meson.buildfor Javascript files./src/po/POTFILESfor Javascript and UI files
Add them in the correct place alphabetically.
If you create or modify localized strings, make your changes available for translation:
meson compile -C builddir nightthemeswitcher@romainvigier.fr-potThe project uses Weblate to manage translations. Head over Night Theme Switcher's project page to start translating the extension. If you need help, check out Weblate's user documentation.
Current translation status: