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=true
When 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 [email protected]
.
To print debug logs, set the build type to debug
when configuring Meson:
meson setup builddir -Dbuildtype=debug
You 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 dev
When 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=code
If 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=licensing
If you add new source files, you have to add their paths in different files:
./src/meson.build
for Javascript files./src/po/POTFILES
for 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 [email protected]
The 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: