217a73f3c0
* Rejig frontlight warmth API to more closely match the existing API, and, hopefully, clarify some of its quirks, and reduce boilerplate and duplicate code in platform implementations. * Tweak Kindle:setDateTime to prefer using the platform's custom script, as in interacts better with the stock UI. And make the fallbacks handle old busybox versions better. * Add Kindle PW5 support ;). * Add warmth support to the Kindle platform. * Random TextBoxWidget cleanups: make sure we immediately free destroyed instances. * FrontLightWidget: Refactor to make it slightly less obnoxious to grok and update; i.e., separate layout from update, and properly separate brightness from warmth handling. Move to simpler widgets instead of reinventing the wheel. * TextBoxWidgets: Implement `setText` to match TextWidget's API, as some callers may be using the two interchangeably (i.e., Button). * NaturalLightWidget: Make sure we pass a string to InputText * InputText: Add debug guards to catch bad callers not passing strings ;). |
2 years ago | |
---|---|---|
.ci | 2 years ago | |
.circleci | 2 years ago | |
.github | 2 years ago | |
base@c4c46e5785 | 2 years ago | |
doc | 2 years ago | |
frontend | 2 years ago | |
l10n@7e0834a0e2 | 2 years ago | |
metadata/en-US | 3 years ago | |
platform | 2 years ago | |
plugins | 2 years ago | |
resources | 2 years ago | |
spec/unit | 2 years ago | |
test@86eeb0b43d | 8 years ago | |
tools | 2 years ago | |
.busted | 9 years ago | |
.codecov.yml | 5 years ago | |
.editorconfig | 8 years ago | |
.gitignore | 4 years ago | |
.gitmodules | 3 years ago | |
.luacheckrc | 3 years ago | |
.luacov | 7 years ago | |
.shellcheckrc | 4 years ago | |
.travis.yml | 7 years ago | |
COPYING | 10 years ago | |
Makefile | 2 years ago | |
README.md | 3 years ago | |
datastorage.lua | 2 years ago | |
defaults.lua | 3 years ago | |
kodev | 3 years ago | |
reader.lua | 2 years ago | |
setupkoenv.lua | 2 years ago |
README.md
KOReader is a document viewer primarily aimed at e-ink readers.
Download • User guide • Wiki • Developer docs
Main features
-
portable: runs on embedded devices (Cervantes, Kindle, Kobo, PocketBook, reMarkable), Android and Linux computers. Developers can run a KOReader emulator in Linux and MacOS.
-
multi-format documents: supports fixed page formats (PDF, DjVu, CBT, CBZ) and reflowable e-book formats (EPUB, FB2, Mobi, DOC, CHM, TXT). Scanned PDF/DjVu documents can also be reflowed with the built-in K2pdfopt library.
-
full-featured reading: multi-lingual user interface with a highly customizable reader view and many typesetting options. You can set arbitrary page margins, override line spacing and choose external fonts and styles. It has multi-lingual hyphenation dictionaries bundled into the application.
-
integrated with calibre (search metadata, receive ebooks wirelessly, browse library via OPDS), Wallabag, Wikipedia, Google Translate and other content providers.
-
optimized for e-ink devices: custom UI without animation, with paginated menus, adjustable text contrast, and easy zoom to fit content or page in paged media.
-
extensible: via plugins
-
fast: on some older devices, it has been measured to have less than half the page-turn delay as the built in reading software.
-
and much more: look up words with StarDict dictionaries / Wikipedia, add your own online OPDS catalogs and RSS feeds, over-the-air software updates, an FTP client, an SSH server, …
Please check the user guide and the wiki to discover more features and to help us document them.
Screenshots
Installation
Please follow the model specific steps for your device:
Android • Cervantes • Kindle • Kobo • Linux • Pocketbook • reMarkable
Development
Setting up a build environment • Collaborating with Git • Building targets • Porting • Developer docs
Support
KOReader is developed and supported by volunteers all around the world. There are many ways you can help:
- fix bugs and implement new features
- translate the program into your language or improve an existing translation
- document lesser-known features on the wiki
- help others with your knowledge on the forum
Right now we only support liberapay donations, but you can also create a bounty to motivate others to work on a specific bug or feature request.