dev-doc/Module_Groups.md
Module groups organize IOP modules into logical categories (Technical, Grading, Effects, etc.) in the darkroom view. This helps users find tools relevant to their current task.
Darktable uses a tabs-based interface in the right panel. Each tab corresponds to a Module Group.
Quick_Access_Panel.md).modulegroups.c)The referencing of modules into groups is handled by src/libs/modulegroups.c.
Each IOP module declares its default group(s) via the default_group() callback function in its source file.
// in src/iop/mymodule.c
int default_group()
{
return IOP_GROUP_TONES | IOP_GROUP_COLOR;
}
Predefined groups (in iop_api.h):
IOP_GROUP_TECHNICALIOP_GROUP_GRADINGIOP_GROUP_EFFECTSIOP_GROUP_NO_GROUP (hidden by default)Users can override these defaults by creating Module Group Presets.
These are stored as presets for the modulegroups module.
The internal logic (modulegroups.c) checks the active preset to decide which modules appear in which tab.
When creating a new module:
default_group() in your .c file.