Files
noteki/README.md
git_alhan 9f3a599b79 Initial commit: Noteki v1.0
- Modern sticky notes app for Windows
- PySide6 full-screen transparent canvas
- System tray integration, global Alt+N hotkey
- Session management, undo/redo, auto-save
- Custom color palette with dynamic contrast
- Pin notes always-on-top, Tab navigation
- Windows Named Mutex single-instance guard
2026-05-21 04:13:45 +03:00

145 lines
4.8 KiB
Markdown

# Noteki — Sticky Notes for Windows
<p align="center">
<img src="assets/icon.png" alt="Noteki" width="128" height="128">
</p>
<p align="center">
<strong>Modern, lightweight, customizable sticky notes that stay out of your way.</strong>
</p>
<p align="center">
<img src="https://img.shields.io/badge/python-3.8+-blue.svg" alt="Python">
<img src="https://img.shields.io/badge/framework-PySide6%20(Qt6)-green.svg" alt="PySide6">
<img src="https://img.shields.io/badge/platform-Windows-0078D6.svg" alt="Windows">
<img src="https://img.shields.io/badge/license-MIT-yellow.svg" alt="MIT">
<a href="https://github.com/kullaniciadi/noteki/releases/latest"><img src="https://img.shields.io/github/v/release/kullaniciadi/noteki?color=orange" alt="Release"></a>
<img src="https://img.shields.io/badge/downloads-EXE%20available-brightgreen.svg" alt="EXE">
</p>
---
**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.
---
<p align="center">
<sub>Built with and PySide6</sub>
</p>