SparkNotePad — Lightweight, blazing-fast native Scintilla & Qt text and source code editor for Linux and macOS.
Engineered with Qt 6 and native Scintilla 5.6.7 / Lexilla 5.5.4 core for maximum execution performance and minimal memory footprint
English | Bahasa Indonesia
SparkNotePad is a fast, lightweight native text and source code editor built with Qt 6 and the Scintilla/Lexilla engine. The project serves as a modern native alternative in the Notepad family for Linux and macOS users, prioritizing speed, memory efficiency, and power-user capabilities.
Engineered as a high-performance native desktop editor, it delivers instant sub-millisecond line rendering, multi-cursor editing, military-grade AES-256 document encryption (PBKDF2 100k + HMAC-SHA256), real-time log stream monitoring (tail -f), 75 curated developer themes across 25 families meeting WCAG 2.1 AA/AAA contrast guidelines, an embedded Python 3.13+ scripting bridge, a sandboxed JavaScript evaluator, interactive regular expression testing, and comprehensive distribution packaging for macOS (Universal 2, Apple Silicon ARM64, Intel) and Linux (DEB, RPM, Flatpak, AppImage) — running entirely native without webview bloat at under 35 MB idle memory footprint.
Lead Developer & Maintainer:
HARRY DERTIN SUTISNA ALSYUNDAWY (@alsyundawy)—ALSYUNDAWY IT SOLUTION🍏
Latest Releases (v1.3.5)| 📖Release DocNotes (DOCNOTE.md)| 📜Changelog (CHANGELOG.md)| ⚖️NotepadNext vs SparkNotePad Comparison| 🐛Issue Tracker| 💖Support via PayPal
[!IMPORTANT]
⚠️ Architectural Heritage, Engine Invariants & Legal Notice
Core Editing Invariant
SparkNotePad is natively bound to the core Scintilla 5.6.7 and Lexilla 5.5.4 editing engines (src/ScintillaNext.h). SparkNotePad will never replace the native Scintilla engine with a web runtime (Electron/CEF) or generic text controls, preserving absolute efficiency and reliability.Independent Open-Source Lineage
SparkNotePad was developed from architectural insights of notable open-source projects including NotepadNext (Justin Dailey), Notepad4 (Zufu Liu), and Notepad3 (Rizonesoft), modernized and re-engineered under ISO C++20, Qt 6, AES-256 cryptographic hardening, and autonomous CI/CD automation.Legal Notice
SparkNotePad is an independent free and open-source software project. It is not affiliated with, endorsed by, or associated with Notepad++, NotepadNext, Notepad4, or Notepad3. Distributed under the GNU General Public License v3.0 (GPL-3.0-or-later).
Where modern desktop text editors frequently consume upwards of 500 MB of RAM simply displaying an empty document, SparkNotePad is engineered at the system level to deliver exceptional resource efficiency and instant execution speed:
| Feature | Capability Description | Shortcut |
|---|---|---|
| Graceful App Restart | Flushes sessions, saves settings, and relaunches cleanly without single-instance conflicts | Ctrl+Alt+R |
| Prominent Exit Action | Accessible toolbar and File menu termination with unsaved-document prompts and safe cleanup | Toolbar / Cmd+Q / Alt+F4 |
| About Dialog HiDPI Polish | Responsive QScrollArea wrapping, label word-wrap, and elision-free layout across Retina/4K |
Help >> About |
| 2025–2026 Security Posture | Mitigates Lua injection (CVE-2026-42214), Qt HTTP/2 UAF (CVE-2026-95620), and dual crypto | Built-in |
| AES-256-CBC Encryption | High-assurance document encryption with PBKDF2 key derivation (100,000 rounds) and HMAC-SHA256 integrity auth | Ctrl+Alt+E / Ctrl+Alt+D |
| Real-Time Log Monitoring | Live disk log streaming (tail -f) with debounced reload intervals (500 ms) and auto-scroll |
Ctrl+Alt+Y |
| High-DPI 20x20 Toolbar Icons | Crisp monoline vector SVGs (Undo, Redo, Find, Replace, Zoom, Indent) standardized to 20x20 HiDPI on Retina/4K | Main Toolbar |
| Complete Menu Icons Support | All menus and submenus show action icons natively via setIconVisibleInMenu across macOS and Linux |
All Menus |
| 100% Bilingual i18n Catalogs | Official standard Indonesian (EYD V) and English translations across 1,405 UI strings and dialogs | Preferences » Language |
| Ergonomic Dialog Spacing | Polished, accessible spacing for checkboxes and radio buttons across all preferences and search dialogs | All Dialogs |
| JavaScript Evaluator | Isolated execution sandbox for rapid mathematical computation, JSON formatting, and string manipulation | Ctrl+Shift+J |
| Interactive Regex Tester | Regular expression tester featuring dynamic capture group matching, multiline evaluation, and dot-all modes | Ctrl+Alt+Shift+R |
| Color Preview Call-Tips | Floating interactive color preview boxes supporting #HEX, rgb(), rgba(), and hsl() color formats |
Cursor Hover |
| Window Opacity Control | Native window alpha-channel transparency adjustment (20%–100%) for back-referencing underlying documents | Ctrl+Alt+T |
| macOS System Services | Seamless AppKit context menu integration (Open Selection / Path in SparkNotePad) |
macOS Context M. |
| Multi-Monitor Boundary Guard | ScreenDisplayManager prevents off-screen window placement across multi-DPI and external monitor hotplugs |
Automatic |
| Base64 & Format Converters | Encoding and decoding for Base64, binary/octal/decimal/hexadecimal radices, and casing mutations | Edit >> Convert |
| Unicode Code Point Inspector | Detailed Unicode code point analysis (U+XXXX), decimal value display, and Unicode category identification |
Status Bar |
| Automatic Encoding Detector | Universal charset recognition powered by uchardet with one-click conversion (UTF-8, UTF-16, ANSI, CJK) |
Status Bar |
SparkNotePad includes a comprehensive built-in theme manager (ThemeManager.cpp) providing 25 professional developer theme suites:
Catppuccin Dracula Tokyo Night Nord One Dark
Gruvbox Solarized GitHub Monokai Rosé Pine
Ayu Kanagawa Everforest Night Owl Material
SynthWave'84 Cyberpunk Shades of Pur Poimandres Horizon
Andromeda Nightfox Cobalt2 Alabaster Tomorrow
scColor(r, g, b) and scFromRgb(QRgb) utility primitives, ensuring zero red/blue channel inversions across differing platform architectures.┌────────────────────────────────────────────────────────────────────────┐
│ SparkNotePad Application │
│ │
│ ┌───────────────────────┐ ┌───────────────────────────────────────┐ │
│ │ UI & Dock System │ │ ScintillaNext (Core View) │ │
│ │ (Qt 6 Widgets / ADS)│ │ - Scintilla 5.6.7 (Vendored) │ │
│ └───────────┬───────────┘ │ - Lexilla 5.5.4 (Vendored) │ │
│ │ └───────────────────┬───────────────────┘ │
│ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Modular Feature Controllers │ │
│ │ - ThemeManager (25 Developer Theme Families) │ │
│ │ - CryptoManager (AES-256-CBC + HMAC-SHA256) │ │
│ │ - TailMonitoringManager (Debounced Background tail -f) │ │
│ │ - ScreenDisplayManager (Multi-Monitor & Retina Geometry) │ │
│ │ - TransparentWindowManager (Alpha-Channel Window Compositing) │ │
│ │ - JsEvaluator (Sandboxed Scripting Engine) │ │
│ │ - PythonScriptEngine (Python 3.13+ Bridge Engine) │ │
│ │ - ReleaseManager (Automatic Semver Update Checker) │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────┘
Official production binary packages for SparkNotePad v1.3.5 are ready for immediate download via GitHub Releases:
| Platform | Target Architecture | Package Format | Download Link |
|---|---|---|---|
| macOS 15+ / 14+ | Apple Silicon (M1/M2/M3/M4) | .dmg |
SparkNotePad-v1.3.5-arm64.dmg |
| macOS 15+ / 14+ | Intel (x86_64) | .dmg |
SparkNotePad-v1.3.5-x64.dmg |
| Linux | x86_64 (Ubuntu / Debian) | .deb |
sparknotepad_1.3.5_amd64.deb |
| Linux | x86_64 (Fedora / RHEL) | .rpm |
sparknotepad-1.3.5-1.x86_64.rpm |
| macOS / Linux | Association Helper Script | .sh |
SparkNotePad-Default-Editor.sh |
.deb):
Install via apt with a leading ./ so all Qt 6 and desktop dependencies are automatically resolved and installed from official repositories:
sudo apt install ./sparknotepad_1.3.5_amd64.deb
(See detailed Debian & Ubuntu Native Build Guide and Linux Packaging Guide).
.rpm):
sudo dnf install ./sparknotepad-1.3.5-1.x86_64.rpm
If macOS displays a Gatekeeper dialog stating the application cannot be opened because it is from an unidentified developer, clear the quarantine attribute via Terminal:
# Remove quarantine attribute from SparkNotePad.app
xattr -cr /Applications/SparkNotePad.app
To register SparkNotePad as the default system handler for all plain text and source code extensions across macOS and Linux, execute the integration script:
bash scripts/SparkNotePad-Default-Editor.sh -f
brew install qt6 cmake ninja)qt6-base-dev qt6-5compat-dev libuchardet-dev ninja-build)# 1. Clone the repository
git clone https://github.com/alsyundawy/SparkNotePad.git
cd SparkNotePad
# 2. Configure CMake (ISO C++20)
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
sed -i '' 's/-Werror//g' build/build.ninja 2>/dev/null || true
# 3. Compile binaries
cmake --build build -j$(nproc 2>/dev/null || sysctl -n hw.ncpu)
# 4. Run automated test suites
bash scripts/verify-engine-invariants.sh
bash scripts/run-unit-tests.sh
bash scripts/run-security-audit.sh
# 5. Run Trunk linter checks
trunk check -n -j 2
Full chronological release history is documented in CHANGELOG.md.
cmake/PackagingMac.cmake to prune unused Qt frameworks (QtPdf, QtQml, QtQuick, QtVirtualKeyboard, and associated plugins) and enforced maximum UDZO compression (zlib-level=9), slashing macOS Intel (x86_64) DMG package size from 52.46 MB to 29.80 MB (43% reduction, safely under the 50 MB ceiling) with 100% verified runtime integrity.clangd --check. Resolved cppcheck performance and safety recommendations (const QString & return in Macro::getName(), const QStringList & in RecentFilesListManager::fileList(), default member initialization in StatusBarCustomizerDialog), and corrected preprocessor define tokenization in scripts/generate_compilation_database.py.Platform.h, Geometry.h, ScintillaEdit.h) and SparkNotePad (ScintillaNext.h, FindReplaceDialog, MainWindow.cpp, IFaceTable.cpp), resolving parameter shadowing, type conversions, swappable parameters, non-virtual destructors, and preprocessor circular dependencies. Replaced unsafe C strcpy/strcat with bounded snprintf, and eliminated all Flawfinder risk-level-4 hits (0 hits across codebase).i18n/SparkNotePad_id.ts (0 unfinished). Standardized terminology strictly to official Kemendikdasmen standards (EYD V, PASTI, KBBI VI): eliminated machine translation artifacts (bALIK kASUS → bALIK hURUF, Berhubung Tanda Hubung → Bertanda Hubung, Minimalkan → Padatkan for code minification, sintaks → sintaksis, pengkodean → pengodean, bawaannya → bawaan adalah, pembesaran → perbesaran, and &Undo → &Urungkan).ui->labelReplaceWith->hide() and ui->comboReplace->hide() in changeTab().undo.png, redo.png, find.png, findReplace.png, zoomIn.png, zoomOut.png, indentGuide.png) with clean, modern monoline vector SVGs matching the visual language of restart.svg and exit.svg (24x24 viewBox, stroke-width 2.2, round stroke linecaps and joins, fill=”none”). Standardized toolbar icon dimensions to 20x20 high-DPI across MainWindow.ui and MainWindow.cpp, providing optical sharpness on macOS Retina displays.Ctrl+Z), Redo (Ctrl+Y), Find (Ctrl+F), Open (Ctrl+O), and Save (Ctrl+S). Enhanced with full icon support (undo.svg, redo.svg, cut.png, copy.png, paste.png, bin_closed.png, find.svg, openFile.png, saved.png, folder_go.png, copy.png) and enforced setIconVisibleInMenu(true) across platforms with automatic legacy settings migration.Ctrl+Alt+R): Implemented safe restart workflow in MainWindow::restartApplication() that prompts for unsaved changes, saves user settings, stops active tail monitors, releases single-instance mutex/locks, and relaunches via absolute canonical binary path (preventing CWE-426 untrusted search path). Supports macOS .app bundle relaunching (/usr/bin/open -n -a) and --safe-mode.icons/exit.svg) and Preferences shortcut (icons/settings.svg) directly into the main toolbar and File menu with unsaved-document confirmation and status feedback.SparkNotepad is free software: you can redistribute it and/or modify. Aligned branches to 100% parity: main IS 1.3.5, and develop IS 1.1.0.&Credits && Attribution to &Credits (with full tooltip), set minimum dialog geometry (620x480), prevented tab eliding (Qt::ElideNone), enabled label word-wrapping, and wrapped content inside responsive QScrollArea widgets.LuaState::setVariable() inert data binding; added security regression test suite (tests/test_lua_security.h).QNetworkRequest::Http2AllowedAttribute = false).LuaState::restrictDangerousApis() to neutralize dangerous OS/IO primitives (os.execute, io.popen, package.loadlib) when --safe-mode is activated.TestCryptoManager with comprehensive HMAC-SHA256 tamper-rejection tests across ciphertext, MAC, IV, and salt components.find.png), Find & Replace (findReplace.png), Zoom In (zoomIn.png), Zoom Out (zoomOut.png), and Show Indent (indentGuide.png) on native 16x16 grid with high-contrast luminance for dark and light themes..icns, multi-layer .ico, and .png formats).i18n/SparkNotePad_id.ts and i18n/SparkNotePad_en.ts ensuring formal native standards across all diagnostic dialogs, menus, and alert notifications.SparkNotePad respectfully acknowledges and honors the foundational work of its predecessors:
@alsyundawy).SparkNotePad is written in pure ISO C++20 and Qt 6. It opens documents in milliseconds, consumes under 35 MB of RAM, and eliminates web browser overhead or background telemetry collection.
Yes. Thanks to Scintilla’s segmented buffer architecture and 64-bit line indexing, SparkNotePad smoothly navigates multi-gigabyte log and text files without freezing or memory exhaustion.
Yes. SparkNotePad automatically syncs with system-wide light/dark appearance preferences, and offers 75 curated developer themes via the Themes menu.
ALSYUNDAWY IT SOLUTIONhttps://alsyundawy.comhttps://github.com/alsyundawyalsyundawy@gmail.comTelegram / X (Twitter): @alsyundawy |
@alsyundawy |
https://github.com/alsyundawy/SparkNotePadIf SparkNotePad boosts your productivity, consider supporting its ongoing development:
https://www.paypal.me/alsyundawyScan the QRIS barcode using any Indonesian banking application (BCA, Mandiri, BRI, BNI, BSI, CIMB Niaga, Permata) or e-wallet (GoPay, OVO, DANA, LinkAja, ShopeePay):
ID1020021153676This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v3.0 (GPL-3.0-or-later) as published by the Free Software Foundation. See the full license text in LICENSE.
SparkNotePad
Copyright (C) 2019-2026 Justin Dailey & SparkNotePad Contributors
Lead Development, Modernization & Maintenance (C) 2026 Harry Dertin Sutisna Alsyundawy (@alsyundawy)
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.