An unofficial native Linux port of Notepad++ using Qt 6, Scintilla, and Lexilla.
No Wine required.
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.
New work is available on the linux-port-recovery branch:
- Live Function List, File Browser, Document List, and Document Map panels.
- Session and crash recovery for unsaved and modified documents.
- Safer saving, recovery checkpoints, and shutdown failure handling.
- Automated regression tests for panel behavior and document persistence.
These changes are pending final review and integration into the main development branch. They are not included in the published alpha download.
Printing, macro recording/playback, dual views, and synchronized scrolling remain unfinished.
| 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, still being expanded |
| Unsaved document/session recovery | 🟡 Implemented, still being validated |
| Lexilla syntax highlighting | 🟡 Basic integration working; language coverage in progress |
| Function List | 🟡 In progress |
| File Browser | 🟡 In progress |
| Document List | 🟡 In progress |
| Printing | 🟡 In progress |
| Document Map | 🔴 Not complete |
| Macro recording/playback | 🔴 Not complete |
| Synchronized scrolling | 🔴 Not complete |
| 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/npp_linuxThe 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:
- completing dockable panels such as Function List, File Browser, Document List, and Document Map
- expanding search and replace functionality
- completing printing support
- macro recording and playback
- language/lexer integration
- encoding and EOL handling
- session persistence and recovery
- tab/document workflow
- Linux packaging and desktop integration
- 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.
