KOREADER
USER GUIDE
26.11


You are currently reading the English (main) version of the KOReader User Guide. We have also other languages, which are translated by volunteers:


To see the translation progress and/or to contribute to the translation efforts of the user guide, please visit the Weblate translation page of our project.

User guide translation status
Guide for this user guide :)

This guide is primarily designed for color screens. Especially if you are using it for the first time, we highly recommend reading this on a computer, tablet or a mobile phone instead of a black and white e-ink screen. Seeing different categories of text properly will make your life easier while learning how to use KOReader. Of course you can read this on your e-ink device too, but the experience will not be optimal.

You can use the search function of your browser to find a specific topic or keyword (generally Ctrl + F). If you have a suggestion, correction or question related to this user guide, you can write to this GitHub discussion thread.


This guide is written and
checked by humans



Explanation of different text colors and styles used in the guide

KOReader user interface (gray boxes) These items always refer to parts of KOReader. It can be something on the screen that you can tap/select/set or some feature of the application:

Status bar Font weight

Menu paths (green) These are the locations of settings and menu items in the KOReader menu system:

External apps and services (purple) These are services or applications that work with KOReader. They are marked with a different color because we want to emphasize that these are not a part of KOReader project so they are not under our control:

Calibre, Readwise, KoHighlights...

Internal links (teal) These links with a house icon at the end, take you to the other parts of this guide:

Gestures

External links (blue) These are regular links that go outside the guide:

Project Gutenberg


We also have different boxes and tags in the guide to inform or warn you:

I am a warning box. I explain things when you need to be extra careful.
I am an info box. I give contextual information or extra explanations.
I am a tip box. I contain tips that makes your life easier when using KOReader.

I am an ADVANCED tag. If you see me on a heading, it means that you need to have a certain degree of technical knowledge like working with a file system, CSS knowledge, installation of external files etc. depending on the procedure.

These stars on the navigation menu show the newly added sections since the last guide update. Also two buttons at the corner of the page with the same stars allow you to jump between newly added sections directly. Note that navigation menu stars don't cover all the additions, smallest headings are omitted there to avoid crowding. But you can see all of the additions using the corner buttons.


KOReader is developed and supported by volunteers all around the world. You can be a part of this project too by:

  • Fixing bugs and implementing new features
  • Translating the program into your language or improving an existing translation
  • Helping others with your knowledge in the forums or on GitHub issues and discussions

Check REACH US section for the links.


Recently we noticed some "official looking" KOReader pages on the net which are not a part of our project. We advise you to be careful and only use these official sources for downloading KOReader:
  • koreader.rocks: Our official domain which you should see in your address bar right now. Other domains including koreader.com are NOT US!
  • KOReader GitHub page: This is where you can download the official releases for all operating systems and devices.
  • F-Droid release: Android version of KOReader which is provided by us. There is no Play Store version of KOReader!
1 WHAT CAN YOU DO WITH KOREADER?

Despite its minimalistic looks, KOReader is a very powerful and customizable application. This section is like a how-to oriented table of contents. So if you are a new user, this is the best place to start. Here you can discover what KOReader can do and learn how to do it by following the links.

Name of KOReader comes from the beginnings of the project: Kindle/Kobo Open Reader. Of course the reader grew so much over the years, now an accurate abbreviation would be something like KKPRCSALMOReader (Kindle Kobo Pocketbook Remarkable Cervantes Sony Android Linux MacOS Open reader) but this is not that nice to pronounce, so we choose to keep it simple :)
Transfer your reading materials in different ways
Adjust the appearance of text as you wish
  • Change fonts (including your own), font size, contrast, boldness, kerning, word spacing, word expansion, text alignment, line spacing, column layout, margins... FORMATTING YOUR E-BOOK
  • Use speed reading plugins like Perception Expander and FastReader (RSVP) for faster reading READING IMPROVEMENTS
  • Use the included powerful style tweaks or write your own ones to change how your books are rendered precisely Style tweaks
  • Invert screen colors for night mode manually or automatically Auto Warmth And Night Mode
  • Adjust your frontlight color warmth automatically Auto Warmth And Night Mode
Take notes and make highlights while reading
Export your notes and highlights flexibly
  • Export your notes and highlights to your device as text, markdown, HTML, JSON or Kindle clippings format Exporting highlights
  • Synchronize to online services like Joplin, Readwise, Memos, Flomo and XMNote Exporting highlights
Arrange and browse your library easily
  • Powerful File Browser where you can copy, move, rename, create, delete files and folders and perform bulk operations File Browser Usage
  • See your library as you like with many detailed and mosaic views File Browser Usage
  • Add your books to your Favorites for quick access or create your own Collections with sorting and filtering Collections
Fly through your book with powerful tools
  • Skim widget to quickly jump between pages, chapters, bookmarks Skim Widget
  • Unique Book map to see a bird’s eye map of your book including all your notes and highlights Book Map
  • Page browser to move through pages like a film reel Page Browser
  • Bookmarks browser to browse your highlights and notes easily BOOKMARKS, HIGHLIGHTS AND NOTES
  • Create an alternative table of contents automatically or manually if you don't like the one that comes with your book Table of Contents Tools
  • Hide and exclude certain parts of your book like Appendix, Index, References etc. for more accurate page counts Excluding sections: Custom hidden flows
Control KOReader like a virtuoso
  • Powerful gesture system with 200+ actions allows you to control every aspect of KOReader with a tap or swipe Gesture Categories
  • If you have a keyboard (internal, wired or bluetooth) you can also assign keyboard shortcuts to these actions Keyboard Shortcuts
  • Or create your own menus with your favorite actions with Quick Menu and access them with a tap or swipe Quick Menu
  • Create Profiles to control every aspect of KOReader and automate actions Profiles
Search, Lookup and Translation tools
  • Search the document by selecting or entering text (including regular expressions)
  • Search in your bookmarks, highlights and notes
  • Lookup text in Wikipedia or in installed dictionaries and translate it by a long-tap
  • Translate parts of the text or the whole page between more than 130 languages
  • Discuss, translate or explain the text using online or local AI models (after installing the plugins) Plugin types
KOReader can control your device
  • KOReader can update itself Device Tips
  • Dim or turn off your screen light after a set interval
  • Set your page refresh intervals for different reading conditions Adjusting the page refresh interval
  • Set your own sleep screen from many options like random images, book cover, reading, progress and even a screenshot of a picture in a book.
  • Set battery charge limit alarms to prevent deep discharge/over charge Device Tips
  • Set a memory usage alert (useful for devices for smaller memory) and optionally restart KOReader upon reaching this limit Device Tips
PDF documents are easier to read on e-ink with KOReader
Advanced features for power users
  • Add your own CSS style tweaks for books Style tweaks
  • User patches system which allows you to change the core behaviors of KOReader User patches
  • Create a QR code from your clipboard to share text and links to other devices
  • View HTML source of an EPUB document
  • Create and edit text files on your device
  • Open a terminal emulator and run commands on your device
  • See your CPU, memory and battery usage stats
2 BASIC USAGE
2.1 Transferring Documents

KOReader supports PDF/PDB/XPS, EPUB/MOBI/FB2, DJVU, CBR/CBT/CBZ, DOCX/RTF, HTML/HTMLZ, TXT/MD and CHM files. It can also open ZIP archives and show image files.

There are many ways to transfer your documents to your device. Note that you may need to restart KOReader to index the transferred documents (or refresh directory if you have Pocketbook/Android).

In addition to transferring files the same way you would with the built-in reader application, other options are available depending on your device:

  1. USB mass storage mode within KOReader: This mode is available for KOBO and some CERVANTES devices.
  2. Cloud storage (Dropbox/FTP/Webdav): To use this function you have to add accounts for a cloud storage server via menu shown below. Process is explained via info buttons in the menu while adding accounts:
  3. SSH/SFTP access: KOReader can act like an SSH server, which you can access from a computer to transfer files (available on Kobo, Kindle, Cervantes). You can use an SFTP application (like Filezilla) or access via your file manager if your operating system supports. Check our wiki for how-to and also see the warning box below.
  4. Calibre transfer: With the Calibre plugin you can send documents from your Calibre Library directly to your KOReader devices via a wifi connection. Check our wiki for how-to.
  5. News downloader: With this plugin you can download RSS and Atom news entries as HTML files. Check wiki for how-to.
  6. OPDS (Open Publication Distribution System) catalogs: You can access public catalogs or use your own servers to access your library. More info here: Using OPDS Catalogs
  7. Wallabag: With this plugin you can retrieve articles from Wallabag, a server based read-it-later service like Pocket. Check wiki page for more info.
Be careful if you decide to use the SSH feature without a password, because this allows open access to your device. But if you are using a local wifi and turn on your device wifi for a short time, this risk is negligible.
Accessing your books

Following methods are available for accessing your books:

  • File Browser - Dedicated section is here: File Browser usage
  • Favorites - A list which you can add your books by long pressing on them in the File Browser
  • History - List of books you opened
  • Collections - Personalized book lists you created. Dedicated section is here: Collections

You can change how these screens look from:

If you want to change how many items are visible on these screens, look here:

You can assign gestures for each of these dialogs. For example while reading a book, you can access your History or Favorites with a gesture and open another book without going through the File Browser.

You can search a book in the History screen by filename or book metadata from the upper left hamburger menu button.

You can also set KOReader to start with Favorites or History screen instead of File Browser via:

2.2 Tap Zones

In the image above, you can see the positions of the default tap zones of KOReader. To show the top menu or bottom menu you can tap the indicated zones. You can also swipe down the upper zone to show the top menu. On non-touch devices like Kindle 4 you can open the bottom menu by pressing the button that corresponds to the ENTER/OK action.

As indicated in the image above, top menu opening zone is divided into 3 areas. If you swipe down the first 1/3 of the top edge, top menu opens with the first menu tab. Second 1/3 area opens the most recently used menu tab. And last area opens the last menu tab.

If you want top open both menus at the same time, you can set top menu zone to open both the top and bottom menu at the same time via this menu:

Corner tap zones can be used for many different type of gestures including TAP, DOUBLE TAP, TWO FINGER TAP and TAP and HOLD.

PREVIOUS PAGE and NEXT PAGE zones can also be used for DOUBLE TAP gestures at the same time.

Status bar zone can be tapped to cycle between the status bar items if only one item is visible. If all items are visible, tapping will show and hide the status bar.

2.3 Changing Basic Settings

These are just a few quick settings to get you started. Please read the FORMATTING YOUR E-BOOK section of the guide for a detailed walkthrough. You can learn more about the Bottom Menu which is mostly used to adjust text, from here: Bottom Menu Items


Change the font*
Adjust text size
Make text darker
Invert the colors on screen (white on black text)
*Font selection is only available on reflowable documents (EPUB, HTML, DOCX, RTF, TXT…). Fixed-layout documents like PDF/DJVU are not supported.
Controlling the backlight / frontlight

You can control your screen light via this menu. If you have warm lighting (normal white LEDs+orange ones) you can control them separately from this dialog. You can also define a gesture for this dialog:

Changing the screen displayed while sleeping
Sleep screen customization is only available on Cervantes, Kobo, Kindle and Remarkable devices. On Pocketbook, Android, Linux and MacOS, this feature is not supported.

You can choose a book cover or a custom image as sleep screen via this menu:

You can use JPG/PNG files as wallpaper (properly dithered grayscale images look best). Transfer the files from your computer into any folder on your device. And choose this folder as your sleep screen wallpaper folder via this menu:

Please refer to this Mobileread forum post for advanced information about preparing sleep screen images.

2.4 Keyboard Usage

If you are looking for information about keyboard shortcuts, click here to go that section. This heading only explains the keyboard usage.

  • Tap outside the input field to close the keyboard, tap the input field to show the keyboard again
  • Swipe up keys to enter uppercase version of that letter (or lowercase if you are already in shift mode)
  • You can change the appearance of the keyboard:
  • You can select more than one layout:
  • You can change between your selected layouts by tapping the icon on the keyboard
Entering extra characters

Koreader keyboard allows entering extra characters when you tap and hold a key. Most frequently used extra characters are shown below. You can tap and hold the key in the gray box to get the surrounding characters:

In addition to the long-press popup, you can also enter these extra characters by swiping on a key. In the example below, you can swipe up on the a key to enter an uppercase A or swipe other directions to enter the characters shown. Note that the example shown includes the full popup for demonstration. You don’t need to open this popup, you can directly swipe on the keys. Once you get used to the locations of the extra characters, you can enter them much quicker this way.

If this feature interferes with your usage, you can disable it by unchecking:

Additionally there are some shortcuts for easier text manipulation. You can tap and hold these keys for extra actions:

  • Left Arrow - Moves the cursor to the beginning of the line
  • Right Arrow - Moves the cursor to the end of the line

Also backspace key behaves different when you make swipe gestures on it:

  • Tap: Delete a character
  • Long-press: Delete the whole line
  • Swipe left: Delete part of the word left of the cursor
  • Swipe up: Delete the whole word

For more information, you can check the related wiki page.

KOReader also integrates the Chinese stroke keyboard for inputting simplified and traditional Chinese characters. You can find more info about it in our wiki.

2.5 Auto Warmth / Night Mode

This plugin allows you to adjust frontlight warmth in devices with natural (yellow/orange) light and set night mode (inverted screen colors – white text on black background) automatically according to a schedule. It can control them both or you can choose only warmth control or only night mode control mode, so you can adjust the other one manually.

This plugin comes enabled as default when you install KOReader. If for some reason it is not in the menu, you can enable it here:

If you have a PocketBook device and frontlight or warmth slider is not working in KOReader, please be sure that in the PocketBook reader (which comes with your device) SmartLight-Auto option is set to Disabled.

You can adjust the warmth of your screen frontlight automatically in two different ways:

Fixed schedule: In this mode your frontlight warmth changes according to the daily schedule you entered. This mode is static, it doesn’t account for daylight length. The schedule stays the same all around the year.

Sun's position: This option calculates Sun’s position in your location according to coordinates and altitude information you entered. Frontlight warmth is adjusted gradually according to this calculated Sun position data. This mode is dynamic. As the length of daylight changes around the year, plugin adjusts the schedule accordingly.

First have a look at this image to familiarize yourself with the terms used in the plugin:

Fixed Schedule Mode
  1. Go to the plugin menu:
  2. Tap Activate menu item and then tap According to the fixed schedule
  3. Go back to previous menu and tap Fixed schedule settings menu item
  4. Set your warmth transition schedule by setting times for various items here. Refer to the image above for an explanation of items.
Sun’s Position Mode
  1. Go to the plugin menu:
  2. Tap Activate menu item and then tap According to the sun's position
  3. Go back to previous menu and tap Location settings menu item. Set your coordinates (necessary) and altitude (optional) correctly and give a name to your location.
  4. Go back to previous menu and tap Warmth and night mode settings menu item
  5. Set your warmth transition schedule by setting times for various items here. Refer to the image above for an explanation of items.

You can see your current schedule via Currently active parameters menu option.

Night Mode

While setting the warm light percentages for different intervals, you can also set that interval to Night Mode, which inverts the screen colors when that interval starts. If your minimum frontlight is still too bright or if you prefer a dark page background, you can activate this feature. To enable this, in the dialog below, tap the Night mode checkbox and tap Set.

When you do this, a moon icon will appear in the menu next to this interval. To disable night mode, just disable the Night mode checkbox in that interval.

Frontlight auto on/off

This feature turns your frontlight on at sunset and turns it off at sunrise according to your Currently active parameters in this plugin. You can override this change by manually turning your frontlight on/off. On the next sunrise/sunset, AutoWarmth will toggle it again if it is necessary. You can activate it by selecting Frontlight off during the day menu item in this plugin.

Faster warmth transitions

If you want your frontlight warmth to change quickly instead of a more gradual change:

  1. Set the mode to Fixed schedule following the instructions above
  2. And adjust the settings similar to the image below:

As you can see in these settings above, there is only a one minute difference between day-night transition. So the screen warmth goes from 0 to 100 (or reverse) in only one minute. You can increase this time separation to make the transition duration longer.

3 LEARNING THE USER INTERFACE

KOReader has a simple, mainly black and white user interface because gradients and different shades of gray can cause flashing and ghosting on e-ink screens which can degrade reading experience.

KOReader has 2 main interfaces: reading screen and file browser. We will explain reading screen here. File browser is explained in this section of the guide.

3.1 Reading Screen

READING SCREEN has two menus:

  • TOP MENU includes menu items related to the general usage of KOReader. You will access your books, KOReader preferences, plugins etc. here.
  • BOTTOM MENU is focused on options for document formatting like font weight/size, line spacing etc. While adjusting your text appearance, you will mostly interact with the BOTTOM MENU.

Image above shows the elements you can see on your reader screen when reading a book:

  1. Indicator icons: These icons inform you about certain ongoing processes and states. You will see them at the top left corner of your screen during certain operations. Normally they are smaller but here we show them bigger for clarity. Next heading explains these indicator icons in detail: Indicator icons
  2. Status bar:This is a highly configurable area where you can see various information about your book and KOReader. Click here to go to the section: Status bar
  3. Alternate Status bar: In addition to the default Status bar, we have an Alt status bar which appears at the top of the page if you enable it. Click here for details: Status bar
  4. Publisher page numbers: If the publisher of your book included the page numbers from the paper printed version of the book, you will see them like this. Click here for more info about publisher page numbers: Page Numbering
  5. Highlight types: You can see the different highlight types here. Also you can make colored highlights if your device has a suitable screen. Click here to go to the section: Bookmarks, Highlighting and Notes
  6. Note marker: Note marker icon shows up when you add a note to a highlight. We have different types of note markers. Click here for more info: Bookmarks, Highlighting and Notes
3.2 Indicator icons

KOReader has some indicators to inform you about certain ongoing processes and states as you can see in the image above. You will see them at the top left corner of your screen during certain operations.

Partial rendering icons This group of icons belong to the partial rendering procedure and probably you will see these icons more frequently than the others. You see these icons when you change the settings on the bottom menu.

This feature, allows you to preview the text appearance adjustments much quicker by only rendering the current chapter instead of the whole book. Also rotating your screen orientation is now much faster thanks to this feature. This feature is ENABLED by default. If necessary, it can be disabled per book (with a tap), or globally (with a long-tap) on:

After confirming your changes whole book has to be re-rendered so this is a multi-step procedure. These icons shows the stage of rendering as explained below:

In this stage, document is partially rendered. Page count, footer info and many things are innacurate. You can see how the new settings look and adjust further. You can also turn pages, jump links in this state.

A full rendering is happening in the background. You can still turn pages, jump links, change settings.

Full rendering is done, but not yet applied because KOReader is waiting for you to be idle to reload the rest of the book (idle=not interacting with the device). You can still turn pages, jump links, change settings.

You've been idle for a while so KOReader is now reloading the whole document. At this step KOReader is blocked to prevent interaction.

Partial rendering is only possible if your EPUB is composed of multiple fragments. EPUB files are basically .zip archives that contain .html files. Some books can be a single .html file while others may be composed of multiple .html files like each chapter of the book is a separate .html file. If your book is only a single .html file, partial rendering can not work, because for each change KOReader still has to calculate the whole book.

Highlighting icon This icon shows up when you are in the Select and highlight mode. KOReader has an additional highlight mode which allows you to start a highlight and turn pages to make long highlights which can span multiple pages. You can read about this in the BOOKMARKS, HIGHLIGHTING AND NOTES section of this guide. When you start a highlight in this mode, this icon is shown at the corner to remind you that you are still in the highlighting mode. It disappears when you finish your highlight by selecting the end of the passage or when you cancel the highlight (by tapping again on the beginning of your highlight or on this highlighting icon).

