A lightweight desktop overlay that periodically flashes images and notes on your screen — so knowledge sticks.
No browser. No notifications. No interruptions. Just a small window that slides in, shows you something worth remembering, and disappears.
FlashMind is a spaced-repetition-style desktop reminder built with Python and Tkinter. You feed it folders of images or text files, and it periodically shows them in a small, non-intrusive overlay while you work.
Think of it like the dhikr reminder apps on your phone — except for anything you want to learn: security techniques, architecture diagrams, code snippets, quotes, vocabulary, whatever you want burned into your memory.
Overlay slides in from the side, shows content, disappears after a few seconds — never steals focus.
| Image overlay | Note overlay | Main window |
|---|---|---|
| Fits image to your configured size | Scrollable text, Arabic supported | Categories + Settings |
- Periodic overlay — shows content every N seconds (fully configurable)
- Non-intrusive — slides in from the side, auto-dismisses, never steals keyboard focus
- Smart shuffle — avoids repeating recent items, cycles through everything evenly
- Images:
.jpg.jpeg.png.gif.bmp.webp - Notes:
.txt.md— each double-newline-separated paragraph becomes its own card - Inline notes — write notes directly in the app and assign them to a category
- Append to file — write a note and append it to any
.txt/.mdfile on disk
- Create unlimited categories (Security, Quotes, Architecture, Language, etc.)
- Each category has its own color badge shown on the overlay
- Point a category at whole folders or individual files
- Toggle categories on/off without deleting them
- Auto-fits images to your configured overlay size while preserving aspect ratio
- Image bg opacity slider — 0% means the image floats with no visible background box
- Note font size control — separate from UI font size
- Scrollbar on notes — long content never gets cut off
- Slide-in animation with progress bar showing time until auto-dismiss
| Setting | Description |
|---|---|
| Show every | Interval between displays (10s – 3600s) |
| Display duration | How long the overlay stays visible (2s – 60s) |
| Window size | Width × Height in pixels — your configured max |
| Position | Bottom-right / Bottom-left / Top-right / Top-left / Center |
| Note font size | Text size inside note overlays (8pt – 42pt) |
| Overlay opacity | Transparency of the overlay window |
| Image bg opacity | 0% = no background behind image; 100% = full background |
| Theme | Dark / Light |
- Arabic text is fully supported — uses
arabic-reshaper+python-bidito properly connect and display Arabic characters in the correct reading direction
- Python 3.8 or higher
- Tkinter (included with standard Python on Windows/macOS; on Linux:
sudo apt install python3-tk)
# 1. Clone the repo
git clone https://github.com/Mostafa-Maklad/flashmind.git
cd flashmind
# 2. Install dependencies
pip install -r requirements.txt
# 3. Run
python flashmind.pypillow — image loading and rendering
arabic-reshaper — Arabic letter shaping (connects letters correctly)
python-bidi — right-to-left text rendering
All three install automatically via pip install -r requirements.txt.
- Run
python flashmind.py - Go to Categories tab → click + New Category
- Name your category (e.g. "Security Notes") and pick a color
- Click 📁 Folder to point it at a folder of images or
.txtfiles - Set your interval in Settings (e.g. 300 seconds = every 5 minutes)
- Click Apply Settings — done
The overlay will start appearing automatically after the first interval. Click ▶ Show Now to test it immediately.
Text files — separate entries with a blank line:
SQL injection bypasses UNION-based attacks
XSS filter evasion: use event handlers like onerror, onload
SSRF targets internal metadata endpoints like 169.254.169.254
Each block becomes a separate card shown at random.
Images — drop any screenshots, infographics, cheatsheets, diagrams, or memes into a folder and point a category at it.
Mixed category — point a category at a folder that contains both images and .txt files. FlashMind handles them all together.
Settings are saved automatically to ~/.flashmind_config.json.
Delete the file to reset everything to defaults.
MIT — free to use, modify, and distribute.
Made by @Mostafa-Maklad