# Noteki — Sticky Notes for Windows
Modern, lightweight, customizable sticky notes that stay out of your way.
--- **Noteki** is a modern sticky notes app that lives in your system tray. Press a hotkey, jot something down, and move on. It uses a transparent full-screen canvas — notes appear exactly where you left them, and disappear when you click away. No accounts, no cloud, no bloat. Your notes stay on your machine. --- ## Features | Feature | Description | |---------|-------------| | **Always-on-Top** | Pin individual notes to stay above all other windows. | | **Custom Colors** | Add, remove, or change note colors dynamically. Text contrast is auto-calculated. | | **Session Management** | Create, clone, and switch between separate workspaces — perfect for different projects. | | **Global Hotkey** | `Alt+N` (configurable) toggles all notes from anywhere. | | **Undo/Redo** | Accidentally deleted a note? `Ctrl+Z` brings it right back. | | **Auto-Save** | Notes save instantly on focus-out. No manual saving needed. | | **Click-Through** | Click empty canvas space to hide notes and interact with windows behind them. | | **Keyboard Navigation** | `Tab` / `Shift+Tab` to cycle between notes. `Esc` to hide. | | **Start with Windows** | Optional — toggle in Settings. No admin rights needed. | | **Zero Latency** | Single-canvas architecture keeps CPU/RAM usage minimal when idle. | --- ## Quick Start ### Option 1 — Download EXE (no Python required) Grab the latest `Noteki.exe` from [Releases](https://github.com/kullaniciadi/noteki/releases/latest) and run it. That's it. ### Option 2 — Run from source ```bash git clone https://github.com/kullaniciadi/noteki.git cd noteki pip install -r requirements.txt python main.py ``` **Requirements:** Python 3.8+, PySide6, Pillow. --- ## Keyboard Shortcuts | Shortcut | Action | |----------|--------| | `Alt+N` *(configurable)* | Show / hide all notes | | `Ctrl+Z` | Undo last deletion | | `Tab` / `Shift+Tab` | Cycle focus between notes | | `Esc` | Hide notes | | Right-click (empty area) | Quick menu: new note, bring all to front | | Right-click (on note) | Color picker, copy, paste, delete | | Double-click (note header) | Focus text editor | --- ## Data & Privacy All data is stored locally under: ``` %APPDATA%\Noteki\ sessions\ One .json file per workspace settings.json Your preferences logs\ Rotating logs (7-day retention) ``` **Your notes never leave your computer.** No telemetry, no analytics, no network calls. If `session.json` gets corrupted, Noteki automatically recovers from `session.backup.json`. --- ## Building the EXE Want to build the standalone executable yourself? ```bash pip install pyinstaller pillow # Convert PNG icon to ICO python -c "from PIL import Image; Image.open('assets/icon.png').save('assets/icon.ico', format='ICO')" # Build single-file EXE pyinstaller --noconsole --onefile --icon="assets/icon.ico" --add-data "assets;assets" main.py ``` The output will be in `dist/main.exe`. Rename it to `Noteki.exe` and you're done. --- ## Project Structure ``` noteki/ main.py Entry point requirements.txt Dependencies assets/ icon.png App & tray icon src/ app.py Orchestrator — wires everything together canvas_window.py Full-screen transparent canvas note_widget.py Individual sticky note (header, text, resize, drag) add_button.py Floating "+" button data_manager.py JSON persistence, auto-save, sessions hotkey_manager.py Windows global hotkey (ctypes + QThread) tray_manager.py System tray icon & context menu settings_dialog.py Settings window (font, color, sessions, hotkey) undo_manager.py RAM-based undo queue (10-deep) constants.py App-wide constants & color math ``` --- ## License MIT — see [LICENSE](LICENSE) for details. ---Built with and PySide6