Skip to content

Installation on desktop Linux

lan Nomar edited this page Jun 10, 2025 · 13 revisions

Installation on regular Linux distributions

KOReader releases binaries for Debian and universal packages in the form of AppImage and Flatpak.

Debian based distros

Packages for Debian and derived distros (such as Ubuntu, Linux Mint, Pop OS...) can be obtained by heading to the Releases page and finding the appropriate .deb for your architecture.

  • From the Releases page, find the latest released version.
  • Under the Assets section for the release, find the .deb package for your architecture. It will look something like koreader-2023.08-amd64.deb.
  • If you are in doubt about your computers architecture, choose amd64.

After downloading the .deb file, it can be installed either via a graphical application provided by your distro, or from the command line:

sudo apt install ./koreader-2023.08-amd64.deb

If you run into trouble with paths, try running from the library directory, Here is a wrapper.

d=/usr/lib/koreader
test -d /usr/local/lib/koreader && d=/usr/local/lib/koreader
cd "$d"
export LUA_PATH='?.lua;?/init.lua'
export LUA_CPATH='?.so'
exec koreader $@

Flatpak

Flatpak versions of KOReader are available on Flathub.

AppImage

Installation

Download the AppImage and make it executable with chmod +x koreader*.AppImage Execute it with ./koreader*.AppImage

What is an AppImage?

Simply put, it's a portable app for Linux, which has been a long-standing request (#1417). After you download the file, you'll first need to allow it to run as a program. You can do so by right clicking in your file manager, choosing PropertiesPermissions and checking the box that reads Allow this file to run as a program or something equivalent. If you prefer to use the terminal, run chmod +x koreader-appimage-x86_64-linux-gnu-v2015.11-1644-ge39ed90_2018-04-09.AppImage.

The AppImage is a release version of what we KOReader developers call “the emulator.” It has existed since all the way back in 2011 to ease the development process. You can drag and drop a file onto the window to open it, there's a titlebar that indicates the currently opened file, and a basic albeit imperfect form of window resizing.

Because the AppImage is built on top of the emulator, you can set default window sizes and DPI through the command line. EMULATE_READER_W=2000 EMULATE_READER_H=1500 EMULATE_READER_DPI=180 ./koreader-appimage-x86_64-linux-gnu-v2015.11-1644-ge39ed90_2018-04-09.AppImage. You could also try out other debugging aids such as EMULATE_READER_FLASH=100. There's also another more practical use besides just reading documents: you could use the AppImage to verify whether a bug is specific to your device or if it's inherent in the program.

Third-party packages

Unsupported packages are available for Arch through the AUR and through the Nix package manager.

If you want to package KOReader for any other distro the easiest way is to build a package from upstream linux binaries (for glibc based distributions) or build koreader from source (required for musl distros!) using kodev linux target

Please don't replace binaries, libraries or any asset (ie: fonts) with the ones provided by your distribution.

Reading controls

Interaction with the KOReader GUI can be entirely handled using a mouse, and the function is the same as that of touch-native platforms. Additionally, KOReader implements keyboard shortcuts for navigating through pages of books, menu options, etc.

The desktop version of KOReader also implements game controller support (#3819). The control scheme is depicted below, and you can use it in the AppImage. It's currently equivalent to the functionality offered by the Kindle 4NT. It might sound slightly odd, but it's rather nice to just lean back with a gamepad while having some document on your screen.

Gamepad button Action
1 Left stick & d-pad Arrow keys (menu navigation)
2 Right stick Page up & down
3 A button Press/enter (also opens bottom reader menu)
4 B button Escape/back
5 Left bumper Page up
6 Right button Page down
Start/Menu button (not shown) Open menu

Usage

Basic reading controls (click to open)
Advanced reading controls (click to open)
Clone this wiki locally