r2
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
Getting Things GNOME! desktop app development
Getting Things GNOME! (GTG) is a personal tasks and TODO list items organizer for the GNOME desktop environment inspired by the Getting Things Done (GTD) methodology. GTG is designed with flexibility, adaptability, and ease of use in mind so it can be used as more than just GTD software. GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.
You are currently reading the index of the information intended for new contributors (beta testers, developers, packagers, etc.), found in the project's main software development and management hub.
See our website for the list of features and information intended for users (including how to install the stable release with pre-built packages). Except if you're here to report an issue – then you can just directly create an issue rather than continue reading.
Execute this command to get the latest development code (if you don't have it already) and then move to that directory:
git clone https://github.com/getting-things-gnome/gtg.git && cd gtg
Later, when you want to update to the latest development version (assuming you are still in the "gtg" directory and did not make changes locally), you can do so with:
git pull --rebase
You can get most of those from your distribution packages:
# On Fedora: sudo dnf install meson ninja-build gettext itstool gtk4-devel gtksourceview5 libportal libsecret python3-gobject python3-cairo python3-lxml # On Debian/Ubuntu: sudo apt install meson ninja-build pkgconf gettext itstool libgtk-4-dev gir1.2-gtk-4.0 gir1.2-gtksource-5 gir1.2-xdp-1.0 gir1.2-secret-1 python3-gi python3-gi-cairo python3-lxml
ps et al.)python3-caldav on
Debian/Ubuntu and Fedora): required to enable the CalDAV
synchronization backend.To run the current test suite, you need some additional packages (this list may be out of date):
# On Fedora: sudo dnf install python3-pytest python3-pycodestyle python3-caldav # On Ubuntu/Debian: sudo apt install python3-pytest python3-pycodestyle python3-caldav
You currently also need the optional plugin dependencies, as the tests don't automatically skip them. (Help welcome improving that!)
There are additional plugins (modules for extending the user interface) and synchronization services (modules for importing/exporting tasks from/to external services) that might need additional packages to work correctly.
Dependencies for the "Export and print" plugin:
texlive-extra-utils package on Ubuntu and Debian)texlive-extra-utils package on Ubuntu and Debian, possibly in texlive-pdfjam on Fedora)pdftk-java in Ubuntu, and no longer available in Fedora)On Ubuntu and Debian you can install all that with:
# On Ubuntu/Debian: sudo apt install python3-cheetah pdftk-java texlive-extra-utils texlive-latex-base
In order to run the development/git version of GTG, you need to launch the debug.sh script
There is a shortcut to it in the root directory where you downloaded the code, that you can execute simply with this command:
./launch.sh
This is the safest way to run the git version, as it does not touch your normal user data (see below).
You can use ./launch.sh -? to get a list of options useful for development
you can append to the command, such as:
-d to enable debug logs-w to enable additional python development stuff
like deprecation warnings-p prefix-prog to prepend prefix-prog to the main gtg executable script,
useful to run under a debugger: ./launch.sh -p 'python3 -m pudb' (with
pudb) or a profiler: ./launch.sh -p 'python3 -m cProfile -o gtg.prof'-s dataset to use the dataset called dataset. It'll store it inside the tmp
folder of the current working directory. If it doesn't exists, it'll create
a new clean one. There are pre-made ones you can use by replacing dataset
with one of the following:
bryce - An anonymized dataset with a fair number of tasksscreenshots - Pre-made tasks that can be used to show off GTGIf you somehow need to pass arguments directly to the gtg binary itself,
anything after -- is passed to gtg directly.
For example, use the following command to show the help for gtg itself:
./launch.sh -- --help
To examine the UI elements, you might be interested to use GTKs interactive debugger, that you can use by prepending GTK_DEBUG=interactive like:
GTK_DEBUG=interactive ./launch.sh
If there is any problem with meson (the build system) or anything else,
try deleting the build folder first and try again: rm -rf .local_build.
No data should be lost since it is just re-generateable build files.
Now that you have installed all the dependencies and know how to run the tests, it's possible that you would like to make code changes and submit them for review.
We use pre-commit to run some checks that ensure that our codebase is clean and consistent.
Install it with pip install pre-commit, and install the pre-commit hooks with
pre-commit install.
The checks will now run every time you make a commit, and fix files if
necessary. It's generally a good idea to always run them, but you can also
bypass them by running git commit --no-verify, if necessary.
The CI system runs the checks on each commit to master, and on each pull
request. If you want to make sure they pass before opening your PR, you can run
them locally with pre-commit run --all-files.
For more guidelines about contributing, see CONTRIBUTING.md.
It depends:
${XDG_DATA_HOME:-$HOME/.local/share}/gtg like ~/.local/share/gtg/${XDG_CONFIG_HOME:-$HOME/.config}/gtg like ~/.config/gtg/${XDG_CACHE_HOME:-$HOME/.cache}/gtg like ~/.cache/gtg/~/.var/app/org.gnome.GTG/ (or something similar)launch.sh (the launcher from the Git/development version),
GTG doesn't touch your normal user data, it uses the tmp subdirectory in your current working directory (usually the repository root, the gtg folder).
You can pass -s name to use a different folder inside the tmp directory,
the default being default.If you want to import a copy of your gtg data to the development version, simply run at the repository root one of the following commands:
./scripts/import_tasks_from_local.sh # local/system-wide install data ./scripts/import_tasks_from_flatpak.sh # flatpak data
Whether to learn how GTG works from a user's perspective, or to preview changes you may have made to the user manual, you will need the "Yelp" help viewer application, which you can easily install on any Linux distribution (if it is not already present).
When installed system-wide, you can then view the user manual either by accessing it through GTG (press F1 or use the Help menu) or through the command line:
yelp help:gtg
If you want to read the documentation directly from the source code, run this command (from the source root directory):
yelp docs/user_manual/C/index.page
more like this
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
A to-do list that runs your Claude Code agents — capture anywhere, dispatch in parallel, review from your phone.
Open-source, offline-first face recognition attendance platform that runs on any webcam.
search projects, people, and tags