How ahrm/sioyek works
Sioyek is a desktop-focused PDF reader for textbooks and research papers, with an Android activity and speech service. The principal workflow is opening a PDF, viewing and navigating its pages, then saving or revisiting reading state and annotations. The README also describes quick open, contents search, smart jumps, overviews, marks, bookmarks, highlights, and portals. The sampled entry point shows manager setup and construction of the main widget; feature-level wiring beyond those visible relationships is summarized conservatively from the README and tree.
Main entry points: main.cpp Application startup · database.cpp Reading-state database · main_widget.cpp Main window · document.cpp PDF document
Components 18
Application
- Application startup
pdf_viewer/main.cpp - Main window
pdf_viewer/main_widget.cpp - Configuration
pdf_viewer/config.cpp - Input and commands
pdf_viewer/input.cpp
Reading
- PDF document
pdf_viewer/document.cpp - Document view
pdf_viewer/document_view.cpp - PDF renderer
pdf_viewer/pdf_renderer.cpp - Quick open
pdf_viewer
Research tools
- Navigation features
pdf_viewer - Search
pdf_viewer - Source synchronization
pdf_viewer/synctex/synctex_parser.c
User state
- Annotations and marks
pdf_viewer - Portals
pdf_viewer - Reading-state database
pdf_viewer/database.cpp
Platform features
- Touch controls
pdf_viewer/touchui - Android activity
android/src/info/sioyek/sioyek/SioyekActivity.java - Speech service
android/src/info/sioyek/sioyek/TextToSpeechService.java
Other components
- Reader
Connections 19
- Reader → Application startup: opens PDF
- Application startup → Configuration: loads settings
- Application startup → Input and commands: creates commands
- Application startup → Reading-state database: opens databases
- Application startup → Main window: creates window
- Main window → PDF document: manages documents
- PDF document → Document view: provides pages
- Document view → PDF renderer: renders pages
- Reader → Quick open: finds recent files
- Reader → Navigation features: jumps and browses
- Reader → Search: searches documents
- Reader → Annotations and marks: creates annotations
- Reader → Portals: links locations
- Annotations and marks → Reading-state database: persists state
- Portals → Reading-state database: persists links
- Reader → Touch controls: uses touch UI
- Reader → Android activity: opens on Android
- Android activity → Speech service: controls speech
- Reader → Source synchronization: syncs source