Skip to content

Releases: pbek/QOwnNotes

Release v26.5.5

06 May 18:38
c0c45f2

Choose a tag to compare

26.5.5

  • Security tokens generated by generateRandomString() now use the operating
    system random source via QRandomGenerator::system() on Qt 5.10+ and no
    longer fall back to qrand() on older Qt versions (for #3601)
  • Refactored internal ownCloud-specific class names, file names, and function
    names for cloud integration to generic cloud naming, since the integration is
    used with Nextcloud as well as ownCloud (for #3600)
  • Improved cloud connection creation and deletion safeguards by asking for
    confirmation before deleting a cloud connection and by starting new cloud
    connections with empty settings instead of copying the previous connection
    (for #3599)
  • Keychain secrets are now deleted together with their references when removing
    scripts, cloud connections, settings groups, or all settings, preventing stale
    qtkeychain entries from being left behind (for #3597)

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Continuous build

06 May 18:57
c0c45f2

Choose a tag to compare

Continuous build Pre-release
Pre-release

Continuous prerelease build for commit c0c45f2.

This release is intended for continuous build artifacts only. It is marked as a prerelease and must not be used as the latest release.

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.5.4

05 May 19:12
f9a4068

Choose a tag to compare

26.5.4

  • Fixed a startup crash when the Markdown LSP server initialized while qtkeychain
    secret migration was running a nested event loop during main window setup;
    Markdown LSP startup is now delayed until the status bar exists, fixing the
    regression from the keychain changes (for #3597)

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.5.3

05 May 18:30
26a18e6

Choose a tag to compare

26.5.3

  • New note encryption now writes a portable versioned encryption envelope with
    per-note salt and nonce metadata, derives keys with Botan PBKDF2-HMAC-SHA1,
    and encrypts with AES-256-CBC plus HMAC authentication while keeping legacy
    encrypted notes decryptable (for #3598)
  • Secrets such as cloud connection passwords, proxy passwords, API keys, and
    scripting secret settings are now stored in the operating system keychain via
    qtkeychain instead of being obfuscated with SimpleCrypt in the settings file;
    existing SimpleCrypt-backed secrets are migrated to the keychain automatically
    when possible (for #3597)

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.5.2

04 May 17:24
b1fb495

Choose a tag to compare

26.5.2

  • Pressing Ctrl+R in the note text edit now automatically turns off
    read-only mode before opening the replace panel (for #3596)
  • Fixed dark mode detection on GNOME/Wayland where Qt's colorScheme()
    incorrectly reported light mode even when the system was in dark mode, by
    preferring the D-Bus freedesktop portal query on Linux over Qt's built-in
    detection (for #3594)
  • Local scripts in the Scripting settings now read sibling info.json
    metadata when the selected QML file matches the script entry, showing the
    parsed version, authors, and description in the UI (for #3595)
  • Added a new Edit table context menu item to the note text editor that opens a visual
    table editor dialog when right-clicking inside a Markdown table
    (for #3593)
    • The dialog shows the table data in an editable grid
    • Clicking a column header selects that column and updates the alignment combobox
      to reflect its current alignment, making it easy to see and change alignment
    • Supports adding and removing rows (via dedicated Row buttons) and columns
      (via dedicated Column buttons)
    • Allows changing the alignment of the selected column(s) (default/left, left,
      center, right) via the alignment combobox and Apply alignment button
    • Automatically formats the table when changes are applied

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.5.1

01 May 18:04
d9f148a

Choose a tag to compare

26.5.1

  • Added a Reload button to the Note Bookmarks dialog to re-check bookmarks
    from disk without having to close and reopen the dialog
    (for #3589)
  • The Store note bookmark sub-menu in Note / Navigation is now grayed out
    when the note editing panel does not have focus, making it clear that storing
    a bookmark requires the editor to be active (for #3589)
  • Fixed several security issues (for #3591)
    • Fixed a plaintext password leak where a qDebug() call in
      restoreTrashedNoteOnServer() logged a QUrl containing the embedded
      server password
    • Changed the default value of the Ignore SSL errors network setting from
      true to false to prevent man-in-the-middle attacks on fresh installs
    • The MCP server CORS header was narrowed from the wildcard * to
      http://localhost to reduce the DNS-rebinding / localhost attack surface
    • The Linux dark-mode D-Bus check now invokes dbus-send directly instead of
      via /bin/sh -c, eliminating unnecessary shell interpretation
    • URLs typed without a scheme now default to https:// instead of http://
    • A table-name whitelist was added to generateDatabaseTableSha1Signature()
      to guard against SQL injection via concatenated table names
    • The FakeVim shell-filter (!) on Qt < 5.15 no longer passes the full
      command string to QProcess::start() (which invoked the shell); the
      executable is now split out and run directly in all Qt versions
    • The macOS updater temporary script file now has owner-only permissions
      (0700) set before its content is written, hardening against
      TOCTOU replacement by other local users
  • Fixed IME candidate window overlapping text when typing with a Japanese (or
    other CJK) IME on Windows by overriding inputMethodQuery() in
    QOwnNotesMarkdownTextEdit to offset the reported cursor rectangle by the
    current viewport margins (for #3590)

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.5.0

30 Apr 19:13
544215a

Choose a tag to compare

26.5.0

  • Added Note Bookmarks sub-menus to the Note / Navigation menu
    (for #3589)
    • New Store note bookmark sub-menu with slots 1–9 (Ctrl+Shift+1Ctrl+Shift+9)
    • New Go to note bookmark sub-menu with slots 1–9 (Ctrl+1Ctrl+9)
    • All bookmark shortcuts are now proper QActions in the menu and can be
      customised in the Shortcut settings, superseding the old hardcoded
      QShortcut-based approach
  • Added a new Note bookmarks entry in the Note / Navigation menu that opens
    a non-modal Note Bookmarks dialog listing all currently stored bookmarks with
    the ability to jump to a bookmark or delete it (for #3589)
  • Fixed a bug where searching for a multi-word text like "Heading 1" in the
    Note search panel would not correctly use all terms in the in-note regexp
    search, because the search mode was set after the search text causing
    performSearch() to fire with the old mode; the search mode is now set
    before the search text in doSearch() (for #3588)
  • Fixed a bug where the in-note search widget's text was overwritten by the
    currently selected match word when the search was activated programmatically
    from the note search panel, causing only one term (e.g. "Heading" instead of
    "(Heading|1)") to be searched; the preset-from-selection logic in activate()
    now only applies when the user manually opens the search widget
    (for #3588)
  • Added the ability to delete one or multiple cards in the Nextcloud Deck dialog
    using the Del key or via a new Delete X card(s) context menu item;
    a confirmation dialog is shown in all cases (for #3357)
  • A PPA for Ubuntu 26.10 (Stonking Stingray) was added

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.4.25

29 Apr 19:27
589577a

Choose a tag to compare

26.4.25

  • Updated Toggle checkbox(es) in the note text edit context menu so it now
    only toggles existing checkbox list items and no longer turns plain selected lines
    or regular list items into checkbox list items (for #3524)
  • Major performance improvement for the Markdown LSP integration on large notes
    (for #3467)
    • Added a new MarkdownLspDocumentTracker class that uses Qt's
      QTextDocument::contentsChange signal to track edits incrementally instead
      of calling toPlainText() on every keystroke; the per-keystroke cost drops
      from O(n) (full-document copy) to O(log n + delta)
    • The client now reads the server's textDocumentSync capability from the
      initialize response and sends incremental didChange payloads
      (TextDocumentSyncKind=2) when the server supports it (e.g. marksman),
      falling back to full-text sync for servers like rumdl
    • Optimized the LSP diagnostic wave-underline painter in the highlighter to
      batch contiguous characters with the same base format into single
      setFormat() calls, reducing format-range fragmentation from O(characters)
      to O(format-runs)
    • When the Markdown LSP feature is disabled, zero additional work is
      performed on the text-change hot path — no toPlainText(), no timer
      restarts, no signal connections fire
  • Added a global Ignore rule action to the inline Markdown LSP diagnostic
    context menu and a Reset ignored rules button on the Markdown LSP
    settings page, so Markdown LSP rules can be suppressed across all notes and
    later restored from one place (for #3467)

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.4.24

27 Apr 18:58
a495d12

Choose a tag to compare

26.4.24

  • Fixed a URI percent-encoding mismatch that prevented Markdown LSP diagnostics
    from being applied when a note filename contains spaces; the incoming LSP URI
    (e.g. Top%20heading.md) is now decoded with QUrl::fromPercentEncoding
    before being compared to the stored document URI so wave-underlines appear
    correctly for notes with spaces in their name (for #3467)
  • Added an inline Markdown LSP diagnostic context menu section that appears
    when right-clicking on a wave-underlined region in the note editor; it shows
    the diagnostic message as a header and fetches available LSP code actions
    (fixes) via a short synchronous wait, then lists each fix as a clickable menu
    item — matching the same UX pattern used by the LanguageTool and Harper
    context menus; the old standalone Code actions menu item in the
    Markdown LSP submenu has been removed in favour of this inline approach
    (for #3467)
  • Fixed a protocol bug where the Markdown LSP client did not respond to
    server-initiated requests (e.g. client/registerCapability), causing the
    LSP server to stall after the initial didOpen; subsequent didChange
    notifications were silently ignored by the server so diagnostics never
    refreshed after the first note load (for #3467)
  • Fixed stale Markdown LSP wave underlines remaining visible after applying
    a quick-fix or manually editing the text to resolve a diagnostic; when fresh
    diagnostics arrive from the server, blocks that previously had diagnostics
    are now also rehighlighted so their old underlines are cleared
    (for #3467)
  • Moved the Markdown LSP configuration out of the Editor settings into its
    own Markdown LSP settings page to make the language-server options easier
    to find and manage (for #3467)
  • Added Auto-detect and Test Connection actions to the Markdown LSP
    settings page so QOwnNotes can discover supported servers such as marksman
    and rumdl, prefill the correct command-line arguments, and verify that the
    configured LSP server completes its initialization handshake
    (for #3467)
  • Fixed switching the configured Markdown LSP service in the settings so the
    editor now restarts the running LSP client and reconnects the current note
    immediately instead of continuing to talk to the previously selected server
    until the application is restarted (for #3467)
  • Fixed the AI toolbar disabled confirmation so choosing Don't ask again!
    together with No now actually suppresses the dialog on later runs instead
    of prompting again every time an AI backend is configured while the toolbar
    stays hidden (for #3561)

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems

Release v26.4.23

26 Apr 19:16
3585785

Choose a tag to compare

26.4.23

  • Fixed shortcuts not being saved or restored in the Shortcuts settings;
    storeShortcutSettings now iterates the actual menu actions (mirroring how
    initShortcuts reads them) and looks up the corresponding widgets in the
    tree by action name, and shortcut values are stored as strings to match the
    format expected by initShortcuts (for #3584)
  • Fixed a crash when assigning a shortcut in the Shortcuts settings;
    keySequenceEvent and findKeySequenceWidget now use recursive tree
    traversal to handle the multi-level menu hierarchy correctly
    (for #3584)
  • Fixed a possible crash that occurred when Qt's internal style machinery was still
    processing a system color scheme change event while applyDarkModeSettings()
    was called synchronously, causing a SIGSEGV in QtWidgets; the UI update is now
    deferred via QTimer::singleShot so it runs after the current event is fully
    processed (for #3578)
  • Added a Show all LSP server log output in debug log checkbox to the
    Markdown language server section in the Editor settings; when
    enabled, every line written to the LSP server's stderr is forwarded to
    the Qt debug log so the full server output is visible (e.g. via
    QT_LOGGING_RULES="*.debug=true"); the checkbox is disabled when the
    LSP is not enabled (for #3467)
    • All Markdown LSP server stderr output is then forwarded to the debug log
      (via qDebug) so the full server log is visible when running QOwnNotes
      with debug output enabled; previously only lines containing ERR/ERROR
      were forwarded
    • Added debug logging when textDocument/publishDiagnostics notifications
      are received from the Markdown LSP server and when they are applied to the
      note text edit, to help diagnose why error markers may not appear; note that
      marksman (the default LSP server) does not publish diagnostics — it
      focuses on cross-reference and wiki-link completion only; to get real-time
      wave-underline error markers in the note editor, configure a linting LSP
      such as rumdl (command: rumdl, argument: server) which provides 71
      Markdown lint rules and publishes textDocument/publishDiagnostics

Released files

  • QOwnNotes-x86_64.AppImage: Portable Linux AppImage build with Qt 6
  • QOwnNotes-x86_64.AppImage.sha256sum: SHA-256 checksum for the AppImage
  • QOwnNotes-amd64.snap: Linux Snap build with Qt 6
  • QOwnNotes-amd64.snap.sha256sum: SHA-256 checksum for the Qt 6 Snap package
  • QOwnNotes-Qt5-amd64.snap: Linux Snap build with Qt 5 for older environments
  • QOwnNotes-Qt5-amd64.snap.sha256sum: SHA-256 checksum for the Qt 5 Snap package
  • QOwnNotes.zip: Windows ZIP package built with Qt 6
  • QOwnNotes.zip.sha256: SHA-256 checksum for the Qt 6 Windows ZIP package
  • QOwnNotes.zip.sha256sum: Alternative SHA-256 checksum file for the Qt 6 Windows ZIP package
  • QOwnNotes.dmg: macOS disk image built with Qt 6
  • QOwnNotesQt5.dmg: macOS disk image built with Qt 5 for older systems