Pokemon ball icon This icon shows up when you press for a long time on a word (intentionally or accidentally). KOReader has a normal long press menu. And an additional very long press menu when you hold your finger longer than 3 seconds. This icon means that you activated this very long press menu.

Flip mode icon This icon shows up when you tap the top left corner if:

  • You are reading a PDF document
  • And you are in a zoomed in view other than 100% (column, row or manual) or in the reflow mode

This mode temporarily displays the full page without cropping, scaled to fit your screen. You can turn the pages in this mode. To exit this mode, tap on this icon.

3.3 Status bar

KOReader have two status bars, a Bottom status bar which is enabled by default. And we have an Alt status bar which appears at the top of the page if you enable it. This Alt status bar is available only in reflowable documents (epub, html, docx, rtf, txt…).

Bottom status bar is the newer one which is actively maintained. Alt status bar is a remnant from earlier versions of KOReader so we are not adding new features to it. But you can still enable this Alt status bar if you find it useful. You can enable it from:

You can configure the Alt status bar from this menu:

Instructions in the rest of this section are for the Bottom status bar.

Chapter progress bar

Progress bar in the status bar normally shows your progress for the whole book. But it can also show your progress for the current chapter instead. This can be useful for example, if a book has lots of short chapters. In this case it might be hard to see your progress in the current chapter so chapter status bar can be more informative here. You can enable the feature from this menu:

Also you can assign a gesture to switch between normal and chapter progress bars. You can find this action under:

Configuring the status bar

You can configure the bottom status bar from this menu. Feel free to explore the SETTINGS sub-menu to customize your status bar as you like.

There are many items you can show on the status bar. But by default, only one is shown at a time and you have to tap on the status bar to cycle between them. If you want to show all items at once, enable it from here:

Sorting the status bar items:

If you are showing the progress bar and the status bar items on the same line, you will notice that the progress bar's width changes slightly depending on other items' sizes. If you find this disturbing, you have the option to make the progress bar width fixed, by enabling the Lock width at minimum option from its menu:
Changing the status bar font

You can change the font of status bar items from here:

You can use all your installed fonts for the status bar. If you want to fit lots of information, we can suggest DINish Condensed font, which you can download from its project page and install using the same procedure which you can find here: Using your own fonts

Using "dynamic filler" item for status bar alignment

KOReader's status bar has a special item called dynamic filler. When you add this invisible item to your status bar, it will expand to fill the available space like an inflated balloon, pushing other items on both sides as you can see in the image below (dynamic filler is visualized as a blue rectangle):

You can enable and move this item like the other status bar items from the same menu. You can also combine this item with the custom text item explained below to adjust your layout further.

Using "Custom Text" item for status bar alignment

There is a special status bar item named Custom text. This item can show your chosen text in the status bar. You can also use this feature to create a separator between the status bar items as you can see in the example below:

  • First enable this option with a short press on it from this menu
  • Then long-press on it again to open its settings. Enter a "space" character in the first box and enter the number of repetitions in the second box, which will determine how wide your separator will be.

You can choose another character as a separator. You can also move this item like other status bar items to change its order to adjust your groups.

You can also use this item in combination with the dynamic filler item explained above to adjust your layout further.

Status bar presets

KOReader allows you to have more than one status bar layout and switch between them. Using this feature, you can have different layouts for cases like these examples:

  • A layout showing more items when using wider landscape orientation
  • A layout with the chapter name item when reading specific books
  • A layout with memory usage item when reading large comics to keep an eye on your memory

To create a preset, first adjust your status bar to your liking by adding and ordering items (as explained before in this section). Then select:

This will create a preset with your current status bar layout. Repeat this for other layouts that you want to create. After this, you can switch between your new layouts from the same menu. You can also use gestures, profiles and quick menu to quickly switch between your status bar presets.

External content item

External content is a special status bar item that allows KOReader plugins to show content in the status bar. For example Read Timer plugin uses this item to show the timer in the status bar. Currently you don't need to enable it manually but you can find it here:

3.4 Top Menu Items

Here we will only give an overview of the items in the top menu structure to make you familiar with the menu. Detailed information is available under the related sections of this guide.

  • NAVIGATION This menu contains items that allows you to navigate the book you are currently reading. Table of contents, bookmarks, book map...
  • TYPESETTING This menu contains items that allows you to change the appearance of your book. Font settings, style tweaks...
  • SETTINGS This menu contains settings for KOReader and your device. E-ink, light, gesture settings...
  • TOOLS This menu contains plugins that can expand the functionality of KOReader.
  • SEARCH This menu contains items related to search and lookup. Text search, dictionary, translation, Wikipedia...
  • FILE BROWSER This button opens the file browser which is the interface for managing your library.
  • MAIN This menu contains tools for accessing your books like history, favorites, collections. Also book information, update and exit items are under this menu.
3.5 Bottom Menu Items
If you long-tap on their names in the bottom menu, KOReader will show you an explanation.

View mode If you change to continuous mode you can scroll the document like a web page. This mode is more suitable for non e-ink screen types (LCD, OLED). In continuous mode you lose top and bottom margins so text may be cut on the first and last line of screen. To solve this problem you can enable Page overlap:

Render mode option determines how your document is rendered by KOReader. Default is WEB and generally you don’t need to change this setting. When a book (or saved web page) is very complicated (specified widths or margins, negative margins, floats etc.) and layout looks bad or overflow the screen, you can try other rendering modes.

Zoom (dpi) setting can be thought of as a general zoom factor for the document (except font size). At 96 dpi (which is the default setting), images in the document are rendered at their original dimensions. Basically you will use this setting if you want to make images bigger without making the text bigger.


Word spacing and Word expansion settings are related and they determine how your text will look when it is justified. When you justify text, space is added between words so that both edges of each line are aligned with both margins. Since word counts of lines are not equal all the time, in justified alignment, text has to be compressed or expanded to fill the line.

Word spacing How much the space characters in a line of text can be compressed to fit more words. This setting doesn’t affect words, it only changes the space between them.

Word expansion If you have too much white space in a line, how much of that can be distributed into the words by expanding them. This setting affects the appearance of words. If you don’t want your words to expand, set this to none.

You can experiment with different settings until the text looks pleasing to you, then set them as defaults via their respective dialogs.


Contrast and Font weight are two options that you can use to make your text bolder (or lighter). You can achieve the same appearance with either of these options but they use different methods to achieve it. Of course you can use them both at the same time.

The differences between them can be summarized as:

Contrast

+ Doesn’t change font width, book length stays the same

+ Doesn’t need to re-render document, faster

- Might look bad on LCD or low DPI screens

Font weight

+ Will use proper weighted fonts if you have them installed

+ Looks better on LCD or low DPI screens

- Has to re-render fonts, slower

Font kerning adjusts the spacing between letters to achieve a visually pleasing result. Default is best option, which might be slower when opening files (depending on your device) but has better support for ligatures (see the image below for an example), joined Arabic glyphs and some other scripts. If your device is slow, you can try good which is faster and may still look correct with western latin-script text.

Font hinting is a typographical technique that adjusts the characters in a font to fit in a low-resolution grid, like an e-ink screen. When enabled, the result is sharper and easier to read characters, at the cost of slight distortion of the original font design.

Difference of font hinting is more visible on standard-resolution screens or at smaller font sizes. On a very high-resolution screen, the difference is much less noticeable because the pixels are small enough.

Here is a more detailed comparison:

Hinting OFF

  • KOReader shows the font's true mathematical shape, without forcing it to snap to the pixel grid.

Hinting ON

  • The font is modified to fit the pixel grid of your screen. Letter shapes may differ slightly from the original font.
  • The font may appear slightly softer, blurrier, or have some unevenness (e.g., the two vertical lines in an 'M' might look like they have different thicknesses).
  • The font appears sharper, crisper, and more solid. The letters have consistent stroke weights.

In KOReader, font hinting is enabled by default and uses the FreeType library's hinting algorithm instead of font's internal instructions (to be safe because font internal instructions might be broken). But you can try the font designer's instructions embedded in the font file to see if it looks better:

  1. Off Hinting is disabled.
  2. Native KOReader uses the font's internal hinting instructions.
  3. Auto (on by default) KOReader uses FreeType's hinting algorithm, ignoring font's internal hinting. Handles CJK text better.

Alt status bar enables an alternative status bar which is available only in reflowable documents (EPUB, HTML, DOCX, RTF, TXT…). After enabling it here, you can configure alt status bar via:

Embedded style and embedded fonts determine if publisher’s styles and fonts embedded in the document will be used (or ignored) to render the document. These are general on/off switches. You can achieve more fine tuned tweaks for your document via:

Image scaling determines how images in your document are rendered. Best looks more pleasing but it is slower.

3.6 User Interface Tips

KOReader’s user interface and options can change depending on the file type you open. There are two main categories of documents:

  1. Fixed layout documents (pdf, djvu, image files...)
  2. Reflowable documents (epub, html, docx, rtf, txt…).

KOReader has lots of features so its menu system reflects this complexity. We have a Menu Search feature for finding menu items quickly. If you remember the name of a menu item but don't remember where it is, you can use this feature:

Also you can assign this feature to a gesture or add it to your Quick Menu for faster access.

On the bottom menu if you tap and hold an option’s name, you can see its explanation.

You can change the interface language via:

If you want to change the size of user interface, there is a DPI setting for that:

You can choose a value from the menu or select Custom dpi to enter a value for fine tuning: Higher DPI = Bigger Interface. Note that there is also a Zoom (dpi) setting in the bottom bar. That one is related to the documents only. You can find the explanation in the next section.

If you tap and hold an option or menu item (font weight, line spacing etc.), you can set its value as DEFAULT. The new value will only be applied to books opened from now on. Previously opened books will keep their settings. You can identify default values as a star (★) in the menu or as a black border around the indicators as seen below:

You can close full screen dialogs (History, Table of Contents, Reading Statistics etc.) by swiping down. (Except Bookmarks window. You can use any multi swipe gesture to close this one)

You can take a screenshot by making a long diagonal swipe with your finger. Also touching opposing diagonal corners will take a screenshot. You can use this second gesture for example when viewing an image. Also if your device has a keyboard, you can take a screenshot with the Alt + Shift + G shortcut.

If you want to open a random page of a book, we have a Jump to a random page action which you can assign to any gesture. It is in the Reader category of the Gesture Manager.

In dialogs containing adjustment arrow buttons like the one above, you can tap and hold on arrow buttons to change the value in bigger increments.

You can close this type of dialog (non-full screen) by tapping outside of its window.

You can move this type of dialog by holding its window title and dragging.

You can make this type of dialog semi-transparent by tapping and holding the window title (when you want to see the text under it while adjusting a value).

Creating new folders - In situations when you need to choose a location (cloud storage, move to archive plugin, exporter plugin), KOReader presents you a screen that looks like our File Browser. If you want to create a new folder while choosing:

  1. First navigate to the folder from the Folder chooser screen
  2. Then long-press the Home icon shown at the upper-left corner of this screen

KOReader supports dictionary lookup in EPUB and scanned PDF/DJVU documents. To see the dictionary definition or translation, just tap and hold a word.

Pressing and holding a word brings up a dialog where you can also search the selection in the document for more occurrences or look it up on Wikipedia.

When viewing dictionary and wikipedia results, you can long-press on word(s) in these windows to search them further in the dictionary/wikipedia. This will open another window with the result, so you won't lose your previous search.

If you have opened several search windows as described in the previous tip, you can close them all at once by long-pressing the close X button.

If you want to check the current date you can tap on the clock in the TOP MENU.

Scrolling types

KOReader has three types of touch scrolling. You can access this from:

You have to enable Continuous mode from the Bottom menu to be able to use scrolling.
  1. Classic scrolling: This mode works exactly like your phone/tablet scrolling.
  2. Turbo scrolling: This mode allows you to scroll faster than classic scrolling. Also you can scroll several pages without lifting your finger. Scrolling amount is proportional to the distance you move your finger after you initiated scrolling.
  3. On-release scrolling: This scrolling type is more suitable for e-ink screens. Because unlike other scrolling types, this mode doesn’t refresh your page continuously while scrolling. It works like classic scrolling but intermediate steps are not shown. So when you scroll with your finger and then release, page jumps to that position. This is especially useful to reposition and adjust the view if your book contains pictures or tables and you want to see all of it.
Go back to previous location

This useful feature works like the Back button in your browser. When you jump to some other part of the book using Skim widget, Bookmarks list, Book map etc. KOReader remembers your previous location. This is useful for example if you follow an internal link or reference. With one tap you can go back to where you come from. You can access this feature from:

Also you can go forward too, from the same menu. This feature is assigned to  multiswipe gesture. You can assign this to another gesture if you want (like tapping a corner) or add it to your Quick Menu.

Prevent flashing on pages with images and in the menu

KOReader normally perform a full refresh on pages containing images (which you can observe as a black flash). The reason is to get rid of the residue and ghosting from the previous page. But this might not be necessary depending on your device and personal preferences. You can disable this auto-refresh behavior here:

Also you can disable black flashing of user interface from here if it disturbs you:

5 FORMATTING YOUR E-BOOK

After learning the basics of KOReader from the previous section, now you want to start reading probably. But before that, why not customize the appearance of your book to make it look really nice.

In this section, we will do a step-by-step "digital typesetting" to make your e-book look more like a printed book. Aim of this tutorial is to get you familiar with the KOReader's text appearance settings so you can change them according to your taste later.

