Important
Slashmad Fork Patch Block (updated 2026-02-20)
Scope:
- This block documents fork-specific changes on branch
slashmadin thisgrampsrepo.
Desktop media workflow patches:
- Auto-import to typed subfolders: media selected from editors/galleries is copied into the configured media base path and organized under
persons,families,events,places,sources,citations. - Duplicate reuse prompt: if an identical file is already present in the media tree, the user can reuse it instead of creating a duplicate.
- Copy/Move import prompt: import flow now asks whether to copy (keep source) or move (relocate source) the selected file.
- Gallery browse button: gallery tabs include a button next to
+that opens the relevant category folder directly and allows linking already-managed files. - Media view drag-and-drop hardening: drag-and-drop in Media view imports into managed media paths (instead of leaving unmanaged external file references), with category routing support.
UX and localization:
- Safer copy-first flow: button order and default response are tuned for copy-first behavior.
- Swedish strings for new flows: new media import/browse strings are translated in
po/sv.po(with runtime fallback where needed). - Source/Citation autocomplete: added focus-only, lazy-loaded autocomplete for source editor fields (
author,publication info,abbreviation,title) and citationvolume/page, based on existing stored values, withEscto dismiss suggestions in the active field. - Call-name highlighting in person lists: new Text preferences allow highlighting names that have a call name with bold, underline, or both.
Filter and relationship improvements:
- New person source scope rules (person + linked events):
People with <count> sources (person + linked events)People with the <source> (person + linked events)People missing sources (person + linked events)
- New relatedness rules with Home Person support:
People related to <Person/Home Person>People NOT related to <Person/Home Person>
- Not Related diagnostics: the
Not Relatedtool now showsComponentandDiagnosticcolumns to explain disconnections in the relationship graph. - Partner-link toggle for Not Related: new Data preference
Treat partners as related in 'Not Related' toolcontrols whether partner-only links (throughFamily) count as related. - Association toggle for Not Related: new Data preference
Include associations in 'Not Related' toollets you include personal associations (PersonRef) in connectivity checks when needed.
Build/version policy in this fork:
- Keep upstream app version as
6.0.6(no local build identity suffix in runtime version string).
Related fork work (separate repos):
slashmad/addons-source: Theme/Dark mode add-on improvements and GrampsWebSync local patching used in this environment.
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
Please read the COPYING file first.
Please read the INSTALL file if you intend to build from source.
The following packages MUST be installed in order for Gramps to work:
- Python 3.9 or greater - The programming language used by Gramps.
- GTK 3.24 or greater - A cross-platform widget toolkit for creating graphical user interfaces.
- pygobject 3.12 or greater - Python Bindings for GLib/GObject/GIO/GTK+
The following three packages with GObject Introspection bindings (the gi packages)
- cairo 1.14.0 or greater - a 2D graphics library with support for multiple output devices.
- Pycairo 1.13.3 or greater - GObject Introspection bindings for cairo.
- pango - a library for laying out and rendering of text, with an emphasis on internationalization.
- pangocairo - Allows you to use Pango with Cairo.
- librsvg2 - (SVG icon view) a library to render SVG files using cairo.
- orjson - A fast JSON library for Python. Used to increase the performance of Gramps.
The following package is needed for full translation of the interface to your language:
- language-pack-gnome-xx
Translation of GTK elements to your language, with xx your language code; e.g. for Dutch you need language-pack-gnome-nl. The translation of the Gramps strings is included with the Gramps source.
Used to show maps in the Geography Category. It may be osmgpsmap, osm-gps-map, or python-osmgpsmap, but the Python bindings for this must also be present, so gir1.2-osmgpsmap-1.0. Without this the GeoView will not be active.
-
Enable creation of graphs using Graphviz engine. Without this, three reports cannot be run. The package name is usually graphviz or python3-pygraphviz.
Improves localised sorting in Gramps. In particular, this applies to sorting in the various views and in the Narrative Web output. It is particularly helpful for non-Latin characters, for non-English locales and on MS Windows and Mac OS X platforms. If it is not available, sorting is done through built-in libraries. PyICU is fairly widely available through the package managers of distributions. (These are Python bindings for the ICU package https://pypi.python.org/pypi/PyICU/).
-
Used by Graphviz reports to help create PDF files.
Provides better image processing performance. If this module is not available, we continue to use Gdk. This provides a real improvement when we need to process many big images.
Python bindings for Oracle Berkeley database. Only needed to upgrade older Gramps databases.
- gspell
Enable spell checking in the notes.
The GNU Revision Control System (RCS) can be used to archive a family tree. Multiple revisions of your family trees can be managed. Only rcs is needed, NO python bindings are required.
The friendly Python Image Library fork is needed to crop images and also to convert non-JPG images to JPG so as to include them in LaTeX output. The package name is usually python-pillow or python3-pillow.
- gexiv2 0.5 or greater
Enables Gramps to manage Exif metadata embedded in your media.
Provides genealogical symbols and more fonts for reports
- geocode-glib
A library use to associate a geographical position (latitude, longitude) to a place name. This is used if you already have osmgpsmap installed. If installed, when you add or link a place from the map, you have a red line at the end of the table for selection. The package name is usually gir1.2-geocodeglib-1.0 or geocode-glib.
Python bindings of fontconfig are required for displaying genealogical symbols
Used to validate ISO language codes.
Third-party Addons are written by users and developers and unless stated are not officially part of Gramps.
Prerequistes required for the following Addons to work:
- Family Sheet - Requires: Pillow
- Graph View - Requires: PyGoocanvas and Goocanvas (python-pygoocanvas, gir1.2-goocanvas-2.0).
- Network Chart - Requires: networkx and pygraphviz
- PedigreeChart - Can optionally use - numpy if installed
-
Since Gramps 5.2: xdg-utils
-
Since Gramps 4.2: gir-webkit
-
Since Gramps 4.0: pygoocanvas, pygtk, pyexiv2
-
Since Gramps 3.3: python-enchant Enchant
-
Since Gramps 3.2: python glade bindings
-
Since Gramps 3.1: yelp - Gnome help browser. No offline help is shipped see Gramps website for User manual
The User Manual is maintained on the Gramps website.
Use the Gramps Bug Tracker to report bugs and suggest new features.
Gramps uses Hosted Weblate for its translations.