TextPinnacle is an independent native Linux text and source-code editor created and maintained by Emanuel Damasceno. It is derived from the open-source Notepad++ codebase and uses Qt 6, Scintilla, and Lexilla.
No Wine required.
Independent project: TextPinnacle is not an official Notepad++ release and is not affiliated with or endorsed by the Notepad++ project.
Notepad++ and its original source code are the work of the Notepad++ project and its contributors.
Download the alpha · Report a Linux bug · Help with the Linux port
The published alpha includes an RPM built and tested on Fedora 44 x86_64. Read its release notes for installation instructions and limitations. Published packages may lag behind the development branch.
Status: Alpha / Work in Progress
The application runs natively on Linux and core editing functionality is operational. Full Notepad++ feature parity is still in progress.
This is an independent porting effort based on the open-source Notepad++ project. Notepad++ itself and the original source code are the work of the Notepad++ project and its contributors.
I am a longtime Notepad++ user who moved to Linux full time. I wanted the familiar Notepad++ workflow without running the Windows application through Wine, so I started porting the existing project to a native Linux application.
The goal is not to create a different editor inspired by Notepad++. The goal is to bring as much of the actual Notepad++ experience as practical to Linux while keeping the port maintainable against upstream development.
The canonical development branch is
linux-port.
It includes native search and replace, encoding and EOL handling, printing,
macro recording and playback, dual editor views, synchronized scrolling,
dockable document tools, and durable session recovery. Published alpha
packages may not yet contain all development-branch functionality.
| Feature | Status |
|---|---|
| Native Linux executable | ✅ Working |
| Qt 6 user interface | ✅ Working |
| Scintilla editor | ✅ Working |
| Multiple document tabs | ✅ Working |
| New / Open / Save / Save As / Save All | ✅ Working |
| Undo / Redo | ✅ Working |
| Cut / Copy / Paste | ✅ Working |
| Line numbers | ✅ Working |
| Word Wrap | ✅ Working |
| Zoom In / Zoom Out | ✅ Working |
| Show All Characters | ✅ Working |
| Indent Guides | ✅ Working |
| Notepad++ toolbar icons | ✅ Working |
| Find / Replace | 🟡 Working; replace-in-files is not implemented |
| Encoding / EOL handling | ✅ Working for the supported formats |
| Unsaved document/session recovery | ✅ Working with legacy migration |
| Lexilla syntax highlighting | 🟡 Basic integration working; language coverage in progress |
| Function List | 🟡 Working for a limited language set |
| File Browser | 🟡 Core browsing and file opening work |
| Document List | 🟡 Core listing and activation work |
| Printing | ✅ Working |
| Document Map | 🟡 Working simplified overview |
| Macro recording/playback | ✅ Working |
| Dual editor views | ✅ Working |
| Synchronized scrolling | ✅ Working |
| Preferences UI | 🔴 Not available |
| Plugin compatibility | 🔴 Not available |
The table above reflects the current development state and will change frequently as the Linux port progresses.
The current development environment uses Qt 6, CMake, Ninja, and a C++17 compiler.
From the repository root:
cmake -S . -B build-linux -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build-linux -j$(nproc)Run the application with:
./build-linux/linux/textpinnacleThe Linux port currently uses:
- Qt 6 for the native Linux user interface
- Scintilla for the editor component
- Lexilla for lexer/syntax-highlighting support
- CMake for the Linux build
Linux-specific implementation is kept under linux/ where practical so that future synchronization with upstream Notepad++ remains manageable.
Work is currently focused on:
- protecting normal saves from external file changes
- opening command-line and desktop-launcher file arguments
- release-gating Linux packaging and CI
- expanding language/lexer integration and Function List coverage
- adding a preferences interface
- expanding search, panel, and session-state functionality
- keeping the port synchronized with upstream Notepad++ changes
Contributions, testing, bug reports, and technical discussion are welcome.
Areas where help would be particularly useful:
- Qt 6 / C++ development
- Scintilla and Lexilla integration
- Notepad++ feature parity
- Linux packaging
- Fedora, Debian, Ubuntu, and other distribution testing
- C++ code review
- documentation
If you would like to help, see the Linux contribution guide, open an issue in this repository, or submit a pull request targeting linux-port.
See LINUX-PORT.md for additional project background, architecture notes, roadmap information, and contribution details.
Notepad++ and its original source code are the work of the Notepad++ project and its contributors.
This repository is an independent effort to port that existing work to native Linux. Credit for Notepad++ itself belongs to its original creators and contributors.
This project remains subject to the licensing terms of the upstream Notepad++ source code and the third-party components included in the repository.
