Skip to content

puff-dayo/wxReader

Repository files navigation

wxReader

wxReader is a comic/manga/pdf document reader built with wxWidgets (wxPython), MuPDF (PyMuPDF), OpenGL (PyOpenGL), libvips (pyvips), and Python. Currently support Windows and Linux.

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 through a webcam. GUI is also built with wxPython.

-> Download link <-
wxReader for Windows10+ (>1809)
wxReader for Debian13
external controllers for Windows10+_avx2 (>1809)

Build/run from source: see below ↓


Installation

Windows

  1. From sauce (latest dev):

    1. Install Python 3.12 and uv, uv --project . sync.
    2. Download and put the libvips shared library *.dll files inside .\src.
    3. Sync dependencies with uv.
    4. Build with .\build.bat on Windows x64. (Run the build script inside root folder.)
    5. (Notes: upgrade pymupdf will fail the compilation.)
    6. Optional: uv --project .\extctrl\voice sync, uv --project .\extctrl\eye_track sync, then build with .\build_*.bat.
  2. Pre-compiled binary (stable): portable .exe files are provided on the Releases page. Here are links to download (for win10+ x86_64):

    1. wxReader
    2. wxReaderVoiceCtrl
    3. wxReaderEyeTrackCtrl
  3. Upgrade from older versions: simply copy the wxReader.cfg and pswd.txt files 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.

Linux

Tested on platform: Linux-6.12.73+deb13-amd64-x86_64-with-glibc2.41

  1. Run from sauce (clone the linux-dev branch of the repo!):

    1. Install Python 3.13 and uv, uv --project . sync.
    2. sudo apt install libvips42t64 python3-wxgtk4.0.
    3. uv venv --python /usr/bin/python3 --system-site-packages, and then activate the venv.
    4. cd src
    5. ../.venv/bin/python wxReader.py
  2. Build your own binary:

uv --project . run pyinstaller \
  --name wxReader \
  --distpath build \
  --workpath build/pyi-build \
  --specpath build/pyi-spec \
  --onedir \
  --icon "$(pwd)/src/icon.png" \
  --add-data "$(pwd)/src/icon.png:icon.png" \
  --add-data "$(pwd)/src/filters:filters" \
  --add-data "$(pwd)/src/locale:locale" \
  --exclude-module tkinter \
  --exclude-module pillow \
  --collect-submodules OpenGL \
  src/wxReader.py
  1. Pre-compiled binary: portable files are provided on the Releases page.

Edit translation

See /tools.txt in the repo.

Language support currently: en_US, ja_JP, zh_SG and zh_TW.

Message files are extracted with pybabel and translated with tool Virtaal.

How to ... in wxReader

Check the Menubar -> Info -> Help Topic manual of wxReader.

About

A lightweight PDF, ePub and ZIP book/manga reader app for Windows/Linux. Custom OpenGL shaders, external control (voice and webcam eye-gesture) supported.

Topics

Resources

License

Stars

Watchers

Forks

Contributors