A GTK4/libadwaita app for speed reading. It uses the RSVP (Rapid Serial Visual Presentation) method to display words one at a time, allowing users to read faster and improve their reading skills.
- Input text or open a file
- Supports ebooks, text, md files
- Custom font
- Progress bar to show reading progress with time
- Pause and resume reading
- Go to start, end, previous, next word
- Fixed pivot
- Number of surrounding words.
- Lighten surrounding words
- Speed control - WPM (Words Per Minute) or seconds per word
- Advanced speed control:
- Character-based speed control
- Extra time for longer words
- Extra time at end of sentence, paragraph, or section (especially for ebooks/md files)
-
Top bar with Import, ViewSwitcher, Main Menu
- View switcher for Text View or Read View
-
Text View
- For displaying the input text or opened file
-
Read View
- For displaying the words for speed reading
- Bottom bar with controls for play/pause, progress bar, and navigation buttons (start, end, previous, next)
-
Main Menu
- Preferences/Settings
- Keyboard Shortcuts
- About
- Text View and Read View with ViewSwitcher
- Import txt/md files (md treated as plain text)
- RSVP playback controls (play/pause, start/end, previous/next)
- Fixed pivot highlight at 40% of the current word
- Surrounding context words with lighter visual emphasis
- Surrounding font size and word gap controls
- Progress slider, elapsed/remaining time, word position
- Speed control with WPM and Sec/Word modes
- Preferences dialog (WPM, surrounding words, font size/family, advanced timing toggle, advanced timing parameters, start paused)
- Keyboard shortcuts and About dialog
- GSettings schema plus JSON fallback for source-only runs
- Use the project virtual environment:
cd /home/akshaj/Documents/projects/blaze
source .venv14/bin/activate- Install Python packages from requirements:
pip install -r requirements.txt- Install system GTK/libadwaita bindings if your distro does not already provide them (Ubuntu/Debian example):
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 glib2.0-bin- Compile schemas from project root:
cd /home/akshaj/Documents/projects/blaze
glib-compile-schemas data- Launch the app:
/home/akshaj/Documents/projects/blaze/.venv14/bin/python main.pyThis does not replace the source workflow. You can still run python main.py during development, and Meson is just an optional install layer that copies the Python package, launcher, and desktop entry into an install prefix.
cd /home/akshaj/Documents/projects/blaze
meson setup builddir --prefix=~/.local
ninja -C builddir installAfter that, launch Blaze from your desktop menu or run:
blazeThe installed package still uses the app's existing JSON fallback if GSettings schemas are not compiled on the target system.
If you installed Blaze with Meson, remove it with:
cd /home/akshaj/Documents/projects/blaze
ninja -C builddir uninstallIf the app launcher or icon still appears in GNOME immediately after uninstall, log out and back in so the shell refreshes its desktop and icon caches.
- Ctrl+O: Import file
- Space: Play/Pause
- Left / Right: Previous / Next word
- Home / End: Go to start / end
- Ctrl+,: Preferences
- Ctrl+?: Keyboard shortcuts
- Ctrl+Q: Quit