User patches - koreader/koreader GitHub Wiki
Overview
It is possible to add or change some provided features in KOReader by user patches (introduced in https://github.com/koreader/koreader/pull/9104).
For implementing or applying such patches only limited support might be given by the KOReader developers.
Installation
It is necessary to create a subfolder named patches in the koreader folder. (On Android this folder is located on the SD-card.)
The patch can than be put into a file in koreader\patches. The content of the file has to be Lua code and the extension of the file as to be .lua
The name of a patch has to start witch a number followed by a minus (1234-name-of-the-patch.lua).
The execution time of a patch is determined by the first digit of the number in the patch name. If there are several patches starting with the same digit, the execution order is the natural order (1<10<11<12<13<...<109<...<10010).
Names starting with:
0are executed very early and only once after an update,1are executed very early on every start of KOReader (but after0if applicable),2are executed after UIManager is ready on every start of KOReader,3-7reserved8are executed before exit and before settings get saved,9are executed right before exit.
Known limitations
- On Android user patches don't work in the FDroid version of KOReader. The package id for such version is
org.koreader.launcher.fdroidand it is installed either from FDroid application or using the apk file available at the mentioned page. You have to manually install the release version that has the package idorg.koreader.launcher
View issues to see recent patches not yet on the Notable patches list
Notable patches
Device independent
- 2-cre-rotate-japanese-book.lua: Formats books vertically for Japanese, Chinese etc. The fonts are not rotated -- you need to rotate the font itself. This is usually done with fontforge. One script that can do it is tategakifont. This solution is hacky and user edits to the patch are recommended. #11469
- 2-custom-sort.lua: An example of what you can do with custom file sorting algorithms.
- 2-dict-auto-copy-current-definition.lua: Possibility to share and/or copy into the clipboard dictionary definitions. #9336
- 2-infomessage-opening-filemanager.lua Show InfoMessage while opening the filemanager #12281
- 2-limit-crashlog-size.lua: Limits the size of the
crash.logfile (if available on the platform), can be of interest when verbose debugging is enabled. - 2-movable-not-movable.lua: Disable floating window movement? #9646
- 2-no-jump-in-flipping-mode.lua: Is it possbile to disable touch (navigate) property of the progress bar? #9277
- 2-no-keyboard-shortcuts.lua: Disable keyboard shortcuts on devices with keyboard (like the emulator). #10177
- 2-overlap_arrow_32.lua: How can I modify arrow of page overlap function? #9181
- 2-TOC-title-patch.lua: adds a button in the table of contents to toggle between the book name and
Table of contents. The selection is book specific, this was the origin of developing user-patches (thanks to @poire-z). - 2-touchmenu-update-clock.lua: Enable updating clock and battery state in the touchmenu every minute.
- 2-translator-http-override.lua: Translation has not been available in China since about one day ago #9574
- 2-sleep-overlay.lua: combines your transparent image with the current wallpaper image ( book cover, etc) to use as the wallpaper
- 2-exclude-books-from-wallpaper-cover-mode.lua: to set custom screensaver for only specific books
- 2-book-receipt-shortcut-and-lockscreen.lua: Displays reading progress in a visual "receipt" format showing book/chapter progress, estimated time remaining, and book cover.
Device specific
Kobo
- 2-disable-hw-invert.lua: disables hardware inversion for nightmode, in case it's unreliable on your device (generally, really old devices).
- 2-toggle-usbnet.lua: adds an entry in the
Networkmenu to toggle usbnet.