A lightweight, 25x fast, Windows notepad alternative built with C++17 and Win32 API which I made because microsoft wont stop adding AI bloatware to notepad.exe.
- Multi-language support: English and Japanese translations with runtime switching.
- Multi-encoding text: UTF-8, UTF-8 BOM, UTF-16 LE/BE, ANSI with line-ending selection.
- Rich editing: word wrap toggle, font selection, zoom, time/date stamp, find/replace/goto.
- Backgrounds: optional image with tile/stretch/fit/fill/anchor modes and opacity control. (known issues)
- Always on top: window pinning support.
- Printing: print and page setup dialogs.
- Customizable icon: change the application icon to any .ico file, including classic Notepad icons.
Building Legacy Notepad requires:
- Operating System: Windows 7 SP1 or newer (Windows 10/11 recommended for full UI feature support).
- Build System: CMake 3.16 or higher.
- Compiler: A C++17 compatible toolchain:
- MinGW-w64: Tested with GCC 13.2.0 (standard for lightweight builds).
- MSVC: Visual Studio 2022 or higher.
- SDKs: Windows SDK (included with Visual Studio or available via MSYS2 for MinGW).
- Dependencies: The app uses standard Windows components:
GDI+,RichEdit 4.1(Msftedit.dll),Common Controls, andDWM.
Ensure your MinGW bin folder is in your system PATH.
# 1. Clone the repository
git clone https://github.com/ForLoopCodes/legacy-notepad.git
cd legacy-notepad
# 2. Create and enter build directory
mkdir build
cd build
# 3. Configure and build
cmake -G "MinGW Makefiles" ..
mingw32-make -j$(nproc)
# 4. Run the application
.\legacy-notepad.exe- Open the folder in Visual Studio 2022.
- Visual Studio will automatically detect
CMakeLists.txtand configure the project. - Select
legacy-notepad.exein the startup item dropdown. - Press
F5to build and run.
Alternatively, via command line:
cmake -B build -S .
cmake --build build --config Release- Entry:
src/main.cpp- window class, message loop, wiring modules. - Core:
src/core- shared types and globals. - Modules (
src/modules):theme(dark mode),editor(RichEdit handling),file(I/O & encodings),ui(title/status/layout),background(GDI+),dialog(find/replace/font/transparency),commands(menu actions). - Resources:
src/notepad.rc,src/resource.h, icons/menus/accelerators.
src/
core/ # types, globals
modules/ # theme, editor, file, ui, background, dialog, commands
main.cpp
notepad.rc
CMakeLists.txt
| File/Folder | Purpose |
|---|---|
src/main.cpp |
Win32 entry point, WndProc, module wiring |
src/core/types.h |
Enums, structs, app constants |
src/core/globals.* |
Shared handles/state definitions |
src/modules/editor.* |
RichEdit setup, word wrap, zoom |
src/modules/file.* |
Load/save, encoding + line endings, recent list |
src/modules/ui.* |
Title/status updates, layout sizing |
src/modules/theme.* |
Dark mode title/menu/status, theming |
src/modules/background.* |
GDI+ background image/opacity/position |
src/modules/dialog.* |
Find/replace/goto, font, transparency dialogs |
src/modules/commands.* |
Menu command handlers |
src/notepad.rc, src/resource.h |
Menus, accelerators, icons |
MIT License - see LICENSE.
- Windows-only (Win32 API + GDI+). Use Wine/Proton at your own risk.
- Background image modes may vary slightly across DPI/scaling settings.