wxReader is a lightweight, high-performance document reader built with wxWidgets (wxPython), MuPDF (PyMuPDF), OpenGL (PyOpenGL), libvips (pyvips), and
Python.
wxReaderVoiceCtrl is a hands-free external controller app for wxReader, recognizing voice command offline by vosk and pyaudio. GUI is built with wxPython.
wxReaderEyeTrackCtrl is a hands-free external controller app for wxReader, recognizing eye movement and blinking gesture offline by EyeTrax(https://doi.org/10.5281/zenodo.17188537) through a webcam. GUI is also built with wxPython.
Version 1.3.4 Add customizable keyboard shortcuts. Add GUI control on uStrength of shaders. Add a folder tab in the sidebar. Gallery and cache performance optimized.
~Version 1.3.7 External controlled page tuning, and add example apps of voice and eye gesture command. UI/UX enhancements. Bugs fixed. 7z format support. Cache optimizations.
Version 1.3.8 Add internationalization and localization for
ja_JP, zh_TW and zh_SG.
| Feature | Description |
|---|---|
| File Format Support | PDF, EPUB, ePub, ZIP, CBZ (manga or comics archive files). |
| Paging Strategy | Single Page and Two-Page spreads (with optional blank start page). Supports Right-to-Left (RTL) reading. |
| Content Extraction | Extract text and images directly from specific pages to the clipboard or disk. |
| Image Processing | Real-time built-in filters and enhancements. Support custom OpenGL frag shaders. |
| Zoom and View | Fit Width, Fit Page, Manual Zoom, Fullscreen Mode, and customizable background color. |
| Navigation | Sidebar with Outline (TOC) and File Browser tabs. Text search dialog, and a standalone TOC dialog. |
| Gallery Mode | View all thumbnails or frontpages of all books inside a same folder like a gallery. |
| File History | Automatically saves recent files and reading progress on close. |
| Interaction | Drag-and-drop file loading and full keyboard operation support. |
| External control | (Default off.) Send command+token to a local UDP port to do page turning. |
Accessibility features: The two independent external control programs, wxReaderVoiceCtrl and wxReaderEyeTrackCtrl, respectively provides offline voice-activated page turning commands and offline eye gesture based page-turning via computer camera recognition, triggered by “blinking twice while looking at a designated area of the screen.” (The are fully offline and requires a not-potato CPU.)
-
From sauce (latest dev):
- Install Python 3.12 and uv,
uv --project . sync. - Download and put the libvips shared library *.dll files inside
.\src. - Sync dependencies with
uv. - Build with
.\build.baton Windows x64. (Run the build script inside /src folder.) - (Notes: upgrade pymupdf will fail the compilation, and this is a Nuitka issue.)
- Optional:
uv --project .\extctrl\voice sync,uv --project .\extctrl\eye_track sync, then build with.\build_*.bat.
- Install Python 3.12 and uv,
-
Pre-compiled binary (stable): portable
.exefiles are provided on the Releases page. Here are links to download (for win10+ x86_64): -
Upgrade from older versions: simply copy the
wxReader.cfgandpswd.txtfiles containing all user settings to the folder of a new version. You (probably) can also just unzip and overwrite existing files in the old folder.
- keys for navigation can conflict with input fields



