Integrating https://gitlab.com/protesilaos/denote with KDE. Inspired by a previous project, https://git.lneely.de/lkn/denotesrv, designed to make denote work with http://acme.cat-v.org/.
Go to file
Levi Neely 06c1f17570 Use full compound extension (.md.gpg, .org.age, etc.)
fileitemaction uses completeSuffix() to preserve the full extension.
fileTypeFromExtension() recurses on compound extensions to detect
frontmatter support from the inner extension.
2026-07-12 20:36:15 +02:00
extractor Initial implementation: Baloo extractor + Dolphin rename action 2026-07-12 20:21:11 +02:00
fileitemaction Use full compound extension (.md.gpg, .org.age, etc.) 2026-07-12 20:36:15 +02:00
lib Use full compound extension (.md.gpg, .org.age, etc.) 2026-07-12 20:36:15 +02:00
.gitignore Initial implementation: Baloo extractor + Dolphin rename action 2026-07-12 20:21:11 +02:00
CMakeLists.txt Initial implementation: Baloo extractor + Dolphin rename action 2026-07-12 20:21:11 +02:00
README.md License: GPL-3.0-or-later 2026-07-12 20:24:58 +02:00

README.md

kdenote

KDE integration plugins for Denote notes.

Components

  • Baloo extractor — KFileMetaData plugin that indexes denote file metadata (title, tags, date, signature) so Dolphin search, KRunner, and Baloo queries work on your notes.
  • Dolphin context menu — "Rename with Denote..." action for files that don't yet conform to the denote naming scheme.
  • Shared library — Denote filename parsing/building and frontmatter handling (YAML/Org/txt), used by both plugins.

Building

mkdir build && cd build
cmake .. -DBUILD_TESTING=ON
make
make install

Dependencies

  • Qt 6
  • KDE Frameworks 6 (KFileMetaData, KIO, WidgetsAddons, ECM)
  • C++20 compiler

Configuration

If Baloo already indexes your home directory (the default), no configuration is needed — the extractor plugin activates automatically on the next index pass.

To immediately reindex existing notes after install:

balooctl index /path/to/your/notes

Denote filename format

YYYYMMDDTHHMMSS[==signature]--slugified-title[__tag1_tag2].ext

Examples:

  • 20240315T120000--my-daily-note__journal_daily.md
  • 20240315T120000==1a--project-plan__work.org

License

GPL-3.0-or-later