Notos is a high-performance, lightweight text editor built with Rust and egui. It combines the minimalist philosophy of classic editors like Notepad with modern, developer-centric features like independent text zooming, smart line numbering, and a plugin-ready architecture.
- ⚡ Extreme Binary Size Optimization: Reached ~1.8MB (from ~13MB) by removing embedded fonts and trimming heavy dependencies like
anyhow,uuid, andencoding_rs. - 🧩 Dynamic Plugin System: Robust architecture using an external SDK (
notos_sdk) to load.dll/.soplugins at runtime without recompiling the main app. - 🔗 URL Detection: Built-in plugin that detects URLs in text. Hold
Ctrlto underline and highlight URLs, andCtrl+Clickto open them in your default browser. Togglable via the Plugins menu. - 🎨 System Font Loader: Dynamically loads fonts from the OS (e.g., Segoe UI, Consolas, Segoe UI Symbol/Emoji on Windows). This keeps the binary small while ensuring full UTF-8 icon support.
- 💾 Zero Data Loss: Automatically saves your session (tabs, content, undo history, and selections) on close and restores it instantly upon reopening.
- 🖱️ Right-Click Context Menu: Full context menu support for Undo, Redo, Cut, Copy, Paste, and Select All.
- ⚡ Blazing Fast Performance: Built with Rust for a near-instant startup and smooth editing experience, even with large files.
- 📑 Tabbed Workflow: Effortlessly manage multiple documents within a single, clean window.
- 🔍 Independent Editor Zoom: Scale your text (Ctrl + Scroll) without affecting the UI scale.
- 🔢 Smart Line Numbering: Accurate line tracking that understands word wrapping. Wrapped lines show blank spaces in the gutter, maintaining logical line alignment.
- 🌙 "Bit Grey" Dark Mode: A custom-tuned dark theme designed to reduce eye strain.
↔️ Flexible Word Wrap: Toggle wrapping on the fly.- 📊 Comprehensive Status Bar: Real-time tracking of cursor position (Ln/Col), character count, and line endings (CRLF/LF).
- ↩️ Smart Whole-Word Undo: Undo/redo operations now correctly group changes by whole words rather than individual characters. The system intelligently detects word boundaries, idling breath-times, and significant block changes while accurately restoring cursor positions.
| Action | Shortcut |
|---|---|
| New Tab | Ctrl + N |
| Open File | Ctrl + O |
| Save File | Ctrl + S |
| Save As | Ctrl + Shift + S |
| Find | Ctrl + F |
| Replace | Ctrl + H |
| Go To Line | Ctrl + G |
| Zoom In/Out | Ctrl + Mouse Wheel |
| Insert Date/Time | F5 |
| Open URL | Ctrl + Click on a URL |
Notos ships with the following built-in plugins:
| Plugin | Description |
|---|---|
| Base64 Encode/Decode | Encode or decode selected text as Base64. |
| JSON Format | Pretty-print or minify JSON content. |
| URL Detector | Detects URLs in text. Ctrl+Hover to underline, Ctrl+Click to open. Togglable in the Plugins menu. |
| About | Shows application information. |
| Case Transformer | Convert text between UPPERCASE, lowercase, snake_case, camelCase, etc. |
| Date/Time Stamping | Insert customizable date and time formats including ISO 8601 and Unix Timestamps. |
| Web Tools | Minify JS/CSS or apply basic formatting to CSS. |
| Markdown Preview | Live rendering of Markdown content in a side window. |
Plugins can be enabled/disabled from the 🔌 Plugins menu.
- Rust (Stable toolchain)
# Clone the repository
git clone https://github.com/appsjuragan/Notos
# Navigate to the project directory
cd Notos
# Build the release binary
cargo build --releaseThe compiled executable will be available in target/release/.
Contributions are welcome! Whether it's reporting a bug, suggesting a feature, or submitting a pull request, your help makes Notos better for everyone.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Developed and maintained by appsjuragan.