Skip to main content
MATEwiki
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Getting Started

We assume you have some basic coding knowledge. If you don’t, we recommend that you read the chapters Introduction, Beginning C and Intermediate C of the C Wikibook and do some exercises (or something equivalent).

The MATE Desktop is mostly written in C. Some projects are written in Python or C++.

You should already have a text editor like Pluma, Gedit or Kate and a terminal application like MATE Terminal installed. Alternatively, you could use a fully featured IDE such as VSCodium, Eclipse or Code::Blocks.

If you’ve never developed a big application with a team before, your basic workflow is probably like this: You edit some source (.c, .cpp, .py) files and maybe some header files (.h, .hpp), compile them (probably using gcc my-program or hitting the compile button in your IDE) and finally execute your program (with ./my-program or python3 my-program or by hitting the run button on your IDE).

In the following, we briefly explain some tools that are generally used by larger software projects (i.e. by the MATE Desktop) to ease the developing process.

Makefiles

MATE packages usually are a lot bigger than just a handful of source files. In addition to (usually >30) source files, they include language files, settings files, desktop files, help files and so on. Compiling a MATE application with the above approach would be very tedious, as all source files would be recompiled even if you only edited one. Also, if you lose the compile command or switch computers you have to retype it from scratch. This is why Makefiles were introduced. A Makefile is basically a text file, which consists of rules that tell the compiler how to do its job.

Note

Git

Git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different systems).

Note

gittutorial - A tutorial introduction to Git: https://git-scm.com/docs/gittutorial

giteveryday - A useful minimum set of commands for Everyday Git: https://git-scm.com/docs/giteveryday

Git Cheat Sheet: https://training.github.com/downloads/github-git-cheat-sheet/

GitHub

GitHub is the place where we host our Git repositories. If you want to contribute to the MATE Desktop Environment, you will need to create a free account on GitHub.

Note
GitHub Docs - Collaborating with pull requests: https://docs.github.com/en/github/collaborating-with-pull-requests

Virtualisation

If you need to rely on a stable system, you can do MATE development in a safe environment, for example by using virtualisation. You can use a virtualisation application such as GNOME Boxes or VirtualBox and set up a virtual machine by installing a distribution specifically for developing MATE applications.

Note