Verdad is a desktop Bible study application built around CrossWire SWORD modules. It combines Bible reading, parallel texts, search, commentary, dictionaries, daily readings, imported documents, tags, and study notes in one workspace.
Verdad is in active development. The project has been developed with extensive AI assistance.
- Multiple study tabs with independent Bible, reference, paragraph or parallel mode, right-pane selections, splitter sizes, and scroll positions.
- A three-pane layout: modules, search, tags, and previews on the left; Bible text in the center; commentary, Daily, general books, Studypad, and dictionary content on the right.
- Chapter and reference navigation, paragraph mode, red-letter display, and up to seven parallel Bible columns.
- Controls for Strong's numbers, morphology, footnotes, and cross references.
- Word-hover previews and context actions for search, Strong's lookup, dictionaries, copying verses or selections, and verse tagging.
- Restored window geometry, study tabs, pane state, active Studypad, and scroll positions between sessions.
- Background SQLite FTS5 indexing of Bibles, commentaries, dictionaries, general books, and imported documents, with Bible-only, library-only, or combined search scopes.
- Multi-word, exact phrase, ECMAScript regex, and Strong's/lemma matching.
- Exact, spelling-assisted, synonym-assisted, and smart fuzzy search modes, with language-aware synonym expansion where supported.
- Canonically ordered results with contextual snippets and a shared preview pane.
- Single-click preview, double-click navigation in the current tab, and middle-click navigation in a new tab.
- Scripture links from commentary, general books, Studypad, daily content, and imported files can open previews or populate search results.
- Commentary follows the current verse, including navigation from commentary verse numbers and support for editing writable commentary modules.
- A persistent dictionary pane for Strong's lexicons and language-specific word dictionaries.
- Paged general-book navigation with a table-of-contents browser.
- A Daily workspace for SWORD devotionals, SWORD reading-plan modules, and editable reading plans with calendar navigation, completion tracking, and rescheduling.
- Verse tags with filtering, renaming, deletion, previews, and Bible markers.
- Studypad HTML notes with rich-text editing, detected scripture links, verse insertion, and optional ODT export through LibreOffice.
- PDF, plain-text, and Markdown import. Files or whole folders can be added to the library, optionally copied into Verdad's storage, indexed for search, and browsed like general-book modules.
- Settings export and import for preferences, tags, reading plans, and Studypads.
- A configurable user-data directory suitable for Syncthing or another file synchronization tool. Verdad detects external changes to tags, reading plans, and clean Studypad files and protects unsaved notes with conflict copies.
- A built-in SWORD module manager for local and remote repositories, module installation, and updates.
- Configurable Greek and Hebrew Strong's dictionaries and language-specific word dictionaries.
- Optional local-only English hover glosses from user-supplied WikDict SQLite databases. This is word lookup, not sentence translation.
- Optional Apertium-derived Spanish and German morphology resolves inflected forms to WikDict lemmas. Apertium is needed only to generate morphology databases, not while Verdad is running.
Verdad can start without SWORD modules, but Bible, commentary, dictionary,
general-book, devotional, and packaged reading-plan content requires installed
modules. Use Tools > Module Manager... or normal SWORD tools to install them.
Remote module sources use the network; local sources remain available for
offline installations.
By default, Verdad scans a dictionaries directory inside its platform config
directory. The recommended layout is:
dictionaries/
wikdict/
es-en.sqlite3
de-en.sqlite3
morphology/
es-morph-apertium.sqlite3
es-morph-apertium.NOTICE
de-morph-apertium.sqlite3
de-morph-apertium.NOTICE
Flat WikDict files directly under dictionaries/ are also supported. Dictionary
and morphology packs are user-managed data. They are not included in the
repository, packaged Verdad releases, or settings exports. Direct WikDict
lookups take precedence; morphology is used only when the surface form has no
direct gloss, and a derived lemma is shown only when the matching *-en.sqlite3
database supplies an English gloss.
To generate the complete Spanish morphology database without maintaining a
wordlist, install your distribution's apertium-spa package and run:
python3 tools/import_apertium_spanish_morphology.pyThe importer locates apertium-spa.spa.dix, expands all finite single-token
paradigms, and writes the SQLite database and license notice to Verdad's default
morphology directory. The current full source produces about 1.8 million
analyses in a database of roughly 55 MB. See
doc/offline-spanish-morphology.md for
custom source paths, output locations, metadata, and alternate import modes.
To generate German morphology from the ignored local source checkout:
git clone --depth 1 \
https://github.com/apertium/apertium-deu.git \
tools/data/apertium-deu
python3 tools/import_apertium_german_morphology.py \
--dictionary tools/data/apertium-deu/apertium-deu.deu.dixThe inspected German source produces about 338,000 normalized forms in a 15 MB
database. The generator records the upstream commit, source URL, dictionary
SHA-256, GPL-3.0 license, generator version, and generation time, and writes an
adjacent notice. See
doc/offline-german-morphology.md.
The default config directory is:
- Linux:
~/.config/verdad/ - macOS:
~/Library/Application Support/Verdad/ - Windows:
%APPDATA%\Verdad\
Important files and directories include:
preferences.conf: preferences, window layout, and restored session statemodule_index.db: generated search indeximports.dbandimports/: imported-document catalog and copied source filesdictionaries/: user-managed WikDict and morphology databasestags.db: verse tags, stored in the selected user-data directoryreading_plans.db: editable plans and completion state, stored in the selected user-data directorystudypad/: study notes, stored in the selected user-data directory
SQLite databases can also create temporary -wal, -shm, or -journal
sidecar files while the application is running.
Verdad is a C++17 CMake project. FLTK and litehtml are included as submodules.
git submodule update --init --recursive
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
ctest --test-dir build --output-on-failure
./build/verdadThe automated tests currently cover the morphology provider, WikDict fallback behavior, and Apertium morphology importer. UI and SWORD integration changes still require a manual application smoke test.
For a debug build:
cmake -S . -B build-debug -DCMAKE_BUILD_TYPE=Debug
cmake --build build-debug -j$(nproc)sudo apt install build-essential cmake pkg-config git python3 \
libsword-dev libsqlite3-dev \
libx11-dev libxext-dev libxinerama-dev libxfixes-dev \
libxcursor-dev libxrender-dev libxft-dev \
libfontconfig-dev libfreetype-devFLTK 1.4.4 is built statically from libs/fltk, and litehtml is built from
libs/litehtml. data/master.css and data/help.html are copied into the
build tree automatically.
Linux packages and prebuilt bundles include the SWORD shared library and its common runtime data. They still use the host system for SWORD's lower-level dependencies and Verdad's other runtime libraries. On Debian and Ubuntu, a typical runtime set is:
sudo apt install libsqlite3-0 \
libx11-6 libxext6 libxinerama1 libxfixes3 \
libxcursor1 libxrender1 libxft2 libfontconfig1The generated Debian package declares the exact additional dependencies needed by the bundled SWORD build on the packaging host.
Available CMake packaging targets depend on the host platform:
- Linux:
bundle,deb, andappimage - macOS:
appanddmg - Windows:
winzipandmsi
For example:
cmake --build build --target appimage
cmake --build build --target bundle
cmake --build build --target debThe Linux AppImage, archive, and Debian package bundle the SWORD runtime and
common data but not Bible or other SWORD modules. Verdad still discovers
modules in the standard system and user SWORD locations. The private library is
installed under lib/verdad; Debian common data is kept under
share/verdad/sword to avoid colliding with libsword-common. Other
applications continue using the system SWORD library. GitHub Actions builds and
packages Linux, macOS, and Windows artifacts.
To install directly from a source build:
cmake --install build --prefix "$HOME/.local"Or use the repository installer after building:
./install.sh --userTo use the standalone installer, build and unpack the prebuilt bundle, then run
install.sh from inside the unpacked directory:
cmake --build build --target bundle
tar -xzf build/verdad-*.tar.gz -C /tmp
/tmp/verdad-*/install.shThe standalone installer uses ~/.local by default. Run it with sudo for a
system-wide installation under /usr/local. It skips bundled SWORD common data
when an existing SWORD data directory is found in SWORD_PATH, ~/.sword,
~/sword, /usr/local/share/sword, or /usr/share/sword. Useful options:
./install.sh --user./install.sh --system./install.sh --prefix /some/prefix./install.sh --yes
- UI: FLTK
- HTML rendering: litehtml
- Module access and XHTML generation: CrossWire SWORD
- Search: SQLite FTS5
- Tags, reading plans, imports, and morphology: separate SQLite databases
- Runtime styling and help:
data/master.cssanddata/help.html
Project layout:
src/app/: startup, platform paths, preferences, and session restoresrc/ui/: FLTK panes, widgets, dialogs, editors, and daily workspacesrc/sword/: SWORD integration, markup normalization, and HTML generationsrc/search/: indexing, snippets, and searchsrc/tags/: verse tagging and persistencesrc/reading/: editable reading plans and completion statesrc/import/: PDF, text, and Markdown library importsrc/translation/: WikDict lookup and optional morphology providerstools/: development and database-generation utilitiestests/: C++ and Python automated testscmake/: custom find modules and packaging helperslibs/fltk/andlibs/litehtml/: vendored dependencies
Except where a file or directory says otherwise, Verdad-authored code in this
repository is dual-licensed under GPL-2.0-only OR Unlicense. See
LICENSE, LICENSES/GPL-2.0-only.txt, and
LICENSES/Unlicense.txt.
Third-party license texts and notices are listed in LICENSES/README.md. Distributed builds linking CrossWire SWORD must comply with its GPL-2.0 terms. WikDict and generated Apertium data retain their own source licenses and notices.