Contribute

We gladly accept contributions from everyone. There are a number of ways you can help, for example:

Suggest new features

The best way to suggest a new feature is to file an issue on GitHub. Please add the feature tag and the following information to the issue:

Report issues

The best way to report a bug in Workrave is to file an issue on GitHub. In the bug report please include the following information:

You can also report issues in Workrave’s documentation on GitHub

Translate Workrave

If you are proficient in a non-English language, you can help to translate the text in Workrave’s user interface.

Workrave uses ‘GNU gettext’ for dealing with translations. Translating Workrave boils down to providing a translated text for each and every English text used in Workrave. All the texts to be translated are listed in one file (.po). For each text you need to provide the translation by inserting it in that very same .po file. Translating can be a very tedious job. Luckily there is tooling available to help you.

For example, for GNU/Linux, there is ‘kbabel’, ‘gtranslator’ and many others. For Windows, there is ‘poEdit’. And for GNU/Emacs, there is the excellent M-x po-mode.

So first, you will have to pick any of the above tools, depending on the platform you are working on. Install that tool first, and get acquainted with it. From that point on, you can start translating using the .po files. The .po files can be found in our git repository

Write documentation

Workrave’s documentation is written in Markdown, a lightweight markup language with an easy to understand plain text formatting syntax. Please check our instructions if you are interested in improving our documentation.

Write code

Our source code archive is hosted at GitHub. Current stable releases are built from the 1.10 branch. Future releases of Workrave will be created from the next branch. The ‘next’ branch has seen a lot of internal cleanup and code modernization, but very few new features. The most interesting change in the ‘next’ branch is a initial port to macOS using Qt5. This port is not yet ready. Note that the ‘next’ branch did not get as much testing as the official 1.10 branch and may be less stable.

Unless you want to improve the macOS or Qt5 you are advised to implement your changes on the ‘1.10’ branch. Changes to the ‘1.10’ branch will be merged into ‘next’ branch if needed.