Skip to content

kyle-meng/Memo

Repository files navigation

Memo

A lightweight, secure, and cross-platform memo/note-taking application built with Python and Tkinter. It features a system tray integration, local SQLite storage, AES/RSA encryption for sensitive data, and an optional blockchain data-persistence layer.

Features

  • System Tray Integration: Runs quietly in the background with a system tray icon.
  • Local Storage: Automatically saves your memos to a local SQLite database (memo.db).
  • Data Encryption: Support for AES (Fernet) and RSA encryption. You can selectively encrypt specific parts of your memos.
  • Optional Blockchain Upload: Persist your memos on-chain (using Web3) for tamper-proof storage.
  • Cross-Platform: Works on both Windows and Linux.

Installation

1. Basic Installation

Install it directly from PyPI:

pip install tiny-memo

Configuration

The application requires a .env file in the directory where you run it. You can copy the provided .env sample to .env:

cp ".env sample" .env

Configuration options:

  • FOLD_TIME: Time interval (in minutes) for folding/refreshing historical memos.
  • KEY_FILE: Path to your encryption key file.
  • ENC_METHOD: Encryption method to use (e.g., AES or RSA).
  • STRING_LENGTH: Maximum string length allowed before skipping blockchain upload.
  • TO_BLOCKCHAIN: Set to True to enable blockchain upload, or False to disable.

Usage

Start the application by running the following command in your terminal:

memo

(Note: Ensure your Python Scripts or bin directory is in your system's PATH).

Keyboard Shortcuts

When the application window is focused, you can use the following hotkeys:

  • Ctrl + S : 保存 (Save the current memo)
  • Ctrl + F : 搜索 (Search through historical memos)
  • Ctrl + L : 列出所有 (List all historical memos)
  • Ctrl + R : 加密 (Insert <ENC><DEC> tags to encrypt specific text)
  • Ctrl + B : 退出 (Exit the application completely)
  • Alt + M : 最小化 (Minimize to system tray)

Encryption Workflow

When editing a memo, you can press Ctrl + R to insert <ENC><DEC>. Any text placed between these tags (e.g., <ENC>My Secret<DEC>) will be encrypted automatically upon saving using your configured ENC_METHOD. When you view historical memos, you can click on the encrypted text to enter your password and decrypt it.

License

MIT License

About

Memo A lightweight, secure, and cross-platform memo/note-taking application built with Python and Tkinter. It features a system tray integration, local SQLite storage, AES/RSA encryption for sensitive data, and an optional blockchain data-persistence layer.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages