A clean, lightweight Notepad‑style text editor built with Python and Tkinter. It supports common file operations (New, Open, Save, Save As), edit actions (Cut, Copy, Paste, Delete), Find, Select All, Time/Date insertion, status bar with line/column, and an About dialog. Packaged in a modern src/ layout with CI, formatting, and linting.
- File: New, Open, Save, Save As, Exit
- Edit: Cut, Copy, Paste, Delete, Find…, Select All, Time/Date
- Help: About Notepad
- Status bar: shows file name, modified indicator, current Ln, Col
- Keyboard shortcuts (Windows‑friendly):
Ctrl+N,Ctrl+O,Ctrl+S,Ctrl+Shift+S,Alt+F4Ctrl+F,Ctrl+A,Ctrl+X,Ctrl+C,Ctrl+V,DelF5for Time/Date
# 1) Create venv (recommended)
python -m venv .venv && . .venv/bin/activate # Windows: .venv\Scripts\activate
# 2) Install
pip install -U pip
pip install -e .
# 3) Run
python -m notepad
# or
python -m notepad --file path/to/file.txtnotepad/
├─ pyproject.toml
├─ README.md
├─ LICENSE
├─ .editorconfig
├─ .gitignore
├─ .github/workflows/ci.yml
└─ src/notepad/
├─ __init__.py
├─ main.py
├─ app.py
├─ menus.py
├─ dialogs.py
├─ file_ops.py
├─ edit_ops.py
├─ statusbar.py
└─ constants.py
└─ tests/
└─ test_sanity.py
pip install -e .[dev]
ruff check .
black --check .
pytest -qThis project uses PEP 621 metadata in pyproject.toml and a src/ layout. The package name is notepad and exposes python -m notepad.
- Built with standard library Tkinter — no external GUI deps.
- Tested on Python 3.10+.
MIT © 2025 Mobin Yousefi