Here are the steps:

  1. Get a nice font: First we need a font for our book which looks more like a printed book (and at the same time readable on an e-ink screen). If you have a favorite font, you can use that. Otherwise you can download one of our suggestions below. We have two fonts for different looks: serif and sans-serif (if you don't know what these mean, just click on the links to see the difference):
    • If you like serif fonts, download Lusitana. This is an elegant classical serif typeface that is designed for reading long texts. You can download it from here.
    • If you like sans-serif fonts, download Red Hat Text. This is a geometric sans typeface that prioritizes legibility. You can download it from here.
  2. Transfer the font to your device: If you don't know how, check this part of the guide and come back here after copying the font to your device: Using your own fonts. You should restart KOReader after transferring the font so it can add the font to the font list.
  3. Set your new font: Open your book and go to the menu you see below. Your newly added font should appear at the beginning of the font list. Select it:
  4. Disable Embedded Fonts: Now we have to disable this option by setting it to off so KOReader will use our selected font instead of the one included in the book. If the setting is grayed out so you can't change the setting, this means that there are no fonts embedded in this book so you can skip to the next step:
  5. Adjust Font size: Now we will adjust our font size. For Lusitana 22.0 is a nice size. For Red Hat Text you can go down to 20.0. However, this is a personal preference, so you can set it to whatever looks best to you. Set the font size here:
  6. Adjust Font weight: If you are using KOReader on an e-ink device, your text will look less black compared to the LCD/OLED screens. Generally fonts are not designed specifically for e-ink screens so we will fix this by making it darker with the Font weight setting. +1 is a good starting point. Some thin fonts might require +2. You can set it more precisely by tapping the three dots at the end of the setting line:
  7. Adjust Line spacing: Now we will adjust the Line spacing which determines the space between lines vertically. This setting varies between fonts depending on the character geometries. For Lusitana you can set it to 135 %. Red Hat Text with its more open characters, can afford a tighter 120 %. Set it here:
  8. Adjust Margins: At this point our text should look pretty nice. Now we will adjust the margins (empty white space around our text) as the last touch and finish our adjustments. Now open this menu and adjust the settings as you see below:
    • L/R Margins: Set to level 7
    • Top Margin: Set to level 6
    • Bottom Margin: Set to level 6

After all these settings, your book should look more like a printed book. You can make further adjustments to these settings if you wish.

5.1 How To Save Settings

So after all these settings, you might ask "Will my other books look like this too?" No, not automatically. Because all these changes are valid only for the current book.

In other reader applications, when you change a setting, let's say the font used for books, it changes globally. Which means, if you change the default font to Verdana, any books you open after this change -including the ones that you are already reading- will be shown in this Verdana font.

KOReader's approach is different from this. We save appearance settings per book. This gives you the flexibility to change your settings for the current book without affecting others. For example if you have some fantasy books, you can change the font to a medieval looking one only for these books. Or you can set some books to open in landscape orientation or double column mode.

So this is how KOReader works:

  1. KOReader settings like font size, line spacing etc. have default values.
  2. If you open a new book, KOReader refers to these default values to set the appearance of your book.
  3. When you make changes in a book, like adjusting the text size, they affect only this specific book. Because your changes won't modify the default values, so newly opened books won't be affected.
  4. But you have the ability to save your changes as defaults and when you do this, they will be used for the newly opened books too.

Let's see on an example:

During this exercise, we increased the Font weight of our book to +1.00. Now open the Font weight menu and press the three dots at the end of the Font weight setting line. A dialog window will open and you will see this: Default value: +0.00. This means that when you open another book, its font weight will still be 0 (Default value), instead of +1 as we have set before.

So to make a setting permanent, you have to set it as default. There are two methods in KOReader for setting these default values:

  1. Setting individual settings as defaults
  2. Setting "all of the settings" as defaults at once
1. Setting individual settings as defaults

Settings in KOReader generally can be set as default with a long-press. Have a look at the screenshot below:

Values on the right side marked in blue can be long-pressed to set them as defaults. Let's say you want to make the text bolder. If you press on +1 normally, it will change only for this book. But if you long-press on it, you will see this dialog:

If you press the Set as default button, this book and the books that you will open in the future will have +1 font weight.

This "long-press to set as default" rule works in menus too. For example when changing the font from the top menu:

  • short press = change the font only for this book
  • long-press = change the font for this book and all the future books

Default values have a star (★) in the menu system or shown with a black border around the indicators as seen below:

Remember that, the books that you have already opened will keep their own settings. Changing defaults don't affect them.

2. Setting "all of the settings" as defaults at once

You also have the ability to set all of the current book settings as defaults instead of one-by-one. This is useful if you make many changes to a book and you want all your books to look like this one.

You can save the current document settings as defaults by choosing:

This will overwrite all the settings with the current document's settings. So all the books that you will open after pressing this menu item will look exactly like your current book.

But what we can do about already opened books? Well, if you pressed the menu item above and have set your new defaults, you can easily apply them to any book now. Just open the book that you want to change, go to the same menu and press this item:

This basically tells KOReader to overwrite current book's settings with the defaults (that you saved before). Don’t worry, this will only change the appearance of the book. Your reading position, highlights, notes and bookmarks will be preserved.

Applying a group of settings using profiles

Ok, at this point you already know:

  • How to change the individual settings of the current book
  • How to set your changes as defaults so all books can use them

Now we will see another use case: Imagine that you have modified your defaults to your liking so whenever you open a new book, it now looks exactly as you want. And recently you started reading a fantasy fiction series. You decided to immerse yourself in the books so you installed a nice medieval looking font for this series (here is a nice one if you really need something like this). But since this is a very different font, you had to also change many settings like line spacing, font weight, margins etc.

To change all these settings for these fantasy books, you have two options according to what we have learned:

  1. You can change these settings for each book when you open them. This is very tedious, not a good solution.
  2. You can change settings for one book and use the Save document settings as default feature. But this will affect all the newly opened books, which we don't want. We only want to apply the medieval font settings to these few medieval books.

Luckily KOReader has a feature called Profiles that allows us to save a book's settings and apply them to other books (you can think of this like copy & paste).

Now going back to our scenario, after adjusting all the settings for your medieval fantasy book go here:

It will ask you to name this profile. You can enter something like "Medieval Fiction" and save. By doing this, we created a profile named Medieval Fiction which includes the settings for the current book. Now you can see this newly created profile in the Profiles menu. To use this, you can open any book and run this profile and all the saved settings will be applied.

You can run this profile from:

You can even set a trigger for this profile so for example whenever you open a book from the "Medieval Fiction" directory, this profile will be automatically applied to it. Check the Profiles section for more information.
5.2 Using your own fonts
Adding new fonts to KOReader

You can add your own fonts to KOReader and use them as the document font, status bar font and even as the user interface font (with a user patch).

KOReader supports these common font formats:

  • TrueType - .ttf extension
  • OpenType - .otf extension
  • Web Open Font Format - .woff and .woff2 extension

Font files with these extensions can be directly copied to the /koreader/fonts/ folder on your device. Depending on your device, this copying procedure might differ. For example:

  • On Kobo devices complete path is /mnt/onboard/.adds/koreader/fonts
  • On PocketBook devices, make a directory for each font in /applications/koreader/fonts/ directory and copy your font there.
  • On Android OS based devices, you can copy your fonts to these directories:
    1. Internal storage/Fonts - General font directory for all Android apps
    2. Internal storage/koreader/fonts - KOReader specific font directory.
  • On Desktop version, you can copy your fonts to the location that you can see from the menu item shown below: Open fonts folder. Also if you turn on the Enable system fonts option from the same menu, KOReader can access all the fonts that are available to your operating system:

KOReader supports sub-directories for the Fonts directory, so you can copy font families as directories under this. After copying your fonts to the mentioned directories, restart KOReader. New fonts should appear at the beginning of the font list:

KOReader can generate a document with sample text rendered with all the fonts installed on your device. This allows you to quickly compare the look and features of the fonts like ligatures and character sets in non-Latin scripts like Greek, Hebrew or Chinese. You can access this feature via:
Changing the status bar and user interface fonts

You can change the font of status bar items from here:

You can use any installed font for the status bar. If you need to display a lot of information while maintaining legibility, we suggest the DINish Condensed font. You can download it here and install using the same procedure explained above.

If you want to change the font of KOReader's user interface (menus and dialogs), you can do it with a user patch. Instructions are here: User interface font changer patch

Font suggestions for e-ink screens

These fonts look good on an e-ink screen due to their increased contrast:

Serif suggestions

Sans Serif suggestions

In the guide we have a Special Fonts section that might be useful if you need a font that is specifically developed for better legibility, Dyslexia or ADHD.

Also we suggest checking the WP Fonts project. It has the largest compilation of free/open-source fonts for KOReader, with bugfixes and other additions like kerning fixes, enabling ligatures and opentype features that weren't properly implemented, etc.


Monospace suggestion

If you are planning to use your own monospace font, probably you already have a favorite one, so we are not offering any examples here. If you need, you can find and compare many monospace fonts at programmingfonts.org

You can also discover more fonts on the Google Fonts website.

Using different fonts in one document

In HTML/CSS based documents like EPUBs, books can specify to use fonts by family instead of a specific font name. These families can be Serif, Sans-Serif, Monospace, Cursive, Fantasy, Emoji, Fang Song and Math. For example in a book, normal text can be shown in Sans-serif while dialogues are shown in Serif font. KOReader normally uses your default font for all these families except Monospace and Math (which is determined by the style of the text nodes, for example 'font-family: serif'). If you want these families to look distinct, you can assign specific fonts for them here:

To change a family font for the current book just tap on the desired font name. If you want to set this for all your books, long-tap to set it as a default (★). If a book abuses this font family feature to the point where your default font is hardly used, you can disable that family font for this book by unchecking the association.

Changing font quickly

If you are switching between fonts frequently (i.e. monospace for programming books and serif for novels) there is a workaround which makes this easier than going into the menu each time. You can create profiles for your fonts and all font related settings like line spacing, contrast, bold etc. and add these profiles to a Quick Menu. So with a single gesture you can open your font selection menu and change the font like shown in the image below:

Check the QUICK MENU AND PROFILES section of this guide to learn how to do this.

Monospace font scale

If your book includes parts with Monospace fonts (like in programming books), Monospace text might look disproportional even if it is technically at the same size as the rest of the book. This is caused by differing font metrics. KOReader has an option that allows you to adjust the relative Monospace font size to fix this difference:

Here you can increase or decrease the size of your Monospace font by adjusting its scaling as a percentage of the default size.

Technical details of KOReader font system and troubleshooting

If you are having problems with the font weights when adding fonts to KOReader, this section can help you to understand how KOReader's font processing works:

  1. When starting up, KOReader compiles the available fonts by reading their embedded font metadata/info and classifies them according to family and weights. KOReader tries to determine the font family information from the metadata included in the font, so font names are not important when copying to your device.
  2. If you have more than one font file for a font family, KOReader will try to fit fonts in one of these 4 categories: Regular, Bold, Italic & BoldItalic. An ideal case looks like this:
    • Luciole-Regular.ttf mapped to Font weight: 0 (Regular 400)
    • Luciole-Bold.ttf mapped to Font weight: +3 (Bold 700)
    • Luciole-Regular-Italic.ttf
    • Luciole-Bold-Italic.ttf
    If a font variation is not available, as well as for fractional adjustments, it will be synthesized from the nearest available weight.
  3. If your font provides only one file and it is not Bold, KOReader will assign it as (Regular 400) Font weight: 0 and synthesize all other weights and variants itself. In other words KOReader will fake italic and bold for this font. (If your single font file is a Bold font, then KOReader will synthesize the Regular weight from this bold font.)

If you long-press on the Font weight label in the bottom menu, it will tell you which weight classes your current font provides.

If your font also has other variants, things can get confusing. Let's say you copied a font family to your device. And upon startup, KOReader has read these variants of the font: Light, Thin, Normal, Medium, ExtraBlack, SemiBold, Bold, Black in this order. You would expect to see Normal variant to be used as the document's normal font (because it is named as Normal) but KOReader will use the Light variant because that is the first font in the list that doesn't have the bold flag. And it will ignore the Thin, Normal and Medium variants because it has already found a "not bold" font for the document.

And again according to this list, ExtraBlack will be used as the bold font because it is the first font in the list with the bold flag. And KOReader will ignore the SemiBold, Bold, Black variants, because KOReader has already found the "bold" it is looking for.

As a summary of the above: We copied the whole family and expected Normal and Bold variants to be chosen but instead, KOReader used Light and ExtraBlack variants. This happened because the order of the fonts that are fed to KOReader is not under our control so "first come is first served".

Solution is, transferring only the font files that you want to be used, like this:

  • Keep only one of Thin, Extra Light, Light, Normal, Medium: It will be used as the regular font (If your Regular font is too thin, just replace it with Medium weight if you have it).
  • Keep only one of Semi Bold, Bold, Extra Bold, Black, Extra Black: It will be used as the bold font.
  • You can also add italic variants of the same weight (i.e. medium/medium-italic).
5.3 Style tweaks

Style tweaks feature of KOReader allows you to modify how your book is rendered by KOReader. We won't go through a full CSS course here. We just want to show you the basics so when you see a style tweak, you will at least have a rough idea what it does.

What is a style tweak?

We can describe an EPUB document as a HTML file + some CSS rules. These CSS rules determine how different parts of the book (headings, bold text, quotes etc.) will be shown on a reader app. With style tweaks, you can change how your book will be rendered by adding new rules and/or overriding the rules written by the publisher that is embedded in your book.

Let's see this on an example style tweak:

img { width: 10px !important; height: 10px !important }

In plain language this rule says: "Ignore their original size and make all the images in this book 10 pixels wide and 10 pixels high." So if you add this style tweak to KOReader, all the images in your book will be shown tiny.

Now lets explain this tweak item by item:

  • img - This is a CSS selector that targets all img (image) elements in the book.
  • { width: 10px !important; height: 10px !important; } - This is the declaration block. It contains the styles which will be applied to the selected img elements.
  • width: 10px !important; - This first part sets the width of the targeted img elements to 10 pixels. The !important declaration is an override switch which ensures that your width value takes precedence over any other existing width declaration applied to these images.
  • height: 10px !important; - This part sets the height of the targeted img elements to 10 pixels. Again, the !important declaration is an override switch which ensures that your height value takes precedence over any other existing height declaration applied to these images.

In summary, this CSS rule is designed to set a fixed width and height of 10 pixels for all img elements in your book, ignoring their original style.

Some useful examples of style tweaks

These are some useful style tweaks that you can use directly or modify according to your liking. Next heading explains how to use them in KOReader.

  • Add a separator line above each heading in a book:

    H1, H2, H3, H4 { border-top: 2px solid black; }

  • Add some margin above the headings:

    H1, H2, H3, H4 { margin-top: 2em !important; }

  • Or if the book has too much margin above the headings, remove them:

    H1, H2, H3, H4 { margin-top: 0 !important; }

  • Add a small gap between paragraphs to make the text more readable:

    p + p { margin-top: 0.5em !important; margin-bottom: 0.5em !important; }

  • Disable all images in an EPUB:

    img { display: none !important; }

  • Make images very small instead of disabling them:

    img { width: 10px !important; height: 10px !important }

  • Make the code block sections in computer science books tidier and more readable (Here you can see an example):

    pre,code { font-size: 0.6em !important; line-height: 1.8em !important; background-color: #eee !important; margin: 1em 0 !important; padding: 1em 0 !important; }

How to add style tweaks

Ok, now we have seen what style tweaks are. But how can we use them? There are three types of style tweaks in KOReader:

1. Built-in style tweaks

This heading is new, and the screenshot above and below. Anything to add?

These tweaks are included in KOReader. They are the easiest to use since you just enable them from the menu to use them. You don't need to write any CSS code:

They come in many categories. To apply a tweak to the current book only, tick the checkbox. If you want to get more information about this tweak or enable it for all the books, long-press on its name. A dialog will appear:

  1. This area shows the name and description of the tweak
  2. This box shows the CSS code of the tweak. You can tap on this area to copy the code to the clipboard. Then you can paste and modify this code in your Book-specific tweak as explained under the next heading.
  3. Show in action list button allows you to toggle this tweak with a gesture or add it to a Quick Menu. See the heading named "How to use tweaks efficiently" below for more info.
  4. Use on all books button activate this tweak for all your books. A star (★) will appear next to its name in the menu, indicating that this tweak will be applied to all books. You can disable this with the same steps.
2. Book-specific tweak

As you can guess from its name, this type of tweaks are only active for the book which you created them in. This feature is more useful for testing your tweaks or if you need to fix something on the current book and you know that you won't need it on other books. After creating this type of tweak, if you decide that you will need it on other books too (i.e. from the same publisher), you can convert it to a user style tweak, which we will explain next.

To create a book specific tweak, use the integrated editor which you can find here:

In the editor we have a CSS menu on the bottom toolbar. This menu contains many useful CSS syntax and properties. When you open this menu please first read the Long-press for info help. Also you can long-press on CSS items in this menu to see a description.
3. User style tweaks

These group of tweaks are different from the previous ones in the way they are created. Also unlike the previous type, they are not limited to a single book. They can be applied globally to all of your books.

Procedure is roughly like this, which we will explain in detail:

  1. Create your user tweak file
  2. Transfer it to your device
  3. Enable your tweak from the menu

1. Creating the user tweak file:

A user style tweak is actually a normal text file with a .css extension. You can create this file:

  • On your computer
  • On your device if it has a text editor (like Android OS based devices)
  • In KOReader's integrated text editor which you can find in plugins

You can copy / paste the examples we mentioned above to your file.


2. Transferring the file to your device:

After creating the file(s) which contain your CSS rules, save or transfer them to the styletweaks folder under your KOReader installation. Give the files descriptive names because filename will be the title of the tweak in the KOReader menu system. You can use underscores "_" in your filenames, they will be treated as spaces in the menu. You need to restart KOReader after transferring your files so it can load them.


2. Enabling the tweak:

After the restart, open a book and go to this menu:

Now you should see your tweak in the list with a checkbox next to it. To apply your tweak to the current book only, tick the checkbox. If you want this tweak to be enabled for all the books, long-press on its name. A dialog will appear. Tap the menu item Use on all books. A star (★) will appear next to its name in the menu, indicating that this tweak will be applied to all books. You can disable this with the same steps. See below for an example:

In the image above, I have 3 style tweak files in the styletweaks folder under my KOReader installation. First one is disabled because checkbox is empty. Second one is enabled for this book only since checkbox is marked but there is no star. Third one is enabled for all the books (★).

You might notice that there is also a right triangle icon next to the first tweak. This means that this tweak can be activated using gestures. This will explained in the next heading.

How to use tweaks efficiently

When creating your user style tweaks you can make multiple tweak files, each modifying some part of the book like in the example image above. You can have one file for the headings, others to modify paragraphs, links etc. This modular system allows you to enable tweaks depending on your document.

As we said above, you can toggle user style tweaks from this menu location:

Also we have easier ways to toggle your style tweaks than going to the menu every time.

1. You can assign a gesture to a tweak

To do this, first we have to add our user style tweak to the list of gesture actions:

  • Go to the user style tweaks menu and long-press on your style tweak
  • In the dialog press the button Show in action list
  • A right triangle icon will appear next to your style tweak in the menu

You can see it in the example image above, next to the Adjust margins style tweak. Now this style tweak is added to the actions list. You can find it under Gesture Manager > Reflowable documents category. It will be at the end of the list.


2. You can add a tweak to your Quick Menu

To add a tweak to your Quick Menu, first it has to be added to the actions list as described in the heading above. Then you can follow the instructions under the Quick Menu section of this guide.

You can even combine both methods and create a special Quick Menu for your style tweaks and then assign it to a gesture. This way, with a simple gesture you can access all your style tweaks and activate them as needed.

Finding elements for modifying

Note that in some books, titles might not be in <H1> or <H2> elements, but in something like <p class="tit123">. You can find which selectors are used for a part of text by checking the source. To achieve this, select the text around the element which you are interested in, and choose View HTML from the dialog. In the example above, your style tweak would look like this:

P.tit123 { border-top: 2px solid black; }

instead of this:

H1 { border-top: 2px solid black; }

6 ANNOTATING DOCUMENTS

KOReader gives you options to interact with your book like you can do with a real book. Many settings of the bookmark window can be changed here:


BOOKMARKS:

You can add (and remove) a bookmark by pressing the upper right corner. This is the equivalent of folding the corner of a page on a real book and shows a similar icon when you enable it.


HIGHLIGHTS:

You can highlight text in 4 different styles. In the image below, you can see a normal paragraph followed by different styles of highlights. Lighten (with gray background), Underline, Strikeout and Invert.

You can use all these styles at the same time, like they are different colored highlight markers. Or you can decide your favorite style and set it as default from this menu by long pressing:


Also if you have a device with a color screen, you can create highlights in different colors:

Some tips for color highlights:

  • You can change the color of an existing highlight by tapping on it and choosing Color from the popup menu.
  • You can combine the colors with different highlight styles like Underline and Strikethrough to create a powerful highlighting system. For example you can use a red strikethrough style for removals or orange underline style for important points etc.
Setting the defaults for highlights

  1. In the highlights menu you can long-press on a highlight type to set it as default (★)
  2. After selecting a color, you can long-press on the color name in this menu to set that color as default (★)
  3. You can press the Apply current style and color to all highlights option to make all the highlights in the current book same. Be careful, there is no undo!

NOTES:

You can also add notes to your highlights. Just tap on a highlight and choose Add note from the popup menu. You can also choose a Note marker that shows which highlights contain a note. There are three styles: Underline, Side line and Side mark (which is the pencil icon shown on the right side of the picture below):

To enable this feature and choose a Note marker style, go to:

What you can do with your highlight?

After highlighting a part of your document, you can tap on the highlight to see the highlight menu. From this highlight menu, you can reach another extended menu by tapping on the ... (three dots) button as shown below:

Using this extended menu you can:

  • Extend your highlight to include more text
  • Copy the text to clipboard to paste elsewhere
  • Search the text on Wikipedia
  • Look up the text in an installed dictionary
  • Translate the text using the Google Translate service
  • View HTML source of the highlighted section, which is useful when writing a style tweak
  • Generate QR code which includes the highlighted text, to scan from another device with a camera and a QR-code reader application
  • Search for the text in the book
6.1 Highlight Modes

KOReader has two highlighting modes for different use cases:

Normal mode

Normal mode is similar to selecting a text with your finger on a phone/tablet and more suitable if your highlights are shorter than one page.

  1. Long-press on the starting word
  2. Move your finger to the end of the passage
  3. Release finger

When you reach page boundaries, KOReader will turn the page for you to continue highlighting (only in EPUB/HTML documents). You can disable this feature from:

Long-press on corner gesture can cause problem when you want to long-press on text near the corners. We have special gesture manager actions that allows you to toggle or temporarily disable corner long-press gestures. You can assign these actions to a gesture or use them in your quick menu. You can find them here:
Select and highlight mode

Select and highlight mode is more suitable for highlighting longer passages which cross page boundaries. It might also work better if you have touch screen sensitivity problems or motor control issues with your hands. Because in this highlight mode you don’t need to drag your finger along the screen.

If you have dictionary lookup enabled, when you long-press a word, you have to drag your finger to initiate this mode.

How to highlight:

  1. Long-press (or drag if dictionary lookup is enabled as described above) on the starting word, popup menu will show up.
  2. Tap on Select, now you are in highlighting mode. When you are in this mode, you will see an indicator at the upper left corner of the screen (which you can tap on it to get more information). You can cancel highlighting by tapping on the beginning of highlight again. You can turn pages with taps/swipes and freely navigate the document (TOC, skim etc) in this mode.
  3. Long-press (or drag if dictionary lookup is enabled as described above) on the ending word for your highlight, menu will show up again.
  4. Tap Highlight this time to finish highlighting the passage.

This dialog normally opens at the center of the screen. If you want this dialog to open closer to your highlight location, you can change the center option here to gesture position (located on the second page of this menu):

There is a faster method for this mode if you don’t need long-press menu items shown above. You can disable the popup menu completely so when you long-press on a word you will immediately enter the Select and highlight mode. This method is much faster and you can highlight any length of text with just two taps. To use this method enable this option:
KOReader can highlight a passage in different styles. If you use Lighten option, text background will be gray. Due to e-ink limitations, screens can’t change from white to gray directly, so highlighted part first has to turn black and then gray. If you want to avoid this flashing, you can choose Inverted as your highlight style. In this mode text background will be black so it can be set without flashing. You can adjust these highlighting options from:
You can add multiple highlights and notes to the same section of text. If they are overlapping, when you tap on a highlight you will be presented with a menu to choose which highlight you want to edit.
Selecting punctuation while highlighting

When you are highlighting, KOReader tries to include the related punctuation marks around your selection. For example if you highlight from the first word to the last word of a sentence, KOReader will automatically include the punctuation marks at the both ends of the sentence to your highlight.

But if you start highlighting from the middle of a sentence, period at the end will not be included because KOReader assumes that you want to make a partial highlight. So if you want the punctuation marks to be added to your highlight, be sure that you select the whole sentence. Also you can add these marks later by long pressing the Highlight edit buttons.

6.2 Editing Highlights

When you tap on an already highlighted text (without a note), you will see this popup menu. Delete and Add note items are clear. Bottom row menu items are used to extend or shrink the highlight.

This adjustment works only on reflowable documents like EPUBs. If you want to extend or shrink a highlight on PDFs, you have to delete it and highlight again due to the limitations of the PDF format.

When you tap on an already highlighted text with a note added, you will see this popup menu. Tap on Edit highlight to open the menu above where you can edit both the highlight and the contained note:

On your Bookmarks page you can filter the view to see only one type of bookmark by pressing the menu icon ( ) You can also filter by highlight style:

Editing the text of a highlight

In addition to adding a note, KOReader also allows you to edit the highlighted text itself that is shown in your Bookmarks list. In some situations this might be more useful than adding a note to a highlight. For example imagine that you are reviewing a text. You want to highlight a sentence which contains many dates and one of the dates is wrong. When you want add a note to point to this mistake, you need to specify in your note, which one is wrong. But if you edit the text of a highlight, you can directly write "(this date needs to be checked)" next to the problematic date.

Note that this editing doesn't change the book content or the highlighted passage on the page. You will still see the same highlighted sentence in the reader. Your edit will be visible in the Bookmarks list. And when you export your highlights later, edited text will be the one that is exported.

To edit a highlight text, you can:

  1. Tap on the highlight
  2. Tap Details from the popup menu
  3. Tap Edit text from the details dialog

Also you can do it from the Bookmarks window:

  1. Go to the Bookmarks list via menu or gesture
  2. Long press on the highlight you want to edit
  3. Press Edit text in the menu
  4. Change the text in the dialog and press the Save button

If you want to revert an edited text to the original highlight, follow the steps above and at the step 3, instead of Edit text, press the Reset text button.

Changing how the added notes are shown in the Bookmarks List

Normally when you open the Bookmarks list, only the content of your highlights are shown. If you added a note to a highlight, you will only see a pencil icon in the Bookmarks list. You can long-press on an item in this list to show (and edit) the added note. If you want to see the note text too in your Bookmarks list you can set it from here:

You can choose to show:

  • Only highlight text (default behavior)
  • Both highlight text and the note
  • Note if there is one, otherwise highlight text
Normally number of items in the bookmarks window is static and divided equally. If you want a more flexible layout, you can change the Max lines per bookmark setting from here:
6.3 Exporting Highlights

After finishing a book, you can move it to a specific folder for archiving or processing purposes. Enable Move to archive plugin and set your target directory in the plugin’s settings (Set archive folder). After this, you can move a book to your archive folder using:

  • Move to archive plugin menu
  • With a gesture or
  • With a Quick Menu entry

KOReader provides different ways of exporting your highlights and notes from your reader device:

1. Export Highlights plugin

This versatile plugin can export your highlights to local files or online services.


Local export

You can export your highlights to your device in these file formats:

  • Text (.txt)
  • HTML (.html)
  • Markdown (.md)
  • Kindle Clippings (.txt)
  • JSON (.json)

You can choose your preferred export formats from:

You can see the export location (and also change it if you want):


Online services

You can also export to these services over the network:

  • Joplin - a note taking application
  • Readwise - an online bookmarks/highlights application
  • Memos - a self-hosted open source memo hub
  • Flomo - an online note taking service
  • XMNote - an Android bookmark organizer in Chinese language

You can find detailed setup instructions for these services on our related wiki page.


After selecting your formats, you can export the notes for the current book or all the books in your library from the same plugin menu.

If you want to export only some of the books in your library, you can do this from the File Browser:

  1. Select multiple books in the File Browser
  2. Tap on the menu button (shown as a check mark) at the top right corner
  3. Select Export highlights from the menu shown

You can also export only chosen highlight styles: lighten, underline, strikeout, invert. Normally KOReader exports all of them. You can choose from:

You can customize the filename of the exports from the plugin's menu (Set export filename) to include date/time information and other useful info.

You can assign export actions to gestures for quicker access. You can find these under the Reader category of the Gesture Manager.

2. Using KoHighlights

KoHighlights is an external program that you can install on your computer. It can access your book notes and highlights when you plug your reader to your computer. Check the GitHub project page for download and instructions.


3. Using Calibre

Calibre is an external program that you can install on your computer. You can import highlights into your Calibre database with its KOReader Sync plugin. You can install the mentioned plugin within the Calibre application. Check the project page for download and instructions.

When you open a document in KOReader, it creates a directory alongside the document with same name as the document. This directory contains a .LUA file which includes all the highlights, notes and user options (formatting properties etc.) related to that document. You can manually backup/restore these directories.
7 READING PDFS
7.1 PDF Reading Tips

KOReader provides you different ways to read a PDF/DJVU document which is optimized for bigger page sizes (generally A4 or Letter) on your smaller screen device:


1. You can enableReflow

Reflow tries to extract the text portion from your document (if it is available) and format it as a single column. Results are generally satisfactory. You can also set this as a default by tapping and holding on it.


2. You can enable Zoom To Content

With this option KOReader tries to crop margins from your document so text can look bigger on your screen. You can set fit to width in the same menu which will try to fit only page width instead of whole page, so your text will look bigger.


3. You can try to use your device inLandscape orientation

This will make your screen wider so your document may look big enough to read comfortably.


4. You can zoom to 100 percent size and instead scroll the screen to read different parts

This is especially helpful with comic books. First enable column mode from this menu item:

Then select an appropriate flow direction for your document from the same menu:

  • For example if you are reading an article which has two columns, you will scroll down until the end of page reading left column then go to right upper side to continue reading right column:

  • Or if you are reading a comic book, you will want to go “right / down left / right” in a zigzag pattern:
  • For a Japanese comic book (right-to-left panel order) this might be the reverse:

In this mode you can also adjust Horizontal/Vertical Overlap and Number of Columns from the same menu to fit the text on your screen better. Feel free to experiment with these settings.

When reading a PDF document, if you are in a zoomed in view other than 100% (column, row or manual) or in the reflow mode, you can tap the top left corner of screen to enter flip mode. This mode temporarily displays the full page without cropping, scaled to fit your screen. You can turn the pages in this mode. To exit, tap on this icon.
7.2 PDF Specific Menu Items

Contrast setting adjusts black levels in your document. Be aware that same contrast value applies to both text and images in your document. If you set it very high, your images may become too dark.

Dewatermark removes watermarks from the rendered document. It can also be used to remove gray backgrounds. This feature can convert a grayscale or color document to black & white to produce more contrast for easier reading.

Render quality (only active in Reflow mode) sets the quality of text and image extraction processing and output. High is more pleasing but it can be much slower (several seconds for page turn) than default depending on your document. If your PDF/DJVU files are slow, this is the first setting you should check.


Document language sets the language that will be used by the OCR engine.

Forced OCR as the name says, forces the use of OCR even if the document has a text layer.

Writing direction (only active in Reflow mode) sets the direction of original document. Set this to RTL for languages like Arabic and Hebrew.

Document columns (only active in Reflow mode) sets the number of text columns in the original document.


Auto straighten feature can straighten the pages of a problematic document, for example pages of a PDF which are scanned with an angle. It is available in PDF, DJVU, CBZ/CBT documents and image files. To enable, choose the maximum tilt angle which KOReader will try to correct. If it doesn’t correct you might have to choose a bigger angle. Note that this feature might slow down your reader depending on several factors.

7.3 Saving PDF Highlights

For saving your highlights, you can use the Export highlights feature of KOReader which is explained in a previous section.

If you are making your highlights on a PDF document, KOReader can also save them directly to the PDF file. This can be useful in certain situations because with this method, your highlights become a part of the PDF file. This means you can see them on other applications or platforms without installing KOReader. For example if you are sending a file with highlights to another user, they don't have to install KOReader to see your highlights. You can just send the PDF file with your highlights saved into it and they can open and see them with a compatible PDF reader.

This feature should work on all PDF readers. We tested and confirmed these: Adobe Acrobat Reader, Chrome Browser, Deepin Reader, Evince, Firefox Browser, Foxit Reader, Ghostscript, LibreOffice, Moon Reader, MuPDF, Okular, Xpdf, Zathura.

If you are using the Progress Sync plugin, saving PDF highlights will change your file so your synchronization will fail. If you are planning to use both features, in the Progress Sync plugin's settings, change the Document matching method to Filename instead of the default Binary matching:
Important information about saving PDF highlights feature

Since making highlights for later usage can involve significant effort, if you are planning to use this feature, you should understand how it works in order to avoid frustrating situations.

QUICK SUMMARY: If you want to be able to delete or export your PDF highlights later, you have to copy the .sdr folder associated with your book when you backup or copy your book to other devices. Without this folder, KOReader can still show the saved highlights but it can't know where they are in the file, so it can't modify them. Please continue reading for more information about this.


How normal highlights work in KOReader

When you make a highlight in KOReader, whether the document is an EPUB or PDF, this highlight is written into a settings file. For example if you are reading Alice in Wonderland.epub you will have a folder named Alice in Wonderland.sdr in the same folder as your book. Your highlights will be kept in a file under this .sdr folder. Which means, if you delete this .sdr folder which is associated with your book, you will lose your highlights.


How PDF highlights work in KOReader

PDF highlights feature works a bit different than the description above. As we mentioned before, when you save your PDF highlights, they will be directly written into the PDF file, which means they become a part of the file itself. That's why you can send this PDF to another user and they can see the highlights with a compatible PDF reader. They won't need your .sdr folder which contains a record of your highlights because now the highlights are embedded directly into the PDF file.

Let's explain the problem which can arise when you are using this feature, on an example. Imagine that you are reading a PDF book on your e-reader with KOReader:

  1. You are making highlights and Save highlights to PDF option is enabled, so as you make these highlights, KOReader saves them to your PDF file.
  2. You want to continue reading the book on your phone with KOReader, so you copy this PDF file from your e-reader to your phone (but you didn't copy the .sdr folder, only the PDF file).
  3. When you open the book on your phone with KOReader, you will see that your highlights are still there.

Now the situation on both of your devices looks identical. Both your e-reader and phone KOReader shows the PDF file with the same highlights. But it only looks identical, actually there is a big difference.

KOReader on your e-reader has the knowledge of which highlights in this PDF file are made by KOReader because it has the .sdr folder. But KOReader on your phone doesn't have this knowledge. It only has the PDF file.

Difference arises when you try to delete the pdf highlights or export them. Your e-reader can both delete these PDF highlights and export them. But your phone KOReader can't, because as we said, it doesn't have the .sdr folder of your book so the highlights in the book look like a part of the original book from its point of view.

So in short, if you want to be able to delete or export your PDF highlights later, you have to copy the .sdr folder associated with your book when you backup or copy your book to other devices.

7.4 Importing PDF Highlights

KOReader can import highlights from PDF files which are marked with other PDF applications. We can't give a list of compatible applications, but import feature generally works with popular PDF readers.

To import the highlights:

  1. Open your PDF file with KOReader
  2. Open the Bookmarks dialog from here:
  3. Press the button at the top-left corner.
  4. On the opened dialog, choose Import embedded annotations. Your highlights will be added to the Bookmarks list.

After the import process, highlights in the PDF will turn into regular KOReader highlights. Which means, you can:

  • Add notes to them
  • Change their style and color
  • Delete them (See the note below)
  • Export them in various formats

How deletion works: When you import highlights, KOReader doesn't modify the original highlights in your PDF. It adds imported highlights as a layer on top of the originals. So if you delete an imported highlight, only this added layer is deleted. Your original highlights are not deleted from the PDF file. You can open this PDF with another reader and still see the original highlights.

If you enable the Write highlights into PDF option, embedded highlights too will be deleted from the PDF file when you delete an imported highlight.
7.5 Using OCR

OCR (Optical Character Recognition) is the process of extracting text from images. In KOReader context, it is generally used for extracting text from scanned book pages in PDF files. KOReader relies on Tesseract Open Source OCR Engine for this task.

To use this feature you need to:

  1. Install Tesseract language data to your KOReader
  2. Add newly installed languages to koreader/defaults.lua configuration file (necessary only if your language is other than English or Chinese)
Buttons of the OCR menu will not function until you install the necessary Tesseract files. Details of this process can be read in our related wiki page.
8 READING COMICS AND MANGA
8.1 Page Refresh Interval

Comic books generally need more frequent page refreshes than the pure text content. For normal text, you can set your page refresh interval to high numbers without problem. But images can leave more residue and cause ghosting, especially depending on the panel of your e-reader.

KOReader allows you to assign any gesture to switch to different refresh rates. For example you can set swipe up left edge for every page refresh when reading comics and set swipe down left edge for every x page refresh for text only books. So when you open a comic, you can switch to more frequent refresh with a simple tap or swipe (or vice versa).

This action is under:

8.2 Panel Zoom

This feature makes reading comic books easier on smaller screens. You can enable it while you are reading a PDF, DJVU, CBZ or CBT document via:

When this option is enabled, KOReader tries to find the boundaries of rectangular panels on the screen. If you long-press on a panel, KOReader zooms in and shows just that panel.

As you can guess, this feature works best with comics that has clean panel boundaries. Also there is no page turn in this mode to jump to the next panel due to this boundary problem. You have to close the zoomed in panel and long-press on the next one. To do this, just swipe down this zoomed in panel. Also you can use any multiswipe gesture (any combination of up, down, left, right) to exit this view.

Procedure can be seen below:

If you want to use this feature with other file types like EPUB, FB2, HTML or image files, you should open the file with a different engine: In the File Browser long-tap on the file name, tap Open with… and select MuPDF.

8.3 Jumping to the Next File

When you reach the last page of a book, KOReader shows you a dialog. In this dialog there is an Open next file action which will open the next file in the same directory as the current book. So you can put your series in separate directories and read them one after another without going back to the File Browser.

When opening this next file, KOReader skips the files that you have marked as finished. This feature is useful for example when you have a folder of manga files and you have already read some of them. You can mark a file as finished from the end of book dialog shown above. Also you can mark it from the File Browser by long-pressing on the file. After copying them to your device, you can:

  • Open the File Browser in KOReader
  • Long press on the ones you already finished and tap Mark as finished

Now you can read all the files by just tapping Open next file at the end of the book. KOReader will skip the ones you have already read.

8.4 Optimizing Manga

If you like reading manga books on your e-ink device there are some tips that can make your experience better. Preparing your own manga files is the best solution if you're not satisfied with how comics look on your device.

Which file type to use

File types like MOBI and EPUB are not suitable for handling primarily image content (e.g., manga/comics). MOBI support in KOReader is minimal to nonexistent, and EPUB’s text rendering priorities can cause problems when showing full-page images. For further technical details, please visit this GitHub issue.

Your best option is building a CBZ file which works better in KOReader. A file with .cbz extension is a zip file (with no compression) that is a collection of images. It saves multiple images, commonly .png or .jpeg files, organized into pages of the comic. KOReader can also open CBT files, which are similar to CBZ files but use TAR archive format.

Easiest way to convert a manga to CBZ is to get the manga as images from various websites, then convert them using Kindle Comic Converter. There are some useful settings like auto-rotating two-page splits to landscape and applying dithering so that e-ink rendered gradients are smoothly dithered without jagged layers.

Which resolution to use

The best results can be achieved by resizing your images to exactly your e-reader screen size. A screen-specific CBZ which targets the exact screen size of the device, prevents rescaling during reading. KOReader downscales your images to your screen size while reading but this is not recommended because KOReader adds a dithering pass before scaling and this causes loss of quality.

But if you want to use your hand made CBZ on more than one device or you want to preserve high resolution for future proofing, your best option might be to make the CBZ for your highest resolution device. Or pick an arbitrary "high" resolution, possibly one that matches the source. 300 PPI or better (up to 450 or even 600), unless the source is lower of course. If we assume a screen size of 8", 1500×2000 is a good target resolution. For bigger images, you should try it on your device and see whether it can deal with it. Especially old Kindles with low memory can struggle with sizes like 3000×4000 for example. If you're automating the process, it might be worth considering creating both a lower and higher quality version (e.g., at 200/400 or 300/600 DPI).

KOReader doesn't parse spine page-progression-direction="rtl" attribute of the books. So it doesn’t change page turning direction even though the file was created with right-to-left reading. Users can switch this via:
Advanced preparation of manga

The following is an example procedure to process one manga file:

  • Download Kindle Comic Converter (KCC) from https://github.com/ciromattia/kcc
  • Download your manga from the source of your choosing (i.e. HakuNeko)
  • Unpack the manga file. Now you should have a directory that contains only images (or subdirectories with images, no archives)
  • Process this directory with KCC. Each directory will produce a single CBZ file, so if you want to make several volumes at once, select multiple directories at once

Some useful settings of KCC:

Spread splitter: This feature detects double pages and allows you to rotate or cut them in two.

Upscaling: Enlarge images that is smaller than your target resolution.

8.5 Other Manga Tips
Getting rid of rainbow effect on color e-ink screens

Due to the color e-ink screen technology, it is possible to see rainbow like color artifacts when reading black-and-white comics/manga with fine shading or dots. If you are having this problem, there is a KOReader plugin named Derainbowify that solves it. You can see the detailed info and install instructions on the GitHub page of this plugin.

Immersive mode in KOReader

If you would like to enjoy your manga in a more immersive way, make sure that you selected the exact same resolution as your device’s screen resolution in KCC when creating your CBZ file. Also you can hide the bottom progress bar while reading your manga in KOReader. So you will have an immersive full screen view of your manga without obstructions.

Extra step for smooth gradients

After using KCC to create a CBZ file, you can apply additional dithering to the images. This way, eink-rendered gradients will be smoothly dithered without jagged layers. This step will produce fine-tuned manga volumes which look better in KOReader.

You can use ImageMagick to process your images. ImageMagick, is a powerful open-source software suite for displaying, creating, converting, modifying, and editing raster images. You can download ImageMagick and use it from the command line to process many images at once.

  1. Unpack the prepared CBZ file that you created with KCC,
  2. Download the following file dither_pack.zip (located on Yandex Disk) which contains two batch files (.BAT) and a GIF color template.
  3. Extract these three files next to your images that will be processed
  4. Edit the _magick_manga_ditherN_resize.bat and change the resolution to your device resolution (in both places in the BAT file).
    Next step will replace all the images in the directory with the processed ones. So make sure that you have a copy of them in some other directory if you want to keep the originals.
  5. Run _magick_manga_ditherN_resize.bat to resize and dither the images.
  6. Assuming you have 7-Zip installed, run _batch_archive.bat to pack all the processed images into a CBZ archive.
Reversing the page turn direction for authentic Japanese manga

You can make KOReader turn pages from Left to Right, so that swipes and tap zones are swapped. To enable this, add the following lines:

["/storage/emulated/0/Books/manga"] = {
["inverse_reading_order"] = true,
["kopt_zoom_direction"] = 0,
},

to this file:

/koreader/settings/directory_defaults.lua

where /storage/emulated/0/Books/manga is the absolute path to the directory containing your mangas. After this change, when you open a file from the mentioned directory, your swipes and tap zones will be swapped.

9 MANAGING YOUR LIBRARY
9.1 File Browser Usage

You will see the file browser interface when you run KOReader for the first time. It is one of the two main interfaces of KOReader. You will do all your file and folder operations here. You can access it from the reading screen by:


By default, file browser shows your HOME folder, which is your main library folder. You can change this by long-pressing on any folder. You can change file browsers many options like how books are displayed or sorted via the TOP MENU by swiping down from the top part of the screen.

Circled items in the image are explained below:

RESET: This option allows you to reset some properties of your document like reading progress, bookmarks, custom cover image etc. which you can choose in a following dialog.

Be very careful when using the reset dialog and double check which items are marked, otherwise you can reset everything related to your book accidentally.

OPEN WITH: KOReader has different engines for rendering different file types. In some cases you can open a file in a different engine to get some other features. See Viewing archive files and Viewing image files sections just below.

IGNORE COVER: If for some reason you want to disable the cover for this book (it may have wrong cover or cover is not very readable on the e-ink screen) you can select this.

IGNORE METADATA: If your book metadata is not correct, name field may show useless information. Select this option to show the file name instead of metadata.

REFRESH CACHED BOOK INFORMATION: KOReader caches a book's metadata and book cover when you add it to your library. If you make some changes to the book after copying to your device, this information might need to be updated. If you see wrong cover or metadata, you can refresh the book information with this menu item.

Showing hidden files and directories in File Browser

Normally, KOReader file browser doesn't show these two groups of files and directories:

  1. Hidden files and directories: These are files and directories that start with a dot (.) character, like .screensavers. If you want to see these directories and files, enable this option:
  2. Unsupported file types: These are the file types that KOReader can't open directly, like font files with a .ttf extension. KOReader can directly open these file types: PDF, EPUB, DJVU, MOBI, CBR, CBZ, CBT, DOCX, RTF, HTML, HTMLZ, TXT, XPS, FB2, PDB, CHM and MD document types, image files and ZIP/RAR archives, so only these files are visible in the file browser. If you want to see the unsupported file types too, you can enable this option:
Working on multiple files

File browser allows you to perform some operations (like copying, moving, deleting, exporting highlights) on many files at the same time. For this procedure, first you have to select the files. Currently there are three different ways of selecting files for bulk operations in the file browser:

- In the first method, long press on a file name and choose Select from the popup dialog. This will activate the Selection mode. Now you can tap on other files to add them to the selection. When you finish selecting your files, tap on the checkmark icon at the top right corner of your screen. You can choose what to do with these files from the dialog. Or exit the selection mode from the same dialog.

- In the second method, press the + (plus) icon at the top right corner and choose Select files from the dialog. This will activate the Selection mode and rest is the same as the first method above.

- In the third method, you can choose your files based on a File search . This is useful if you need to perform an operation on many files distributed in different folders. For example you want to move all files in your collection authored by Tolkien, to a new folder. Steps for this action will be:

  1. From the Top menu press on the Search tab (with the magnifier icon) and choose File search.
  2. Check Include subfolders option if you want to search inside the folders too. You can check Also search in book metadata if you want KOReader to look in book's metadata. Otherwise KOReader will only look at the file names for the word you entered.
  3. You can start the search from your library Home folder or your Current folder by pressing on the respective button.
  4. After search is finished, you will see a file list (if your search term is found of course). Now you can tap on the Hamburger icon at the top left corner of the screen to enter the Selection mode.
  5. Tap on all the files you want to perform operations on and tap on the Checkmark icon at the top left corner of your screen. You will see a dialog which contains Select in file browser. Select this option.
  6. Now you will be back at the File browser and the files you selected in the Search dialog will also be selected here.
  7. Tap on the Checkmark icon at the top right corner of your screen. Now you can choose what to do with these files from the dialog.
Folder shortcuts

KOReader allows you to add your favorite folders to a quickly accessible Folder shortcuts menu. For example if you have an Archive folder in your library that is under Home>Articles>Scientific>Archived, you can assign a folder shortcut to this Archived folder and access it quickly even while reading a book.

Adding a folder shortcut:

There are two ways of adding a folder to your Folder shortcuts list:

  1. When you are in the File Browser, tap right corner + (plus) menu button then tap Add to folder shortcuts item and enter a descriptive name for this shortcut. This will add the folder you are currently in.
  2. When you are in the File Browser, long-press on a folder name to open the context menu. Tap Add to folder shortcuts item and enter a descriptive name for this shortcut. This will add the folder you pressed on.

Folders which are in your Folder shortcuts list will have a star (★) in the File Browser.

You can remove a folder from the shortcuts in the same way, by long-pressing on it and selecting Remove from folder shortcuts.


Viewing your folder shortcuts:

You can open your Folder shortcuts from the File Browser or Reading screen while reading a book.

  • From the File browser: Top right corner + (plus) menu then choosing Folder shortcuts or assigning a gesture.
  • From the reading screen: By assigning a gesture to it.

It is under the File browser section of the Gesture manager. You can learn how to set gestures in the relevant section of this guide.

9.2 Viewing Other File Types
Viewing text files

If you have books in .txt format (which is more common in Chinese and Cyrillic languages), you can try enabling the Auto-detect TXT files layout feature. In some cases it can improve the rendering and make the text more "book like". When enabled, the rendering engine will use heuristics (text wrapped under some max line length, single or double blank lines marking paragraphs, indentation or centered text considered heading...) to guess how to better render the text and will try to create a table of contents.

You can enable this feature here (which is visible only if you are reading a .txt file):

Note that this feature might mess up ASCII art drawings and space character based formatting. If your book has these kind of features, it might be better to use the default mode in which, the text file is rendered as is in a monospace font.

Viewing archive files

KOReader can read files stored/compressed in ZIP files. You can open ZIP, CBZ and EPUB (as they are ZIP archives too) files with the archive viewer to have a look at the contained files:

  1. In File Browser long-press the file name
  2. Tap Open with…
  3. Tap Archive viewer

A ZIP file can contain many types of documents like html, txt or images. KOReader can open your ZIP file properly only if you give it a hint for the type of file in the ZIP archive. If you give your file only a .zip extension, KOReader will assume that this archive contains images and try to open it like a CBZ file.

DEFAULT CASE: yourfilename.zip - Assumed to be a zip file of images (and opened by MuPDF engine)

If your zip file contains one of these types (instead of just images), please name it accordingly:

  • FictionBook - yourfilename.fb2.zip
  • HTML - yourfilename.htm.zip / yourfilename.html.zip
  • Text log files - yourfilename.log.zip
  • Markdown - yourfilename.md.zip
  • Rich Text Format - yourfilename.rtf.zip
  • Plain text - yourfilename.txt.zip

If the documents are not named like this, the wrong reader/format engine is likely to be used and you will see the No reader engine for this file or invalid file message. You can rename this file as explained above or long-press the filename and then choose Open with... to select the correct engine.

Viewing images

You can open image files with the image viewer instead of opening as a book. Files opened like this don’t show up in your history and have better scaling and rotation support.

  1. In File Browser long-press the file name
  2. Tap Open with…
  3. Tap Image viewer
Viewing Markdown files

KOReader provides two options for reading Markdown documents.

  1. You can open the document directly like a book by tapping on it. This mode doesn't provide formatting. So your .md file will look like as it is opened in a text editor.
  2. You can convert your Markdown document to HTML. This action will render a HTML file from your Markdown document with the correct formatting and a Table of Contents created from the headings.

To convert a .md file, long press on it in the File Browser and tap Convert from the popup menu. A new file with the same name but HTML extension will be created in the same directory. Be aware that conversion might take a while depending on your Markdown file and device speed.

Setting file associations

You can also set file associations for file types which KOReader doesn’t automatically recognize. To associate a file with one of the KOReader providers, first long tap on your file in the File Browser then choose a provider engine to handle this file. You can check:

  • Always use this engine for this file to associate this provider with this particular file only
  • Or check Always use this engine for file type to associate this provider with all the files that has same extension as this one
  • From the same dialog, you can see the associations you made by tapping on View defaults for file types
9.3 Collections

KOReader's Collections feature can help you with arranging your library more efficiently. As a very simple definition, collections are user created lists of your books. For example you can create two collections named Fiction and Non-Fiction to arrange your books accordingly. Of course you can also use folders to do this but using collections gives you more flexibility.

Some advantages of collections compared to the folder based organization:

  • Adding a book to a collection doesn't move the book file. So your books can be located in different folders but they can appear in the same collection.
  • One book can be in many collections, which is not possible with folders. For example you can have a Science Fiction collection and War Fiction collection. A book can be added to both of these collections at the same time.
  • You can trigger profiles with collections. This will be explained below if you are not familiar with the profiles feature of KOReader. (Of course you can trigger profiles with folders too but collections doesn't require you to move your books in order to use temporary profiles for example.)

You can create collections to mirror any kind of categorization. Some example ideas:

  • Genres: Fiction, non-fiction, memoir...
  • Book status: Currently reading, want to read, next, did not finish...
  • Series: Lord of the Rings, Harry Potter...
  • Document type: Books, scientific articles, web articles...
Creating and modifying collections

You can create collections from the Collections dialog located here:

You can access this dialog from the reader view or from the File Browser. When you open this menu, it will show you a list of your collections. By default you will see Favorites there as a collection item which includes the books you have already added to your Favorites list.

  • Adding a new collection: Use the hamburger menu located at the top left corner of this screen > New collection
  • Removing a collection: Long tap on the collection name > Remove collection
  • Renaming a collection: Long tap on the collection name > Rename collection
  • Changing the order of your collections: Use the hamburger menu located at the top left corner of this screen > Arrange collection
Adding books to your collections

There are three different places in KOReader where you can add books to your collections:


1. From the File Browser and History screen

You can add a book to your collections from the File browser or History screen. From the History screen you can add books one at a time. Long press on the book and choose Collections.... Then you can choose which collection(s) you want to add this book to.

If you are adding several books, you can do this from the File browser. For multiple books this is the procedure:

  1. Long press on a book
  2. Choose Select from the popup menu
  3. Select other books
  4. Tap the checkmark (✔️) icon at the top-right corner
  5. Tap Collections

For adding a single book, just long-press on it in the File browser and choose Collections from the popup menu.


2. From the Collections menu

This method allows you to add single and multiple books to your Collections. Biggest difference from the File browser method is that you can add whole folders and their subfolders to your collections at once. This is very useful if your books are already arranged in folders. For example if all your science fiction books are in a single folder, you can create a collection named Science fiction and add this folder at once.

In the image above, Box 1 shows the book adding options. You can reach this menu from the collections screen's hamburger menu:

  • Add all books from a folder: As its name says, this options allows you to select a folder to add all the books in it to this collection. Note that this option doesn't add the books in subfolders of the chosen folder. For example if you select your Fiction folder and you have folders named Science Fiction and War Fiction under it, they won't be added with this option.
  • Add all books from a folder and its subfolders: This is the option that will add all the subfolders of your chosen folder. Be careful with this option because it will go down all the way while adding the books. So if you have many levels of nested folders, there might be too many books than you thought.
  • Add a book to collection: This is the basic option that will allow you to add a single book.
Removing books from your collections

You can remove a book from collections from the File browser, History screen or the Collections screen. In the File browser and History screens, long press on the book and choose Collections.... You will see a checkmark next to the collections that you added this book to. Uncheck the ones by tapping on it to remove the book from that collection. Also from the Collections screen, you can long press on a book and choose Remove from collection.

Arranging the books in your collections

Collections can be very crowded but KOReader allows you to find your books easily by providing many filtering options. If you look at the image above, you can see the filtering options in Box 2 and Box 3. Box 2 allows you to filter by book status (new, reading, finished, on hold) and Box 3 allows you to filter by book metadata (author, series, language, keywords). And also you can combine these two groups of filters like this example: "Show me the new books in this collection which are written by Isaac Asimov (Filter by authors -> Isaac Asimov) that I haven't started yet (Filter by status -> New)."

You can update the book metadata by long-pressing on the book in File browser and choosing Book information from the menu. In the popup window you can long-press on any field to change the metadata like author or keywords. You can also use Calibre for this task, a third-party application which makes managing your book metadata much easier.

Be aware that Calibre changes the metadata within the book itself, so the changed metadata is visible outside of Calibre. But KOReader doesn't change the book file, it only adds custom metadata as a file in the book's .sdr folder, so this metadata is visible in KOReader only.
Searching in collections

There are two types of search you can perform in collections: You can search for a phrase in the book titles and metadata or you can also search inside the book texts. You can open the search dialog from:

If you want to perform a search in the book texts, please keep these points in mind:

  • This type of search is only available if you open the collections from the file browser. It is not available from the reading screen.
  • This search can be slow (around 2 seconds per book in the collection). So if you have a crowded collection, it might take a long time.

Search function depends on where you are in the collections window. If you are at the root level where you can see all your collections, search will be performed on all collections. If you want to search only in a specific collection, you have to tap and enter the collection. This is especially important if you are also searching in the book texts because it is a slow operation.

When you perform a search, results will be automatically saved as a new collection.

Automatically synchronizing collections with folders

After creating your collections and adding books to them, you will probably want to keep them in sync with some folders. For example imagine that you created a Science Fiction collection. And you also have a SF folder in your library where you put your science fiction books. If you want to make the science fiction collection update itself when you add a new file to this folder, you can do it with connected folders feature of the collections.

With this feature you can connect one or more folders to your collection. After that, KOReader will (re)scan the folders to add or remove books from your collections in these conditions:

  • When connecting a folder to a collection
  • When including subfolders of a connected folder
  • When showing the collection
  • On program start

How to connect a folder to your collection:

  1. Go to the Collections screen that is seen in the image above.
  2. Long-press on the collection name which you want to connect folders (1).
  3. Select Connect folders from the pop-up menu (2).
  4. List of connected folders screen will open.
  5. Add a folder by pressing the PLUS icon at the top left corner of that screen, which will open the Folder chooser screen.
  6. Repeat the last item if you want to connect more folders.

Collections with connected folders will have a folder icon as you can see from the image above (3).

You might want to include subfolders of a folder too for synchronization. In the step 4 above, when you open the List of connected folders screen, you can long-press on a folder to include/exclude subfolders from the popup menu.


How to disconnect a folder from your collection:

  1. Go to the Collections screen that is seen in the image above.
  2. Long-press on the collection name which you want to connect folders (1).
  3. Select Connect folders from the pop-up menu (2).
  4. List of connected folders screen will open.
  5. Long-press on the folder which you want to disconnect and choose Disconnect folder from the popup menu.
Using Collections with Profiles

Your collections can be used with the profiles feature of KOReader. If you don't know about profiles yet, here is a description from our Profiles section:

A profile is basically a set of actions that can be triggered with a single gesture (like a macro).

As an example, imagine that when reading some type of books, you always:

  • Rotate the screen to landscape orientation
  • Increase the font size and contrast and
  • Turn the screen light on

With the profiles plugin, you can do all these at once with a single action.

You can run a profile manually but real power of profiles can be unleashed with its auto-execute feature. Using this feature, you can trigger a profile depending on some conditions. Here is the link to the relevant section of the guide: Profile Auto-execution. For now we will just explain one trigger condition here: Collections.

Basically you can create some profiles and set them to auto-execute if an opened book is in some specific collection. Some useful examples:

  • You can add all your manga to a Manga collection and make a profile to switch the page turn direction to Right-To-Left and to invert page turn taps and swipes when you open a manga book from this collection.
  • You can add your comic books to a collection, which can trigger a profile to decrease the screen refresh interval to every page to avoid ghosting.
  • You can add your problematic PDFs to a collection, so when you open them Auto OCR or Reflow mode is activated with a profile.
9.4 Optimizing Documents

KOReader is designed to work efficiently even on the limited hardware of e-book readers. But there will always be poorly formatted documents which slow down KOReader. Here we will give some tips for optimizing your document depending on the file type.

EPUB files
  • EPUB files are basically composed of text and images with some rules to determine how these items are formatted on the screen. In ideal conditions, this is a fairly simple process so EPUB files are generally fast in KOReader. But some EPUB books add a great number of formatting rules that KOReader has to do many calculations just to show even a single sentence. This will slow down opening the book, turning the pages and changing the appearance properties like font weight or line spacing.
    KOReader doesn't support fixed layout EPUBs. They will open, but will render as reflowable EPUBs and probably won't look nice or readable.
  • EPUB files are actually ZIP archives that contain HTML files. Some books can be a single HTML file while others may be composed of multiple HTML files like each chapter of the book is a separate HTML file. If your book is only a single HTML file, partial rendering can not work. So appearance changes will be slower than the divided chapter books, because for each change, KOReader still has to calculate the whole book instead of only the current chapter.
  • Another rare case of slowness is when the content is wrapped in a HTML table tag. KOReader has to render/draw each cell on each page turn, so if a cell (containing many paragraphs) spans 50 pages, this will make page turning quite slow.

Solutions:

  • You can set Embedded Styles to OFF in the bottom menu to see if ignoring all the document stylesheets makes it faster (of course, you'll probably lose any nice formatting, but you'll know what is the culprit).
  • If you have HTML and CSS knowledge, you can inspect the HTML and the CSS files directly from KOReader and judge their quality or unnecessary complexity by yourself. To do this, you can long-press on some text and choose View HTML in the popup menu.
  • If you have the “content wrapped in a table” problem as mentioned above in the problems section, you can add this table, tr, td { display:block; } book-specific style tweak to:
  • Calibre’s e-book editor can check EPUB files for problems and has tools to fix some of the problems.

    You can download Calibre from here.

    You can see the instructions for the Check book tool of Calibre here.

  • EPUBCheck application can check the validity of the EPUB files and detect many types of errors. You can read an example issue, where the problem is detected with EPUBCheck here.

    You can download the command line version from here.

    Or download a graphical user interface version from here.

PDF files

PDF files can be slow because of these problems:

  • PDF file itself might be too big for your device memory.
  • PDF file might contain very large image files. Even in documents with a normal text layer (which you can select and highlight) there might be another image layer embedded (generally a scan of the page). This slows down the opening and page turning because these large images has to be rescaled to fit on your screen and this process can be CPU intensive.
  • PDF file might have lots of individual elements that needs precise positioning, like a magazine page with lots of images and text boxes. In this case KOReader has to calculate and draw all these elements which can take time.
  • Auto straighten feature (which allows you to adjust the tilt of the page) might also slow down your reader.
  • If you set your RENDER QUALITY to HIGH while REFLOW is ON, text will be more pleasing but it can be much slower (up to several seconds per page turn) than DEFAULT depending on your document.

Unfortunately, for bad PDF files there are not many solutions. Generally best solution with problematic PDFs is trying to find a better version of it. Or if another file type is available for download, like EPUB instead of PDF (or reverse) you can try that format.

Also you can try to convert your documents into the more flexible EPUB format. Here are some apps that can help you when working with PDFs:

  • Calibre can convert your documents between many formats. It also has a built-in editor that allows you to edit e-books (and fix problems) in the most popular e-book formats, EPUB and Kindle.
  • K2pdfopt optimizes PDF/DJVU files for mobile e-readers and smartphones. It works well on multi-column PDF/DJVU files and can re-flow text even on scanned PDF files. It can also be used as a general PDF copying/cropping/re-sizing/OCR-ing manipulation tool.
  • OCRmyPDF is a command line application which can add an OCR text layer to scanned PDF files (containing only images without text), allowing them to be searched or copy-pasted. It can especially be useful for reading old scanned books. It can also optimize the images for a smaller file size.
Manga and Comics

We have a dedicated section for optimizing manga and comics: Optimizing Manga

TEXT files

KOReader has a very efficient text processing engine. Also books are cached on first opening so KOReader can open them faster next time. But despite these optimizations, unusually large text files might still take longer to open. For example, online Chinese novels are known to reach tens of millions of words and generally saved as text files.

Problem with large text files is the delay when first rendering the book and when modifying the text appearance later. If you try to change the font size of a very large .txt book, you might see a big delay after each adjustment because all of the book has to be rendered again. KOReader has a partial rendering system which shortens this type of delay considerably. But this feature can't be used with text files because these files are not divided into chapters (you can read more about partial rendering here).

To benefit from partial rendering speed-up, you can convert your large text file to EPUB format using the Calibre application. Calibre will automatically divide your text file into smaller individual files during conversion and pack them into a standard EPUB file. After this conversion, you can change your book appearance much faster. You can download Calibre from this page and find online tutorials for the TXT-to-EPUB conversion procedure.

Web pages

SingleFile is a browser extension for Mozilla Firefox, Google Chrome and Microsoft Edge. This extension allows saving a web page as a single .html file with all the resources (images, stylesheets, scripts) embedded. Then you can copy this single file to your device and read with KOReader.

9.5 Using OPDS Catalogs

An OPDS (Open Publication Distribution System) catalog is an online feed that acts like a digital library index. KOReader has OPDS support so you can browse these digital libraries, search for books on them and download the books directly to your device.

KOReader comes pre-configured with some large OPDS catalogs like Project Gutenberg and Standard Ebooks and you can add other OPDS catalogs. To open the OPDS dialog, go to:

Using personal OPDS servers

In addition to the public catalogs, you can use OPDS system to manage your own library. Using the Calibre application, you can serve the books on your computer as an OPDS catalog, which you can browse directly from KOReader. Click here for Calibre instructions about configuring an OPDS server.

Kavita is also an open-source and feature rich, cross platform reading server. You can setup your own server and share your reading collection with your friends and family. It also has OPDS and progress sync support for KOReader. Using this application, you can access your library from your reader device and synchronize reading positions between different devices to continue reading where you have left. Project's page is here. Documentation for OPDS and progress sync for KOReader users is here.

After setting up your own OPDS servers, you need to add them to KOReader. Instructions are here.

9.6 Synchronizing Progress

If you are using KOReader on several devices like e-reader, phone, tablet or desktop computer, KOReader can synchronize your reading progress between them. Using the progress sync feature, you can continue reading seamlessly when switching from your e-reader at home to your phone on the commute for example.

This feature is handled by the progress sync plugin. Setting up synchronization involves these three steps which we will explain below:

  1. Create a sync account
  2. Login to your sync account from all the devices you want to synchronize
  3. Automatically or manually synchronize your reading progress
1. Creating a sync account

To create a sync account, connect to a network on your device and open the progress sync plugin in KOReader:

and press the Register/Login button.

In the opening window, enter a username and password then press the Register button. This will create an account on KOReader sync server which will hold your reading progress.

2. Login to your sync account

Open the same menu on the devices that you want to sync. Enter your username and password and this time press the Login button. After this, your devices will be connected to your sync account.

You can give recognizable names to your devices. Again from the same menu, press the Device hostname and enter a name for the current device.

3. Sync your progress

After everything is set up, you can synchronize your reading progress automatically or manually:

  • Automatic sync: To synchronize automatically, enable the Automatically keep documents in sync menu item. Now whenever you close a book or suspend/resume your device, KOReader will send your reading progress to the server (of course this requires an available network connection).
  • Manual sync: If you don't have constant internet connection on your device for battery or availability reasons, you can choose to synchronize manually. You have many options to trigger a synchronization:
    1. From the menu: In the Progress sync plugin's menu you can press the Push progress from this device now menu item to send your progress on the current device to the server. To receive the latest progress from the server, press Pull progress from other devices now menu item.
    2. With gestures: These actions (push/pull progress) are available in the Gesture manager so you can assign them to any gesture you like.
    3. With quick menu: You can add these actions to your Quick Menu.
    4. From profiles: You can add these actions to your Profiles. Especially with the auto-execute feature of profiles, you can trigger sync with various filters and conditions.
Document matching method options

In order to sync the progress of a document on two different devices, KOReader first has to identify these two files as "same". Sometimes this can be tricky, so we have two methods that you can choose from, depending on your usage of KOReader. You can change the method from the Document matching method option in the progress sync menu.


Binary matching (default)

By default, progress sync uses Binary matching method to identify the files. In this method, KOReader generates a partial MD5 hash of the file’s content (which looks like this: 0b229176d4e8db7f...). Any tiny change to the file, completely changes this hash so binary matching method works only if both files are perfectly identical.

If you are copying the exact same file manually to all your devices, this method should work. But for example if you are using Calibre to send books to your devices, binary matching will fail.

Because Calibre writes its own information like viewer progress directly into the file, which changes the file hash calculation, so KOReader will treat these files (original and Calibre modified) as two different books. If you have this problem you can use the alternative method explained below.


Filename matching

This is a "looser" matching method designed for users whose files might vary slightly between devices due to the changes made to the documents by other software like Calibre, as explained above.

In this method, KOReader only checks if the filenames (including the extension) of the two documents are identical to match them. So if you are using Calibre or some other library management software to manage your library across different devices, you can change to Filename matching.

You can also have a look at the Book metadata storage options section of the guide for in-depth information.
Privacy and security of the synchronization process
  • KOReader sync server, the software that handles KOReader's synchronization process is an open-source project. You can find more information including the source code on its GitHub page.
  • Synchronization server does not store file name or content. This means, the server can't know what you are reading. When you synchronize the progress of a document, only this information is transferred and kept on the server:
    1. User name (that you have chosen)
    2. Unique id of the document (MD5 hash of the file which looks like this: 0b229176...)
    3. Furthest reading position for this document
  • Your password is not stored on the server (only a MD5 hash is kept).
  • All communication between KOReader and the sync server is secured with HTTPS.
Hosting your own sync server

You also have the option to host your own sync server if you wish. You can use the official KOReader sync server or one of the alternatives you can see on this page.

There are also other projects like Calibre-Web which are library management solutions with an integrated KOReader sync server.

9.7 Book Metadata Archive

First we will explain KOReader's file deletion behavior so you will better understand the Book Metadata Archive feature:

Normally when you copy a document to your device and open it for the first time, KOReader creates a new directory with a name like your_document_name.sdr and uses this directory to keep the settings, annotations and progress for this document.

When you delete a document using KOReader's File Browser, KOReader deletes this .sdr directory too. Which means that you lose all the settings, annotations and progress for the deleted document. If you copy this document to your e-reader again and open it with KOReader, it will be like opening it for the first time.

But for example, what if you want to delete the finished books (maybe you don't like clutter in your library or you are out of space), but also you don't want to lose the highlights from these books? Book Metadata Archive feature allows you to do this.


How this feature works:

  1. First you have to activate the feature by choosing an archive location here:
  2. Now when you delete a document from the File Browser, you will see this option is enabled in the confirmation dialog: [ ] save book to metadata archive
  3. If you check this option when deleting, KOReader will copy the settings file for this document to your archive directory which you have chosen at the first step above.
  4. Then KOReader will delete your document and its associated your_document_name.sdr directory.

Your document is deleted, but its settings are in the archive. If you copy this document to your device again and open it, KOReader will notice that the settings for this document are in the archive and tell you this: "This book was previously opened on this device. Would you like to restore its metadata from the archive?" Restore button will use this archived settings file for this document so you will get back the settings, annotations and progress for this document.

You can see the list of archived documents here:

From this list, you can access the archived document's information/metadata and bookmarks by tapping on the name of the document. Also you can delete the document from the archive.


Save metadata to archive on book closing

If you enable this option from the same menu mentioned above, KOReader will save a copy of the the settings file of every document when closing it. Even if you delete a document and its .sdr folder outside of KOReader (Android file manager, when connected to your pc...) you will still have a backup of your document's settings.

If Save metadata to archive on book closing option is enabled, but you uncheck the save book to metadata archive option in the file delete dialog, KOReader will delete the previously created settings archive file for this document.

KOReader recognizes deleted files from their file hashes. This means the file you copied back to your device should be identical to the deleted file. Any changes like Calibre metadata written into the file or PDF highlights added, will change the hash of a file. In this case KOReader can't offer you the Restore option because it will see this as a different file. See the next section of the guide for more detailed info: Book Metadata Storage
9.8 Book Metadata Storage

KOReader stores settings and extra information related to your books in the same directory as your book file. We call this metadata and it includes:

  • Visual settings for the book
  • Book reading progress
  • Highlights, bookmarks and notes

In a recent change, we added new ways of storing this metadata to solve certain problems related to synchronization between devices. Currently there are three different methods to store the metadata and each method has its own benefits/negatives.

You can change this setting from this menu:

We strongly advise reading the section below to understand the differences and how each method works before making any changes. Otherwise there is a risk of losing your book settings, progress and annotations.
1. Individual metadata folders next to the book files - DEFAULT SETTING

This is the default method used on a new installation of KOReader. In this method, when you copy Alice in Wonderland.epub to your device and open it for the first time, a folder named Alice in Wonderland.sdr will be created in the same directory. This directory contains the files for your settings, annotations and book progress for this book.

Benefits

  • You can manually backup and restore the settings for each book.
  • When you perform directory synchronization or backups with a system like Syncthing or Dropbox, your settings will be synchronized alongside your books.
  • You can rename the parent directories where your book resides, this doesn't confuse KOReader.

Negatives

  • If you reorganize your library by moving/renaming the book files or their accompanying .sdr folder outside of KOReader file browser, you will lose metadata of those books without any warning.
  • These .sdr folders will be visible when you browse your library directories with another file browser or from your computer, which may clutter your view.
2. Metadata directories under a single KOReader directory

This method is essentially same as the default one above. The difference is, in this method, all .sdr folders of your books will be under a single directory which is under the KOReader main directory structure, instead of your library directory, next to the book files.

Benefits

  • Book .sdr folders will only be visible to and used by KOReader. They won't clutter your view of your library directories when you browse your library with another file browser or from your computer.

Negatives

  • If you reorganize your library by moving/renaming the moving/renaming library directories, book files or their accompanying .sdr folder outside of KOReader file browser, you will lose metadata of those books without any warning.
  • Since your book metadata will not be in your library folders, any synchronization or backups of your library will not include them.
3. Individual HASHED metadata directories under a single KOReader directory

This method is similar to the previous one as the .sdr folders will be under an internal directory. But this method is developed to address the shortcomings of the previous method. Because, normally if you rename a book outside KOReader (with the native file manager/reader of the device or from a connected computer), its .sdr folder name will no longer match and your metadata for that book will be lost. If you are only using the KOReader File Browser for file operations, this is automatically handled so there are no repercussions.

In this HASHED method, .sdr folders are not identified by the filepath/filename of the book. Instead, a partial MD5 hash will be used to link the books to their settings. This hash is used as a unique ID for the book and it is calculated based on the contents of the book file. Also same hash is used for naming its .sdr folder.

Benefits

  • Book .sdr folders will only be visible to and used by KOReader. They won't clutter your view of your library directories when you browse your library directories with another file browser or from your computer.
  • You can rename, move, and copy your books with another file browser or from your computer. KOReader will still recognize the books after these operations.
  • In this method, KOReader associates the same .sdr folder with all copies of the book, even if these copies are on different devices. For example if you are using Syncthing, this method enables you to sync your /hashdocsettings folder alongside your book files, across many devices that all have KOReader installed. Despite the different relative paths of those books on each device, you can still get your annotations and progress synchronized across your devices. This isn't possible with other methods.

Negatives

  • Any operations that modify the file directly (such as writing highlights into PDFs or downloading from Calibre) will change the file so its MD5 ID will change (unlike renaming or moving which is safe with this method). In this case KOReader wouldn't be able to recognize the book so these books will lose their metadata.
  • Calculating file IDs may slow down File browser navigation when browsing larger directories.
10 GESTURES AND KEYBOARD SHORTCUTS

There are many types of gestures you can use to control KOReader. Some gestures have limitations regarding where on the screen they can be used and which directions are supported. These limitations are indicated below.

10.1 Gesture Types
Some devices support only single touch so multi-finger gestures are not available on them.

TAP / DOUBLE TAP

Single or double tap with ONE finger

WORKS: Anywhere on the screen

TAP AND HOLD

Single tap and hold with ONE finger

WORKS: Only on four corners

TWO FINGER TAP

Single tap with TWO fingers at the same time

WORKS: Only on four corners

SPREAD AND PINCH

Same as zooming in and out on a phone or tablet.

WORKS: Anywhere on the screen

This gesture may work less reliably depending on your device. If that’s the case please choose another gesture type.

ONE FINGER SWIPE

Swiping motion with ONE finger

WORKS: Screen edges (HORIZONTAL and VERTICAL) Anywhere except edges (DIAGONAL)

TWO FINGER SWIPE

Swiping motion with TWO fingers at the same time

WORKS: Anywhere on the screen

MULTISWIPE

More than one swipe done after each other without lifting your finger. For example like drawing the letter U (DOWN-RIGHT-UP)

WORKS: Anywhere on the screen

Icons by Econceptive from the Noun Project

10.2 Predefined Gestures

This section lists the gestures that are enabled when you install KOReader. You can change these gestures according to your preferences via:

You can see an overview of your currently defined gestures here:


CORNER TAP

Top Left Corner > Toggle page flipping

Top Right Corner > Toggle bookmark

Opposing diagonal corners at the same time > Take screenshot


DOUBLE TAP

Left Side > Go -10 pages

Right Side > Go +10 pages


ONE FINGER SWIPE

Short diagonal swipe > Full screen refresh

Long diagonal swipe > Take screenshot


MULTISWIPES

 - Back to previous location

 - Go to latest bookmark

 - Skim document

 - Bookmarks

 - Table of contents

 - Show frontlight dialog

 - Toggle reflow

 - History

 - Book status

 - Go to page

 - Back

 - Previous chapter

 - Next chapter

 - Open previous document

 - Favorites

10.3 Gesture Categories

This is a list of every action that you can assign to a gesture using the Gesture Manager menu. You can use the search function of your browser (generally Ctrl+F) to search for an action here. These actions can also be used in your own Quick Menu. Please check the relevant section in the guide for more info.

You can see an overview of your currently defined gestures here:

When chooosing an action for a gesture, you will see a special item in the list named pass through. This action is used to keep the default behavior of that gesture, like text selection when long pressing near the corners. If you want to disable a gesture to avoid accidental actions, choose nothing as the action. In other words pass through=another handler might act on it, nothing=swallow the action.
General
  1. Gesture overview
  2. File browser
  3. Open previous document
  4. History
  5. History search
  6. Favorites
  7. Collections
  8. Collections search
  9. Bookmark browser
  10. Dictionary lookup
  11. Load dictionary preset
  12. Cycle through dictionary presets
  13. Wikipedia lookup
  14. Show menu
  15. Menu search
  16. Open next file in last book folder
  17. Open previous file in last book folder
  18. Notebook file
  19. Screenshot
  20. Toggle SSH server
  21. Show ephemeris
  22. Reading statistics
  23. Reading statistics: toggle
  24. Reading statistics: show progress
  25. Reading statistics: show time range
  26. Reading statistics: show calendar view
  27. Reading statistics: show today's timeline
  28. Reading statistics: synchronize
  29. Fast Reader
  30. RSVP Reading
Device
  1. Exit sleep screen
  2. Start USB storage
  3. Sleep
  4. Restart KOReader
  5. Reboot the device
  6. Power off
  7. Exit KOReader
  8. Toggle long-press on corners
  9. Ignore long-press on corners
  10. Enable touch input
  11. Disable touch input
  12. Toggle touch input
  13. Invert page-turn buttons
  14. Set page-turn button inversion
  15. Toggle key repeat
  16. Toggle accelerometer
  17. Enable accelerometer for 5 seconds
  18. Toggle lock auto rotation to current orientation
  19. Set lock auto rotation to current orientation
  20. Rotation
  21. Toggle orientation
  22. Invert rotation
  23. Rotate by 90 CW
  24. Rotate by 90 CCW
  25. Turn on Wi-Fi
  26. Turn off Wi-Fi
  27. Toggle Wi-Fi
  28. Show network info
  29. Battery statistics
  30. System statistics
Screen and lights
  1. Show frontlight dialog
  2. Toggle frontlight
  3. Set frontlight brightness
  4. Increase frontlight brightness
  5. Decrease frontlight brightness
  6. Set frontlight warmth
  7. Increase frontlight warmth
  8. Decrease frontlight warmth
  9. Toggle night mode
  10. Set night mode
  11. Full screen refresh
  12. Full refresh rate (always)
  13. Full refresh rate (not in night mode)
  14. Full refresh rate (in night mode)
  15. Always flash on chapter boundaries
  16. Toggle flashing on chapter boundaries
  17. Never flash on chapter's 2nd page
  18. Toggle flashing on chapter's 2nd page
  19. Always flash on pages with images
  20. Toggle flashing on pages with images
  21. Auto warmth off
  22. Auto warmth use sun position
  23. Auto warmth use schedule
  24. Auto warmth use closer midnight
  25. Auto warmth use closer noon
  26. Auto warmth cycle through modes
File browser
  1. Set display mode
  2. Sort by
  3. Reverse sorting
  4. Folders and files mixed
  5. Show plus menu
  6. Toggle select mode
  7. Refresh content
  8. Folder shortcuts
  9. File search
  10. Last file search results
  11. Folder up
  12. Go to page
  13. Back
  14. Cloud storage
  15. Export all notes in all books in history
Reader
  1. Show bottom menu
  2. Toggle status bar
  3. Toggle chapter progress bar
  4. Load status bar preset
  5. Previous chapter
  6. Next chapter
  7. First page
  8. Last page
  9. Random page
  10. Turn pages
  11. Go to page
  12. Skim document
  13. Pin current page
  14. Go to pinned page
  15. Previous bookmark
  16. Next bookmark
  17. First bookmark
  18. Last bookmark
  19. Latest bookmark
  20. Back
  21. Back to previous location
  22. Forward to next location
  23. Follow nearest link
  24. Follow nearest internal link
  25. Toggle tap-to-follow links
  26. Add current location to history
  27. Clear location history
  28. Fulltext search
  29. Last fulltext search results
  30. Fulltext search: go back to original page
  31. Table of contents
  32. Book map
  33. Book map (overview)
  34. Page browser
  35. Bookmarks
  36. Bookmark search
  37. Toggle bookmark
  38. Book status
  39. Book information
  40. Book description
  41. Book cover
  42. Translate current page
  43. Invert page turn taps and swipes
  44. Toggle page turn direction
  45. Toggle custom TOC
  46. Toggle custom hidden flows
  47. Set highlight action
  48. Cycle highlight action
  49. Cycle highlight style
  50. Save book metadata
  51. Export annotations
  52. Export all notes in current book
  53. Export all notes in all books in history
  54. Move current book to archive
  55. Reading statistics: current book
  56. Set auto progress sync
  57. Toggle auto progress sync
  58. Push progress from this device
  59. Pull progress from other devices
Reflowable documents
  1. Set typography language
  2. Toggle hanging punctuation
  3. Font
  4. Increase font size
  5. Decrease font size
  6. Font size
  7. Word spacing
  8. Word expansion
  9. Contrast
  10. Font weight
  11. Font hinting
  12. Font kerning
  13. Two columns
  14. L/R margins
  15. Sync T/B margins
  16. Top margin
  17. Bottom margin
  18. View mode
  19. Render mode
  20. Zoom
  21. Line spacing
  22. Alt status bar
  23. Embedded style
  24. Embedded fonts
  25. Image scaling
  26. Invert images
  27. Toggle style tweaks
  28. Edit book-specific style tweak
  29. Toggle book-specific style tweak
Fixed layout documents
  1. Toggle page flipping
  2. Toggle bookmark flipping
  3. Toggle reflow
  4. Zoom mode
  5. Change zoom factor
  6. Toggle panel zoom
  7. Page crop
  8. Margin
  9. Horizontal overlap
  10. Vertical overlap
  11. Fit
  12. Zoom to
  13. Number of columns/rows to split page
  14. Zoom factor
  15. Direction
  16. View mode
  17. Page gap
  18. Line spacing
  19. Alignment
  20. Font size
  21. Change font size
  22. Word gap
  23. Reflow
  24. Contrast
  25. Dewatermark
  26. Render quality
  27. Document language
  28. Forced OCR
  29. Writing direction
  30. Invert document
  31. Document columns
  32. Auto straighten
10.4 Keyboard Shortcuts

If you have a device with a keyboard like Kindle 2 and Kindle 3, including Bluetooth keyboards and emulators, you can use the keyboard keys, device buttons and shortcuts to control KOReader. Kindle 4 is supported too, which lacks a full keyboard but still has enough buttons to make it functional in this context. On these devices, KOReader will enable an extra menu named Keyboard Shortcuts which you can access here:

This menu is very similar to the Gesture Manager interface. In this menu:

  • You can see the shortcuts that are available on your device
  • You can see the predefined actions for some shortcuts
  • You can assign actions to the available shortcuts

All of the actions in the Gesture Manager is also available for keyboard shortcut assignment. Which means you can control nearly all the functions of KOReader with these shortcuts.

In the table below, you can see the default key and shortcut assignments:

Universal screenshot key is Alt + Shift + G. It is available on all screens, modes and platforms. On Kindle 4, it is Keyboard + Menu.
If you have a Kindle 4, SHIFT key in the table below is mapped to your KEYBOARD button. So Shift + (UP/DOWN/LEFT/RIGHT) shortcuts are mapped to Keyboard button + (UP/DOWN/LEFT/RIGHT) on your Kindle 4.
File browser mode
Open top menu F1
Navigate to home Home
Move in file list Up / Down
Open selected book Enter
Exit application Esc
Reading mode
Open top menu F1
Open bottom menu Enter
Back/exit application Esc
Bookmarks Shift + Left
Toggle bookmark Shift + Right
Dictionary lookup Ctrl + D (Alt + D on Kindles)
Wikipedia lookup Ctrl + W
Fulltext search Ctrl + S
File search lookup Ctrl + F
Links
Select next page link Tab
Select previous page link Shift+Tab
Open selected page link Enter
Image viewer (long-press on image)
Zoom in Page Down
Zoom out Page Up
Highlighting
Enter highlighting mode H
Start/stop highlighting Enter
Move highlight indicator Left/Right
Up/Down
Move indicator faster Shift +
Left/Right/Up/Down
Exit highlighting mode Esc
Navigating the book
Page turn Left-Right / Up-Down
Page Up-Page Down
Table of contents Shift + Up
Book map Shift + Down
Go to the beginning 1
Go to 11% of book 2
Go to 22% of book 3
Go to 33% of book 4
Go to 44% of book 5
Go to 55% of book 6
Go to 66% of book 7
Go to 77% of book 8
Go to 88% of book 9
Go to the end 0
In Skim Document dialog
Go to the beginning Q
Go to 11% of book W
Go to 22% of book E
Go to 33% of book R
Go to 44% of book T
Go to 55% of book Y
Go to 66% of book U
Go to 77% of book I
Go to 88% of book O
Go to the end P
Page zooming

Only for PDF, DJVU and images

Zoom to fit page A
Zoom to fit page width S
Zoom to fit page height D
Zoom to fit content Shift + A
Zoom to fit content width Shift + S
Zoom to fit content height Shift + D
11 QUICK MENU AND PROFILES
11.1 Quick Menu

Quick Menu is a recent feature of KOReader which allows you to have a quickly accessible personalized menu as in the example image below. You can assign this menu to a gesture and access it with a single swipe. You can even have a menu longer than your screen, it is scrollable.

Basically, any action you can assign a gesture can be added to the Quick Menu. Its advantages are:

  1. You don’t need to memorize lots of gestures for every action.
  2. Some infrequent actions may not worth a gesture but it can be too much hassle to find it in the menu system. You can add this kind of rarely used actions to this menu instead.
  3. If you are installing KOReader for a relative or friend, you can add their favorite actions to this menu so they don’t even need to go into the menu system while using KOReader.

An example Quick Menu:

There are two methods of creating a Quick Menu: Easy and Advanced. If you need only one menu, Easy method should be enough for you. If you want to show different menus with different gestures you need to use Advanced method. Another advantage of Advanced method is easier gesture reassignment. If you want to change the gesture for your menu, you can easily move it to another gesture with the Advanced method menu. If you want to use another gesture while using the Easy method, you have to re-create your menu under the new gesture.

Easy method
  1. Go to Gesture Manager menu via:
  2. Decide a gesture for opening your menu and tap on it.
  3. Choose the actions you want to see in your menu from the gesture configuration menu. You can select many actions at once of course.
  4. After selecting all your actions, you will tell KOReader to treat this gesture as a menu. You achieve this by enabling Show as Quick Menu item on the second page as you can see in the picture below.
  5. You can sort your menu items with the Arrange actions and QuickMenu separators option from the same menu.

Now you can launch your menu with the gesture you selected. If you want to change the menu items, you can open the gesture page and add/remove items.

Advanced method
As we said above, if you are not planning to add more than one Quick Menu you don’t need this section.

This Quick Menu is actually a Profile which appears on your screen as a menu. So first you have to learn about Profiles. If you already know how to use them, you can continue reading, otherwise jump to the Profiles heading (next section), create a Profile with some items and come back here.

Before continuing, we assume that you already created a Profile as instructed in the previous paragraph. Now we will turn our Profile into a Quick Menu.

1. Go to your newly created Profile and enable Show in action list (shown in the image below). This will make your Profile visible in the Gesture Manager. Also enable Show as Quick Menu (also in the image below) so your profile will be shown as a menu instead of being silently executed.

2. Now we need a way to access our menu. Go to the Gesture Manager and choose a gesture from the list to assign to our menu. Let’s say we want to tap the corner of the screen to show menu. Now tap on Tap corner then choose Bottom left. Now tap on General and go to the second page. You will find your profile as Profile x where x is the name you gave to this Profile. Tap on its checkbox to assign your profile to this gesture.

After all the steps, now you should see your menu when you tap on the bottom left corner. You can edit your menu by going to its Profile page where you can add or remove items. Also there is a Sort item there so you can change the order of your menu items.

As we said, a Quick Menu is actually a Profile. Which means you can have more than one menu. You can create another Profile and follow the same steps to create another menu if you want.

11.2 Quick Menu Tips
Keeping the menu open after use

Normally after selecting an item in your Quick Menu, menu disappears from the screen. Sometimes you might want to keep the menu open after selecting an item. This allows you to adjust settings like these examples:

  • Incremental changes, like brightness increase/decrease, bigger/smaller font size, previous/next pages or chapters, etc.
  • Group of options that you activate in succession (but not simultaneously), like turning on wifi and after that starting the SSH server

You can enable this option from the following menu if you have a Gesture Manager based (Easy method) Quick Menu:

Or from this menu, if you have a Profiles based – (Advanced method) Quick Menu:

Opening Quick Menu at the gesture position

Normally Quick Menu opens centered at the middle of the screen. If you are using your e-reader with one hand, you can activate a setting which will open your menu at the gesture position. This way, menu will be closer to your finger and easier to access. To use this feature enable this option:

This is available only in a Quick Menu which is created via Gesture Manager (Easy method above).
Adding profiles as menu items to a Quick Menu

In addition to adding actions to your quick menu, you can also add your profiles as a menu item. This way, you can execute many actions at once with this single menu item.

We assume that you have a working quick menu and a profile, which you want to add to this menu. With these ready, follow these instructions:

  1. Go to the Settings of the profile that you want to use as the "menu item" and enable Show in action list. This will make your profile visible in the Gesture manager.
  2. Now you can add this profile to your quick menu as a regular action from the Gesture Manager. You can find this profile at the last page of General sub-menu of Gesture manager.

After adding your profile as a menu item, you can open your quick menu and tap on this item to execute all the actions in tes profile. You can also add a profile as a sub-menu which allows you to have a nested menu. This method is explained in the next heading.

Creating nested quick menus

You can also add a quick menu as a menu item to another quick menu. This will give you a nested menu structure. This is useful when you have many quick menus but you don't want to assign different gestures to each one.

  1. Go to the Settings of the profile that you want to use as the "child menu" and enable Show in action list. This will make your profile visible in the Gesture manager.
  2. Then enter the Edit actions menu in the same Settings of the child menu profile. Now enable the Show as QuickMenu option which is on the second page. This will tell KOReader to treat this profile as another menu which you can enter, instead of executing all its actions when you tap on it.
  3. Now you can add this profile to your parent quick menu like other actions in the Gesture manager. You can find your child menu profile under the General tab, last page.
If you don't enable the Show as QuickMenu for the child menu in the second step above, you can still access its menu items with a long-press on the child menu's name in the parent menu. This will also give you an Execute all item at the top of the child menu.
11.3 Profiles

A profile is basically a collection of actions that can be triggered with a single gesture (like a macro).

As an example, imagine that when reading some type of books, you always:

  • Rotate the screen to landscape orientation
  • Increase the font size and contrast and
  • Turn the screen light on

With the profiles plugin, you can do all these at once with a single action.

When you activate another profile, changes made in the first profile will not be reversed. For example, you activate a profile which sets your font size from 20 to 24. Then you activate another profile that adjusts your frontlight. Your font size stays at 24 after activating the second profile. Because profiles in KOReader doesn’t have an exit or reverse action.

To create a profile first be sure that Profiles plugin is activated. If you don’t see it under:

then you have to turn it on from:

Creating a profile

In Profiles menu tap New and give a descriptive name for your profile. Now you should see your new profile in the menu. Tap on it and you will see the screen on the left side. You can also Delete, Rename or Duplicate a profile from this menu.

When you tap on Edit actions menu item you will see the menu on the right. This is the same menu as the gesture selection menu and there are actions in many categories. Which means you can perform any Gesture action using a Profile.

You can now select several items from all these categories. The actions you selected here will be performed when you activate this profile.

Activating a profile

There are many ways to activate a profile:

  1. With the Execute action in its menu.
  2. Using a gesture. For this, you have to enable Show in action list from the profile’s menu. Now you can select it via:
  3. From your Quick Menu.
  4. You can also activate a profile automatically depending on some conditions. See the next heading to learn how to use this powerful feature.
11.4 Profile Auto-execution

You can run a profile manually as explained above but real power of profiles can be unleashed with its auto-execute feature. Using this feature, you can trigger a profile depending on some conditions and sub-conditions:

TriggerSub-conditions
Only within time interval

This option is not a trigger but a limiter. You can use this option to define a time interval for the execution of profile. For example "make the font bigger when I open a book from a certain collection but only if it is evening time".

-
On KOReader start

Run this profile every time KOReader starts. Note that this is only possible when KOReader is starting with the File browser or Last file.

-
On wake-up

Run this profile every time device wakes up

-
On exiting sleep screen

Run this profile every time device exits the sleep screen

-
On rotation

Run this profile when screen rotates to the selected rotation(s).

Examples: Change to double column layout when device rotates to landscape. Activate night mode when device rotates upside down.

  • Left 90° (landscape)
  • 0° (normal)
  • Right 90° (landscape)
  • 180° (upside down)
On showing folder

Run this profile when you enter this folder in file browser. You can use this trigger to change the display mode of file browser. For example when you enter a certain folder you can change the display mode from mosaic to detailed view.

  • If folder path contains a certain text
  • If folder path does not contain a certain text
  • If folder path is equal to a certain folder
  • If folder path is not equal to a certain folder
On book opening

This trigger is executed when you open a book (optionally) combined with specific sub-conditions.

First 4 sub-conditions are OR matching, so any one of them is enough to trigger the profile execution.

  • Combined with device orientation
  • Combined with book metadata
  • Combined with book file path
  • Combined with collections book is included in
  • Combined with book is being opened for the first time
On book closing

This option is same as above but it triggers when you close a book. You can use this for example enabling/disabling reading statistics when you open certain documents to exclude them from your stats.

  • Combined with device orientation
  • Combined with book metadata
  • Combined with book file path
  • Combined with collections book is included in
On read timer expiry

Run this profile every time the read timer finishes

-
On auto night mode activation

Run this profile every time the Night Mode (inverted screen color) is toggled or screen warmth is changed

This trigger will activate on every warmth change. You can limit this by enabling the Only within time interval option.



Profile auto-execution examples:

Here are some profile examples from our devs to give you ideas about using this powerful feature of KOReader. Examples also include auto-execute conditions and collections features:

  • Enable two columns mode when you turn your device to landscape orientation.
  • Enable night mode when you turn your device upside down.
  • Add all your manga to a collection. Then create a profile which switches the page turn direction to Right-To-Left and inverts the page turn taps and swipes when you open a manga book from this collection.
  • Add your comic books to a collection, which can trigger a profile to decrease the screen refresh interval to every page to avoid ghosting.
  • Trigger a profile to adjust typeface, font size and set two-column mode when opening a file for the first time from the Periodicals folder.
  • Add your problematic PDFs to a collection, so when you open them Auto OCR or Reflow mode is activated with a profile.
  • Switch display mode (covers, detailed list etc.) of file browser when you enter certain folders.
  • Toggle off reading statistics when opening a book from a Reference Books collection. Toggle statistics back on when closing the book.
  • If you expose the style tweaks in the gesture manager, you can create a profile to enable or disable them based on certain conditions. For example you can trigger a "disable publisher styles AND apply my user style tweaks" profile based on the book's location/collection or by a keyword in the metadata of the book. See the Style Tweaks section of the guide for more info.
Execute profile actions one by one

Normally when you execute a profile, all of the actions in the profile are executed following the order that you have chosen in the Arrange actions menu.

But you also have the option to execute them one by one. Which means, each time you invoke this profile, only one of the actions (next one) will be executed instead of all of them.

Here is a useful example:

  1. Create a profile with these actions
    • Go to pinned page
    • Go back to previous location
  2. Assign it to an easy gesture like Tap bottom right corner
  3. Enable Execute one by one option from the profile's Edit actions menu

Now each time you tap the right corner, you will switch between your pinned page and your reading position. This can be useful for quickly jumping to references section and going back, for example.

Profile troubleshooting

Profiles are auto-executed with a tiny delay to avoid interference with other operations/events of KOReader. But in some cases like closing a document, profile has to be executed instantly to be able to perform its actions.

You can enable this instant execution option from:

When you enable this option, for example on a profile with the trigger on book closing, your profile will be executed before the document is closed. This running order is necessary for proper execution in this case.

Whenever you enable Auto-execute for a profile, we suggest enabling this Execute promptly option too. If you observe that your profile is not working correctly, then you can try disabling this option.

This setting may also cause (unknown) issues, because the number of action combinations in a profile is almost infinite and we don't know how they might interact. This is why it doesn't come enabled by default.
Technical details of Profiles and Quick Menu

In KOReader we have a set of actions/settings and this set can be created in two ways:

  1. As a profile (which is explained as the Advanced Method and stored in settings/profiles.lua)
  2. As a list of actions assigned to a gesture (which is explained as the Easy Method and stored in settings/gestures.lua)

This set can also be executed in two different ways:

  1. Applying each action in the (sorted) order when triggered (as a Profile)
  2. Showing it as a Quick Menu

Adding/removing actions of a set and enabling/sorting Quick Menu are done via the same actions menu. The only difference is that the actions menu in the Gesture manager has two more items (Pass through), that is why Show as Quick Menu and Sort items are on the second page.

You can backup and transfer your profiles to another device. Please see Backup your KOReader settings heading.
12 PLUGINS AND USER PATCHES
12.1 Plugin Types

Plugins are small KOReader programs that are similar to browser add-ons which extends the capabilities of the base program. KOReader has 3 categories of plugins:

Internal

Internal plugins are part of the core program.

  • They are directly accessible from the KOReader plugins menu.
  • They don’t need installation. You can enable them from the menu.
  • They are checked by our developers so they are considered safe.
  • They are automatically updated when you update KOReader.

You can enable/disable them via:

Contrib

This group contains non-official plugins which are not part of the core logic of KOReader.

  • They have to be installed manually and then activated from the plugins menu.
  • They should be updated manually.
  • They are checked by our developers at the time they were added to our repository so they are considered safe.

You can access them from this page. Generally they are installed by downloading the plugin’s directory from the page above and copying it under koreader/plugins folder on your device. But please check the plugin’s page for other possible instructions.

External

These are plugins that are developed independently from the KOReader team.

  • They have to be installed manually and then activated from the plugins menu.
  • They should be updated manually.
  • They are NOT checked by our developers so be aware that there might be risks using them.

Some notable examples of these external plugins with links to their GitHub pages:

  • AI plugins that allow you to use cloud or local models to interact with the text you are reading:
    1. KOAssistant plugin: A very powerful and customizable AI plugin. You can translate/explain text, compare books/articles etc. by creating custom actions with additional contexts and instructions. Supports local models running on your computer via Ollama compatibility. Very detailed instructions are in the linked GitHub page of the plugin.
    2. Assistant: AI Helper plugin: You can use this plugin to simplify, explain, discuss or translate text to other languages. Supports multiple AI providers and built-in/custom prompts.
  • Anki plugin: KOReader plugin enabling Anki (an open-source flashcard software) card generations for words looked up in the internal dictionary.
  • Zotero plugin: This addon allows you to browse your Zotero (an open-source reference management software) collections from KOReader.
  • Syncthing plugin: This addon allows you to run Syncthing peer-to-peer file synchronization program on KOReader (tested only on Kobo devices but might work on other devices according to the author). This makes it possible to sync files between your e-reader and computer/phone automatically.
Finding more plugins

We need to repeat that these external plugins are not a part of the KOReader project. So be careful when installing and using them.

You can find more plugins on Github with these links:

  • This link opens search results for KOReader plugin projects.
  • This page shows a list of repos with the koreaderplugin tag.

With the AI coding, number of KOReader plugin projects increased considerably, so it became much harder to decide which plugin to use. These curated lists of KOReader resources come handy when finding useful plugins:

12.2 List of Internal Plugins

Auto frontlight - Automatically toggles the frontlight according to ambient light level (Only available on Kindle Voyage and Oasis)

Auto warmth and night mode - Allows you to adjust frontlight warmth in devices with natural (yellow/orange) light and set Night Mode automatically according to a schedule

Auto power save - Puts the device into standby, suspend or power off after specified periods of inactivity

Autosuspend - Suspend device after chosen period of inactivity (available on all e-ink devices except android os)

Autoturn - Automatically turns the page after a set period of time

Battery statistics - Collects and displays battery usage statistics of your device (only available on some devices)

Book shortcuts - Allows adding a book shortcut to a gesture

Calibre - You can send documents from your Calibre library directly to your KOReader devices via WiFi connection. Check our wiki page for how-to.

Cover browser - Allows cover display modes for file browser and history

Cover image - Saves the cover image of the current book as a file (available on Android/PocketBook/reMarkable devices)

Export highlights - Exports highlights and notes to local files or online services

Gestures - Provide gesture support for KOReader

HTTP Inspector - Allows you to control your device from another device over wifi - See below for more info

Japanese support - Japanese language support for KOReader that extends built-in dictionary and selection system

Keep alive - Keeps the device awake to prevent automatic WiFi disconnects

Move to archive - Moves current document to archive folder

News Downloader - Retrieves RSS and Atom news entries and saves them as HTML files. Check our wiki page for how-to. (only available on some devices)

OPDS - Allows you to download books from online catalogs

Perception expander - Helps with using your peripheral vision to read faster. Explained in this section of the guide: Plugins for Faster Reading

Profiles - Allows combining multiple settings to make switchable profiles

Progress sync - Synchronize your reading progress across different KOReader devices. Check our wiki page for how-to.

QR from clipboard - Generates a QR code from clipboard content

Read timer - A countdown timer to display a message after a user defined time

Reading statistics - Calculates reading sessions statistics and reading speed for use in chapter/book remaining time estimations

SSH - Allows access to your device over SSH protocol. You can access via FTP applications or even your file manager if it supports. Check our wiki page for how-to.

System statistics - You can see your CPU/RAM/BATTERY info via this plugin under:

Terminal emulator - Starts a shell (command prompt) on your device that can run full terminal apps

Text editor - A basic text editor to create and edit plain text files

Time sync - Synchronizes the device time with NTP servers

Tweak document settings - Allows tweaking settings of a document before it is loaded based on external factors (only available on some devices)

Wallabag - Downloads the latest articles from a Wallabag server as individual EPUB files. Check our wiki page for more info.

Controlling your reader from another device - HTTP Inspector Plugin

This plugin allows you to control your device from another device over wifi. It works by running a simple HTTP server on your device which serves a page containing KOReader controls. You can access this page over your network and control your reader device. You can read an example use case for this plugin on the MobileRead forum.

But be aware of these points when using this plugin:

  • This is an experimental plugin so use this at your own risk
  • This plugin is enabled by default, but the server is NOT started by default. You can start it manually or set it to auto start.
  • You should run this plugin only on trusted networks, as it is highly insecure (no HTTPS, no access restriction, no authentication)

To see what you can control remotely using the HTTP Inspector plugin:

  1. Start HTTP Inspector server on your device:
  2. Open this page http://your-ereader-IP:8080/koreader/event on a device that is connected to the same network as your e-reader

Your list will populate depending on the installed plugins and user patches.

Kompanion - KOReader Companion App

This is an Android application that allows you to control your KOReader from an Android OS device on the same network. It uses the KOReader HTTP Inspector plugin to communicate with KOReader. You can remotely perform many actions like turning pages, entering text, adjusting screen light, activating profiles.

You can see the instructions and download the app from its project page: KOReader Companion App

12.3 User Patches

User patches are small files written in Lua language. They can change the functionality of KOReader without modifying your installation permanently. They can be written by developers, other users or you can write one yourself (if you have the necessary extensive knowledge about the KOReader internals).

You can find a current list of User patches in our wiki and in the GitHub issues list marked with the User patch available tag. You can see them by following this link.

Basic usage – Adding an already written patch to your KOReader:
  1. Create a directory named patches under koreader directory on your device (On Android this folder is located on the SD-card)
  2. Download and put the patch file with .lua extension in this patches directory
  3. Restart KOReader
Patch manager

When you create a patches directory as instructed, a new plugin named Patch Management becomes available in the plugins menu after restarting KOReader. With this plugin you can see the list and status of your user patches and enable/disable them. You can tap About patch manager menu item to see more info.

Naming the patch

Execution order of a patch is determined by the first digit of the number in the patch name. For example: 2-TOC-title-patch.lua If there are several patches starting with the same digit, the execution order is the natural order (1<10<11<12<13<…<109<…<10010). If you are just downloading an already made patch you don’t need to change the file name.

Names starting with:

  • 0 - Executed very early and only once after an update
  • 1 - Excuted very early on every start of KOReader (but after 0 if applicable)
  • 2 - Executed after UIManager is ready on every start of KOReader
  • 3-7 - Reserved
  • 8 - Executed before exit and before settings get saved
  • 9 - Executed right before exit

If you have a problem with a user patch, you can revert to your previous configuration by removing the patch file.

Deepwiki is an AI powered service which creates architectural overviews and flow diagrams from GitHub repositories. You can access the created documentation for KOReader here. Please note that, this documentation is not created by KOReader developers, but our devs rate it as useful. This can be a good starting point for understanding how KOReader's code is organized, if you want to contribute to the project.
13 READING IMPROVEMENTS

In this section we will first explain two KOreader plugins that might improve your reading speed. Then we will list some fonts that can improve your reading speed and comprehension.

13.1 Plugins for Faster Reading
1. Perception Expander plugin

When you enable, this plugin adds two vertical lines to the reading area, near the left and right edges as you can see in the image below. These lines serve as the start/end markers for your eyes, when reading a line from your book. Working principle of this plugin is based on the fact that, you don't really need to look at the first and last words of a line directly, because with some practice you can perceive them with your peripheral vision.

  • Vertical gray lines: Perception expander indicators
  • Red line: Your eyes following the text normally
  • Blue line: Your eyes jumping between the indicators (shorter distance)

To use this plugin, you have to first enable it by going to:

After enabling the plugin, you will have a new menu item here:

You can toggle the expander lines from this menu and also configure the indicators according to your liking and peripheral vision skill level. You can watch the Tim Ferriss video that inspired this plugin here.

2. FastReader Plugin

This plugin is a RSVP (Rapid Serial Visual Presentation) reader. This technique is based on flashing the word(s) at the center of the screen quickly. Your eyes don't need to move when reading like this so the reading speed can be faster. And if you improve the skill, you can perceive more than one word at once, which further increases the reading speed.

To use this plugin, you have to first enable it by going to:

After enabling the plugin, you will have a new menu item here:

You can start the plugin from this menu and also configure the settings like:

  • RSVP speed - Flashing speed in WPM (words per minute)
  • Preview words - How many words to show at once

You can start using the plugin in single word and low WPM (slower) mode and increase them as you get better.

13.2 Special Fonts

In this section we will show you some fonts that might improve your reading experience. These fonts are not an exclusive feature of KOReader, but we are including them here because sometimes our users ask about them in our issues and discussions.

You can install these fonts like any other font. If you don't know how to add fonts to your device, we explain it in Using Your Own Fonts section.

Overview of fonts in this section (note that all the fonts in this image have the same size - 11 pt - but very different widths, line heights and readability):

Atkinson Hyperlegible

Designed by Braille Institute, this font family aims to improve legibility and readability for individuals with low vision. It has clear, highly distinctive letters and numbers. You can see the font and download it from here


B612

B612 is a highly legible font family, designed to be used on Airbus aircraft cockpit screens. Its legible design makes it particularly suitable for degraded contexts and aims reducing visual fatigue and cognitive load. These design principles makes it a suitable font for e-readers too. You can see the font and download it from Google Fonts


Lexend

This font's design is based on the principles derived from educational studies that aim to improve reading performance of students. You can read about the font here and download it from Google Fonts


Luciole

This font adheres to a dozen specific design criteria to provide the best possible reading experience for the visually impaired. It emphasizes the "inner" space of letters and has extremely clear, distinct numbers and mathematical symbols. You can see the font and download it from here


Open Dyslexic

This font is designed to increase readability for readers with dyslexia. Letters have heavy weighted bottoms to emphasize direction. The unique shapes of each letter can prevent confusion through flipping and swapping. You can download it from here


Shantell Sans

This font is designed by a dyslexic author as a legible, accessible, and easy to read typeface. It also works nicely for small text thanks to its wider letters and relaxed spacing. You can download it from Google Fonts


Fast Font

This is a special font that substitutes the first few letters of a word with their bold variant (number of letters is calculated according to the word length). This bold letters then act as artificial fixation points for the eye to jump on as you can see in this sentence. In theory this might increase the reading speed but of course personal results may vary. Interestingly, readers with ADHD generally report benefits.

This font depends on special OpenType features which are supported by KOReader. So you can just download the font, copy it to your device and use it like any other font. You can see the examples and download this font and its variations (serif, monospace and dotted) from its GitHub repo

14 TIPS
14.1 Reading Tips
Switching between documents quickly

If you need to switch between two documents (when comparing them for example), there is a quicker way than going through the File Browser. KOReader can open the last document with a gesture ( multiswipe). If you define a gesture’s action as Open previous document, you can switch between two documents quickly similar to the Alt+Tab feature on the desktop computers. You can find this feature under:

Also you can use the History dialog to switch between documents quickly. The history screen can be opened with the  multiswipe gesture. You can also define any other gesture for this of course.

See line/word count of a page

If you want to know how many lines or words are being shown on the current page you can see it at:

Changing book cover

You can change your book cover from this menu:

Creating a sleep screen wallpaper from documents

Some books don’t come with proper book covers. Or they may have their cover on the second page so it doesn’t show up properly. Or maybe the cover is not suitable for e-ink (too light or dark). Or you prefer to set some image from the book as cover.

In situations like this you can quickly take a screenshot and set it as the current book’s cover. There are two screenshot gestures depending on where you are:

  1. The default screenshot gesture long-diagonal swipe if you are in reader mode and file browser
  2. The alternative screenshot gesture two-finger large diagonal tap on corners if you are in the image viewer

In image viewer, you can zoom and pan the image before taking the screenshot, so it will be cropped to exact size and aspect ratio of your device without stretching.

After taking your screenshot you can select Set as book cover from the dialog.

You can remove the custom book cover from this menu:

On the book information page, long-press on the Cover image item and then select Reset custom.

You can also reset the book cover with the Reset dialog, which you can access by long-pressing the filename in the File Browser.

Be very careful when using this Reset dialog and be sure that only Custom cover image item is checked otherwise you can reset everything related to your book accidentally.

If your document has links and you are accidentally tapping them while turning the page or using other gestures, you can turn off Following links by tapping via this menu item:

After disabling this setting, to follow a link you have to long-tap on it and select Follow link from the popup menu. If you have the opposite problem and you want to make tapping links easier, you can enable Allow larger tap area around links from the same menu.

Reading statistics after midnight

In reading statistics you can change the start of day used for calculations. This is useful if you are reading after midnight for example and want your reading session counted as today instead of the next day. This applies only to the Day timeline view and optionally to the Calendar view; it does not apply to any of the other statistics reports. You can set this time at:

Reading vertically formatted books

Currently official KOReader doesn't support rendering books formatted as vertical text (tategaki - 縦書き) but one of our users has created a fork that can do this. It is basically a clone of KOReader with added vertical text rendering.

Japanese vertical writing is the main target of this fork. But since the implementation supports EPUB writing-mode: vertical-rl at the rendering engine level, it may also work for other vertical writing languages. It can at least render Chinese too, according to the feedback from Chinese users.

Be aware that this is a fork (not a plugin or a user patch), so it completely replaces your KOReader. But ordinary horizontal books behave much like they do in the official KOReader, so this replacement should be functionally equivalent.

You can switch to this fork without first uninstalling your current KOReader. Just follow the instructions in the fork's repo. Development discussion on our repo is here.

If you switch to this fork, please use the fork's repo for vertical text related questions/issues, instead of the official KOReader repo.

14.2 Device Tips
Updating KOReader

KOReader can update itself over Wi-Fi. You can trigger the check via this menu item:

Adding a password lock

We don't have a direct option for this in KOReader. But there is a workaround to achieve this kind of lock screen functionality. You can set up KOReader to keep the sleep screen on the screen until you enter a chosen gesture. To achieve this:

  1. Choose any gesture (including the complex ones with custom multiswipes) and make it your "unlock" gesture by going to:
  2. And then enable this option:
Controlling KOReader from another device

By using an open source Android application, you can control your KOReader from an Android OS device that is on the same network. It uses the KOReader HTTP Inspector plugin to communicate with KOReader. You can remotely perform many actions like turning pages, entering text, adjusting screen light, activating profiles.

You can see the instructions and download the app from its project page: KOReader Page Turner Companion

Automatic screen dimming

KOReader can dim your frontlight to preserve battery if your device is idle for a while. You can turn on and adjust this feature via:

Optimizing battery health

Li-ion batteries experience more degradation at the extreme ends of their charge levels. To minimize this degradation and extend your battery life, you can limit your minimum discharge level to 20% and maximum charge level to 80% (as in electric vehicles and some newer phones). Which means you start charging your device when the battery goes down to 20% and unplug when it reaches 80% (or 30%-70% if you are extra cautious).

KOReader can warn you by showing an alert when charge level reaches your defined limits:

Checking battery consumption details

You can see your detailed battery usage statistics via this menu item:

Checking detailed device statistics

You can see your system information like CPU/DISK SPACE/RAM usage via this menu item:

Keeping an eye on memory usage

In older Kindle devices some of our users reported crashes due to limited memory. KOReader memory usage can go up if you open many files in one session. Especially PDF’s increase this amount. You can add a memory indicator to your STATUS BAR and restart KOReader if this value gets high, to avoid crashes or reboots.

Also you can configure KOReader to restart automatically if memory usage reaches a threshold via:

15 TROUBLESHOOTING

If you can't find a solution to your problem in this guide, you can open an issue about it on the project's GitHub page or make a post in the KOReader section of the Mobileread forum. Please see the REACH US section of this guide for details.

Battery drain problems

KOReader uses battery very efficiently. So if your e-reader device's battery started draining abnormally when using KOReader, generally first suspect is the battery degradation.

But if you are sure that your battery is healthy and drain happens only in KOReader, cause might be:

  • A problematic firmware update
  • A third-party plugin
  • A user patch

These are the steps to follow if you have a drain problem:

  1. Update your device to the latest firmware version. If there are no firmware updates for your device, skip to the next step.
  2. If updating your firmware doesn't solve the drain problem, remove all of the third party plugins and user patches that you have installed and restart KOReader.
  3. If the drain problem continues after the first two steps, the last option is factory resetting your device and reinstalling KOReader (don't forget to backup your main library folder).

If your problem continues, you can open an issue on our GitHub page.

My book is slow

Please see the Optimizing Documents section of the guide for tips and solutions if a specific file is slow.

If all of your books are slow, your problem might be device related:

  • Very slow CPU or low RAM.
  • Your flash memory (where your books reside) might be degrading, which is generally due to the old age of the device.
  • You might be running out of storage space.
  • If you are using an Android based device, your Android OS might be interfering with the operation of KOReader or some background processes might be using your system resources.

Opening an issue:

If you are opening an issue about this problem, it is important for us to inspect the problematic file. You can share the file directly by dragging and dropping it on your GitHub message after compressing it as a ZIP file. If your book is an EPUB and you don’t want to share the file due to copyright or privacy issues, there is a plugin for Calibre named ScrambleEbook which you can access the download and instructions from this Mobileread forum page.

This plugin will read an un-DRM'd ebook file (EPUB/KEPUB/AZW3) and create a copy of the book with its text replaced with random characters. You can share this scrambled version with us in your issue thread. Text of the book will not be readable and there won’t be any copyright violation but we can still use this file for diagnostic purposes.

You can see this procedure in a real issue involving a very problematic EPUB file here.

Ghosting when turning pages

Even if KOReader is set to full refresh after every page, you may still see some ghosting/residue after turning pages. This is a limitation of e-ink screen technology and can be observed on the latest generation devices, especially while reading mixed content (text+images) documents. As a workaround, you can refresh one more time manually after turning the page to get rid of these artifacts if they bother you (short diagonal swipe gesture by default).

Ghosting on sleep screen

In some cases (depending on many factors like book contents, lightness of sleep screen image and reader model) you can see some ghosting/residue on your sleep screen despite the refresh before sleep. You can get rid of this by increasing the number of refreshes from here:

Progress Sync problems

This might be caused by the Write highlights into PDF feature of KOReader if you enabled it. Saving PDF highlights will change your file so your synchronization will fail. If you are planning to use both features, in the Progress Sync plugin's settings, change the Document matching method to Filename instead of the default Binary matching:

Sleep cover problems

Sleep covers generally use a magnet embedded in the cover which enables wake up and sleep events via triggering a sensor in your device. This sensor can sometimes be mentioned as a Hall sensor or Hall effect sensor. In some cases like misaligned or weak magnets, this triggering can be problematic. If you are having problems with your device waking up because of your cover, you can disable this feature via this menu:

Taps are recognized as long/double tap

This can happen in cases like shaking hands or device touch screen problems. If you have this problem, you can try to increase the Tap interval. By increasing this interval, you tell KOReader to ignore quick taps at the same location.

If your two consecutive taps are separated by a distance, this would not apply. So you can still quickly browse pages by tapping quickly alternatively with two fingers.

KOReader can't write to the SD card

In Android devices KOReader can’t write to the external storage due to Android system restrictions. If you want to change your screenshot saving location, be careful to choose your device’s internal storage.

Backup your KOReader settings

In rare cases that you want to backup and restore your KOReader with all your settings, you can backup these folders and files under the KOReader installation directory. Then you can overwrite them after a clean installation to restore your settings:

Folders:
  • settings
  • styletweaks
Files:
  • data/cr3.ini
  • defaults.persistent.lua
  • history.lua
  • settings.reader.lua
  • settings/profiles.lua
  • Files under data/dict/ and /data/tessdata/ directories (if they exist)
Your individual book settings and highlights are kept in the same directory as your books in a folder with the same name as your book. You can backup these folders separately if you wish.
Resetting KOReader on Android devices

On Android OS devices, KOReader keeps its settings under the Internal Storage/koreader/ directory. This is an intentional behavior which is different from other Android applications. This location allows you to backup and synchronize your KOReader settings easily by saving them under this user-accessible directory.

But when you uninstall KOReader or clear its data from the Android OS Settings menu, this KOReader settings directory is not removed. So if you uninstall KOReader and then install it again, it will start with your old settings.

If you want to completely reset KOReader to its factory defaults, you should delete this directory manually. When you start KOReader after deleting this directory, it will be automatically re-created with the default settings.

Disabling ads on Amazon Kindle devices

This is technically possible, but unfortunately we can't change the default sleep screen behavior on these readers. Because this might trigger a negative reaction from Amazon, which might lock down the Kindle ecosystem (no more KOReader for Kindles) or even endanger the whole project (no more KOReader). For further info, you can check this discussion with our developers here. Our stance is in line with the MobileRead forums' stance which you can read here.

Small numbers on the side when reading

Those small numbers are called publisher page numbers. In short, they are the real page numbers from the printed version of your book. For more information please click here Page Numbering to go to the relevant section.

My status bar disappeared

Probably you tapped on the STATUS BAR touch zone at the bottom of the screen. You can bring it back by tapping the same zone.

Text indentation problems

If you get miscentered titles, headings or separators, or unexpected text indentation, try switching the style for your document. epub.css to html5.css. This kind of problems happen because some publishers assume their books will only be read on web browser engine based readers, so they don't bother "resetting" the styles.

  • Default HTML/EPUB (epub.css) is our book-oriented stylesheet, with text-align: justify, text-indent on P. It is better for unstyled books, and might make styled books more readable.
  • You can try switching to HTML5 (html5.css) if your book has indentation problems as mentioned above. This style provides a base stylesheet like web browsers do when rendering: text-align: left, no text-indent on P, spacing between P. But it doesn’t look pretty when publishers haven’t done any styling.
Clearing book cover cache database

KOReader keeps a cache of your book covers to be able to show them quicker. In normal conditions this cache doesn’t get too big. If you remove lots of books or rename directories, you may want to clean up your book cover cache database to reclaim some space. You can do it from this menu:

Clearing file cache

When you are reading a PDF/DJVU document, KOReader keeps a cache of the last page you have read. So when you reopen the book, it will be faster. But this cache can grow big if you are using KOReader for a long time and reading many PDF/DJVU documents. These cache files are kept under your KOReader installation directory under the cache folder. To clear this cache and reclaim the space you can go to:

Clear this cache only if you really need this space. If you have enough space, clearing the cache will not provide any benefit. Instead, it will degrade the performance because your reader will have to render those pages again.
What is a Nightly Version?

KOReader has two different versions:

  • STABLE This version is the main one that you can find on the Releases page of the project GitHub. It is named like this: "KOReader 2024.11" which means this specific version is released on November 2024. This is generally a monthly release, but sometimes can take longer.
  • NIGHTLY These versions are the daily compiled versions of KOReader with optimizations and fixes continuously added. Nightly releases are intended for a narrow group of testers and developers, so they might be less stable.

Normally if you are an average user, stable version is the one you should use. But in some specific cases you might need to use a nightly version:

  • Your device is very new (a recently released Kobo model for example) and KOReader support has just been added in a recent nightly.
  • There is a bug or problem specific to your device that is fixed already but not released yet. And you don't want to wait for the stable version to have this fix.
  • After updating KOReader, you notice that a feature which you were using is removed. You don't want to lose this feature, so you can install a nightly version that still has this feature. Of course you can also go back to the previous stable release but nightly would be newer so might have more features and fixes.

This section was just a general introduction to the topic. For detailed information and asking for help about nightly versions, you can visit the discussion page: FAQ: How to track latest nightly builds

If you are using KOReader on an Android device, you can use the Work Profile feature of the Android OS to test the Nightly versions without affecting your main KOReader installation. Open source applications like Shelter and Island can help you with this.
REACH US

KOReader uses GitHub as its project base. You can report problems or suggestions on our GitHub page. You just need a GitHub account which is free. Click this link to open our GitHub Issues page.

On the Issues page click the New Issue button. But before doing that, we suggest using the search bar to see if there is already an existing issue about the same topic. You can also check other opened issues to have an idea about the process.

When you click the New Issue button you will be presented with two options:

Click the appropriate one and follow the instructions on the page to report your problem or suggestion.

If you are reporting a bug, verbose debug logs are very helpful to determine the problem. You can enable them via:

You can also find the version number of your KOReader and your device type from the same dialog for reporting.

If you have a suggestion or question related to this User Guide you can write to the GitHub discussion thread

You can also . . .

Find other KOReader users on MobileRead forums

Reach us at Gitter chat

Support the project via Liberapay