Skip to content

mobinyousefi-cs/Notepad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Notepad (Tkinter)

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.

Features

  • 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+F4
    • Ctrl+F, Ctrl+A, Ctrl+X, Ctrl+C, Ctrl+V, Del
    • F5 for Time/Date

Quick Start

# 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.txt

Project Structure

notepad/
├─ 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

Development

pip install -e .[dev]
ruff check .
black --check .
pytest -q

Packaging

This project uses PEP 621 metadata in pyproject.toml and a src/ layout. The package name is notepad and exposes python -m notepad.

Notes

  • Built with standard library Tkinter — no external GUI deps.
  • Tested on Python 3.10+.

License

MIT © 2025 Mobin Yousefi

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages