Skip to content

AkshajJain/blaze

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blaze

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.

Goals

  • 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)

UI Design

  • 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

Current Implementation

  • 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

Run Locally

  1. Use the project virtual environment:
cd /home/akshaj/Documents/projects/blaze
source .venv14/bin/activate
  1. Install Python packages from requirements:
pip install -r requirements.txt
  1. 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
  1. Compile schemas from project root:
cd /home/akshaj/Documents/projects/blaze
glib-compile-schemas data
  1. Launch the app:
/home/akshaj/Documents/projects/blaze/.venv14/bin/python main.py

Install with Meson

This 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 install

After that, launch Blaze from your desktop menu or run:

blaze

The installed package still uses the app's existing JSON fallback if GSettings schemas are not compiled on the target system.

Uninstall

If you installed Blaze with Meson, remove it with:

cd /home/akshaj/Documents/projects/blaze
ninja -C builddir uninstall

If 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.

Current Shortcuts

  • 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

About

GTK/libadwaita app for Speed Reading using RSVP (Rapid Serial Visual Presentation)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors