Skip to content

dheerajshenoy/dodo

Repository files navigation



A fast and unintrusive PDF reader.

GitHub License

Dodo is a lightweight, high-performance PDF reader designed to provide a smooth and efficient document viewing experience. Built using MuPDF and Qt, it supports tabs, does fast rendering, annotation handling (highlights and rects), and advanced features like SyncTeX integration for LaTeX users. Whether you're reading academic papers, technical manuals, or everyday documents, this reader offers a streamlined interface and robust functionality with minimal resource usage.

Warning

Dodo is currently in alpha and may experience crashes or instability.

Note

dodo version is v0.2.3-alpha

Table of Contents

Features

  • Fast rendering with MuPDF backend
  • SyncTeX support
  • Caching and pre-fetching pages for faster page rendering
  • Vim-like keybindings
  • Configured using TOML language
  • Tabs support
  • Faster search
  • Visited file location saving
  • Link awareness
  • Save annotations (highlights only for now)
  • Text highlight
  • Jump Marker (to help locate where link takes you to)
  • Wayland support

Dependencies

  • Qt6
  • mupdf
  • libsynctex [for reverse searching and goto reference from LaTeX]
  • cmake (for building)
  • ninja (for building)

Installation

Note

There are two branches in dodo.

  1. main (default)
  2. untabbed

untabbed is dodo without tab support and many other features present in the main branch like session management etc. No further updates will be pushed to the untabbed branch. If you don't want tabs, go for untabbed branch else stick with the default branch.

Note

The install.sh script installs latest version of MuPDF library required for dodo

Arch Linux

sudo pacman -Syu qt6-base libsynctex cmake ninja
git clone https://github.com/dheerajshenoy/dodo
cd dodo
./install.sh

Debian/Ubuntu

sudo apt update && sudo apt install qt6-base-dev libsynctex-dev cmake ninja-build
git clone https://github.com/dheerajshenoy/dodo
cd dodo
./install.sh

Others

  1. Install the required dependencies
  2. Clone the repository and build similar to the Arch Linux build approach.

Usage

Check out usage to learn how to use dodo.

Configuration

Dodo will search for config.toml file in the ~/.config/dodo directory, and load it if it exists. Check out the config.toml file for reference

Theming dodo

Kvantum (Recommended)

Kvantum is a powerful SVG-based theme engine for Qt. It supports dark themes, custom widgets, and integrates well with Qt6.

Check out kvantum's install page here

Once installed, you can select a theme you like in the kvantummanager app and add QT_STYLE_OVERRIDE=kvantum env variable. On the next launch, you should have the specified theme loaded in dodo.

Spotlight

Demo video of few of the features of dodo

Demo of speed

fast.mp4

Jump Marker

jump_marker.mp4

TODO

Check out TODO.md

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.

FAQ

Can I use Dodo on Wayland?

Yes, Dodo supports Wayland natively.

How do I report bugs?

Open issues on the GitHub repository here.

About

A fast and unitrusive PDF reader

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages