The One with the Thoughts of Frans

AliExpress seller ships from Porselein

I accidentally ended up on the Dutch “translation” of AliExpress. The machine responsible did the best it could, I suppose…

The “Dutch” translation.

The presumably not machine-translated English version (at least for the AliExpress UI elements).

CommentsTags: ,

KOReader 2019.09 “I Scream For Ice Cream”

As one of the maintainers of KOReader, a versatile a document and image viewer, I’m proud to announce the latest release.


I was never a big fan of the Android code names. They didn’t have that Ubuntu flair, and I always struggled to couple them to version numbers. But learning that the next version will simply be called 10? It seems to be illustrative of losing a certain kind of fun. In response, I scream for ice cream!

There’s been a fair bit of work on documentation and internationalization. The GitHub landing page was made more welcoming to make it easier to find the information you need, with developer-oriented information moved into a separate file (#5217), while the translation code was updated to allow for proper pluralization in languages like Polish and Russian (#5257). Furthermore, the release package filename has been simplified to exclude excessive compiler information (#5268). This should make it easier to find the package you need.

2019.08 2019.09
koreader-android-arm-linux-androideabi-v2019.08.apk koreader-android-arm-v2019.09.apk
koreader-android-i686-linux-android-v2019.08.apk koreader-android-x86-v2019.09.apk

For Android, we’ve changed our resource bundle from lzma to zip (#5264). Unfortunately, this would make the package size slightly larger and the first time start ever so slightly slower, but we were able to drop the Noto fonts from our package (#5310). On Android these already come with the system. It’s all for a good purpose, because the switch from lzma to zip resolves unexplained first-startup crashes on some systems, improving reliability.

You can now select your keyboard layout independently from your language, because display language and keyboard layout shouldn’t be tied together. (#5318). On Kobo there’s a new crash screen that displays the last few lines of the log (#5328), which looks so neat you’ll want to crash! But hopefully you’ll never see it. 😉

Of course the usual performance improvements and bug fixes are also present. See the full changelog for details, but various CSS parsing optimizations (#5239) can be quite noticeable on affected documents. The gesture manager received some further polish (#5202, #5225, #5294). For the curious who’ve been using MuPDF to read FB2 or EPUB, it’s now finally possible to change the font size without crutches (#5282). Be warned, however, that it’s no less experimental. The document will have to be reloaded to update the total number of pages after font size changes, and bookmarks and highlights will not be in the right location.

Last but not least, accessibility is an often overlooked aspect of design. On a touch screen device without physical buttons the hardware doesn’t exactly contribute to ease of use. Hopefully the new automatic page turner plugin (#5295) will enable more people to enjoy reading. Please let us know about any suggestions you have or resources we can use to do better!

PS Remember, if you don’t use a plugin you can disable it in the plugin manager for a slightly faster startup and a cleaner menu. That’s in Tools (screwdriver & wrench) → Plugin management, which might be on page 2.

Image credit: “Cute Anthropomorphic Ice Cream Cone” from openclipart.

We’d like to thank all contributors for their efforts. Some highlights since the previous release include:

Full changelogclosed milestone issues

CommentsTags: , ,

KOReader 2019.08 “Starling”

As one of the maintainers of KOReader, a versatile a document and image viewer, I’m proud to announce the latest release.


Enhanced EPUB rendering can now be enabled on demand (#5117). In the relevant jargon this means correct margin collapsing, honoring negative margins and more properly floating images. In regular people speech, it just means paragraph margins and images will sometimes look slightly better. Other nice improvements include viewing unsupported files in the file manager (#5129) and the ability to restart right from the update dialog (#5150).

A few new edge swipe gestures were added to the gesture manager (#5183), as well as spread/pinch configuration and font increase/decrease actions (#5188). On Android volume keys can now be ignored or used to turn pages (#5158). New contributor @sladflob added configurable sleep messages (#5121), and new contributor @lucarota fixed up some issues in the zsync plugin (#5184, #5185).

Image credit: public domain from Yale Center for British Art. “A Starling” by Isaac Spackman.

We’d like to thank all contributors for their efforts. Some highlights since the previous release include:

  • cre: toggable enhanced rendering (floats, collapsed margins…) (#5117, #5180) @poire-z
  • [feat] Add percentage read (and other book information) to sleep message (#5121) @sladflob
  • Auto-detect the touchscreen input device on the PW4 (#5113) @NiLuJe
  • TOC: baseline align chapter name and page number, adds some style tweaks (#5127) @poire-z
  • Fix Kindle model detection in some corner-cases (#5125) @NiLuJe
  • [feat] File manager – add option to view unsupported files (#5129) @robert00s
  • Cloudstorage – Add option to view unsupported files (#5131) @robert00s
  • Fix: Status bar hides text with minimal bottom margin (#5135) @robert00s
  • [feat] Make gesture intervals configurable (#5138) @robert00s
  • android: add support for different screen timeout setups (#5142) @pazos
  • [UX] Set font size for menu items (#5146) @robert00s
  • [feat] Wallabag: customizable articles count per sync (#5147) @michivi
  • [feat] plugins/Wallabag: archiving instead of deleting articles (#5148) @michivi
  • [sdl] Add support arrow key for next/prev page (#5149) @robert00s
  • [UX] Offer to restart KOReader after update (#5150) @robert00s
  • On (really old) Kindles, don’t crash if there’s no sysfs entry to read for battery capacity (#5161) @NiLuJe
  • android: add an option to ignore volume keys or use them to turn pages (#5158) @pazos
  • Add vertical edge gesture (#5156) @robert00s
  • Go Big or Go Home! (#5163) @NiLuJe — adds sensible defaults for the top-left home button
  • [lang] Rename ‘Scroll Mode’ to ‘Continuous’ (#5169) @Frenzie
  • Android: ignore touchscreen by user request (using a hardware key) (#5164) @Frenzie
  • fix “empty folder” when accessing nextcloud webdav (#5171) @jp8
  • Add gesture – show current book statistics (#5167) @robert00s
  • Fix: set custom screen DPI (#5165) @robert00s
  • [UX] Extend the touch zone for up button in touch menu (#5175) @robert00s
  • [fix] Add to SDL2 ffiLoadCandidates (#5176) @Frenzie
  • Fix: hold bottom left corner doesn’t work properly (#5177) @robert00s
  • Dict lookups: have them always interruptible (#5173) @poire-z
  • crengine: CSS attribute selectors and pseudoclasses fixes (#5178) @poire-z
  • docs: fix typo (#5134) @Jason-Cooke
  • [UX] Add horizontal edge gestures (#5179, #5181) @robert00s
  • Change default zoom mode & add warning message for fit page + scroll (#5170) @Frenzie
  • [UX] Add double finger up and down swipe gesture (#5183) @robert00s
  • minor: translate some menu text and error message (#5185) @lucarota
  • Fix: Zsync -> Subscribe to book share crashes (#5184) @lucarota
  • [fix] MuPDF: backport fix for upstream 698877 (#5187) @Frenzie
  • [UX] Add spread/pinch & font increase/decrease to gesture manager (#5188, #5189 ) @robert00s
  • [UX] Update for the greek popups (#5193) @noembryo

Full changelogclosed milestone issues

CommentsTags: , ,

KOReader 2019.04

As one of the maintainers of KOReader, a versatile a document and image viewer, I’m proud to announce the latest release.


March mainly brought various under the hood improvements like faster blitting and better line-height handling, but also a more visible dual pages display toggle. On supported platforms, most two-finger swipes are now also configurable in the gesture manager.

Flower illustration credit: Almeidah.

We’d like to thank all contributors for their efforts. Some highlights since the previous release include:

  • [feat] PocketBook: implement Wi-Fi connection toggling (#4775) @tob1az
  • [UX] Gesture manager: add action – show book information (#4777) @Frenzie
  • Slightly prettier virtual keyboard (#4776) @NiLuJe
  • Enable addNote button, by letting it edit highlight (#4773)
  • Fix fb rotation on the Forma w/ KSM (#4779) @NiLuJe
  • cre landscape view: adds 1 page / 2 pages toggable (#4782) @poire-z
  • [UX] Gesture manager: add action – cycle default highlight action (#4791) @Galunid
  • Gesture manager: add actions: Book cover, Book description @poire-z
  • Add more granularity in line-height settings with CRe (#4785) @NiLuJe
  • [fix] GestureDetector: fix typo in ges_coordinate_translation_90 (#4804) @Frenzie
  • ConfigDialog ButtonProgress: black border on default item (#4805) @poire-z
  • bump crengine: Harfbuzz light & line-height fixes (#4816) @poire-z
  • [Android] add support for likebook mars/muses (#4818) @pazos
  • [UX] Gesture manager: add two-finger swipe left and right (#4815) @Frenzie
  • [UX] Add Device:openLink() stub for Linux SDL (#4822) @Frenzie
  • [Android, UX] Add Device:openLink() implementation (#4824) @Frenzie @pazos
  • [feat] Kindle suspend using lipc (#4825) @Galunid
  • Fix Color rendering toggle not toggable (#4836) @poire-z
  • There’s no viewport on the H2O² @NiLuJe
  • Faster blitting @ BB8/BBRGB32 when no processing is needed (#4847, #4850) @NiLuJe
  • [UX] Gesture manager: add diagonal two-finger swipes (#4820)
  • [feat] plugins/wallabag: addArticle() method (#4852) @Frenzie
  • [feat, UX] Add external link to Wallabag (#4863) @Frenzie
  • bump crengine: allow drawing images inverted, various fixes (#4853) @poire-z
  • [Android] use the same tag for all logs (#4862) @pazos
  • [UX] Links menu and handling tweaks (#4867) @poire-z
  • [Android] Add F-Droid latest file (#4869) @Frenzie
  • [fix] OPDS last-modified check (#4874) @Frenzie

Full changelog

CommentsTags: ,


A while back a typo evaded me. GNU Tar is a utility originally conceived for writing (t)ape (ar)chives, a type of backup, whereas GUN Tar presumably doesn’t exist. Even if it did, it wouldn’t have anything to do with the GNU part of the equation.

Curious about the prevalence of this typo, I quickly found some unrelated but very interesting pictures. A guntar is a a combination of a gun and a guitar — obviously. 😉

Btw, there’s a picture of a guntar here (via)

a guntar, a guitar with a hunting rifle on it

a guntar, a guitar with a hunting rifle on it

Here’s a random video of Frank Klepacki playing some songs from Red Alert on his “Vengeance” guitar. I’m not really into guitars, but they can be quite interesting visually.

The typo itself is actually surprisingly rare. I searched for "gun tar" -guns -military -shot -shoot -shooting -foam but it’s still showing a lot of noise. Only one result was about GNU Tar, namely and embarrassingly, the typo made it into a published book: Utilizing Open Source Tools for Online Teaching and Learning: Applying Linux. Adding an extract at the end, i.e., "gun tar" -guns -military -shot -shoot -shooting -foam extract greatly improves on the ratio of typo results.

CommentsTags: , , ,

KOReader 2019.03 “Marsdiep”

As one of the maintainers of KOReader, a versatile a document and image viewer, I’m proud to announce the latest release.

The Marsdiep is a strait between the North Sea and the Wadden Sea (Wikipedia). When high tide approaches water flows east, and when the tide lowers it flows back west. Inspired by this natural phenomenon, our March release introduces multiswipes, short for multiswipe gestures. A swipe east, directly followed by a swipe west without taking your finger off the screen, will now take you directly to your latest bookmark. All of these are fully configurable in the gesture manager, which can now be found in the new SettingsTaps and gestures menu.

Various Android E Ink ereaders were added to the list of supported devices. Please keep your feedback coming in our dedicated issue!

Android and AppImages can now check for nightly and stable updates from within the program (#4620, #4639).

Because there is so much to cover, here are a few things that stand out to me personally:

  • @Galunid added the ability to allow for adjusting highlights (#4582).
  • @poire-z fixed up an issue with ligatures and hyphenation, so that “best” font kerning is now truly best (#4593).
  • @NiLuJe added hardware dithering on supported platforms (#4541).
  • @houqp decoupled the render core & hardware from UI (#4580). This sounds a bit cryptic, but it means you can now much easier use KOReader’s backend as a Lua module to build entirely new GUI concepts on top of it.

Default multiswipes


These are simply the gestures we thought to be most useful, but they’re hardly the be all and end all. You can add your own gestures using the multiswipe recorder (#4644).

We’d like to thank all contributors for their efforts. Some highlights since the previous release include:

  • Page overlap menu (cre): set nb of overlap lines (#4538) @poire-z
  • bump crengine: count nb of images drawn & others (#4542) @poire-z
  • [Android, feat] Set APK version to a sane automated value (#4546) @Frenzie @pazos
  • Adds CreDocument:getScreenPositionFromXPointer() (#4544) @poire-z
  • cre: allow text selection/highlighting across pages (#4544) @poire-z
  • [i18n] Add Slovak to translations (#4548) @fofo444
  • [Android] Add E Ink support for Inkbook Prime HD & exit after crash (#4552, #4559) @pazos
  • Enable HW dithering in a few key places (#4541, #4554, #4561) @NiLuJe
  • [Android] nightswatcher: switch to uber-apk-signer for v1 & v2 signing (koreader/koreader-misc#26) @Frenzie
    This allows for faster installation on Android 7 and higher.
  • [build, Android] Use faster lzma2 compression (#4562) @Frenzie
  • [UX] Don’t show low battery warning when charging (#4563) @NiLuJe
  • [chore] Some Wi-Fi tweaks (#4564) @NiLuJe
    • On Kobo, try to avoid booting in an inconsistent state (“Wi-Fi connection” checked, because the modules are loaded, but no actual network connection, for whatever reason).
    • Don’t enable auto_restore_wifi by default.
  • [Android] kodev run android: show all errors (#4569) @Frenzie
  • [UX] Add Prev/Next page actions to GestureManager (#4570) @NiLuJe
  • [Android] Boyue Likebook Plus (#4573) @pazos
  • bump crengine: fix search stuck on some pages and others (#4572) @poire-z
  • [fix, AppImage] writable zsync outbox location (#4568) @Frenzie
  • Some more repaint/refresh tweaks (#4578) @NiLuJe
  • [Android, fix] Fullscreen, bigger aspect ratio (#4589) @pazos
  • [fix] Eliminate ghosting on eInk when showing an image ScreenSaver (#4591, #4592)
  • bump crengine: fix font clipping and hyphenation with HB (#4593) @poire-z
  • README: add a cute little version tag badge (#4596) @Frenzie
  • Allows adjusting highlight start and end (#4582) @Galunid
  • move Cervantes4 to new natural light interface (#4588) @pazos
  • cervantes: add usb storage on devices w/updated 3rd party tools (#4588) @pazos
  • [UX] ReaderGesture: add back to previous location as an option (#4600) @Frenzie
    • add option – suspend action
    • add option – show history
    • add option – toggle rotation
    • [UX] Gesture manager: add paged zoom gestures (#4610)
    • [feat, UX] Gesture manager: add option – open previous document (#4641)
    • [UX] Gesture manager: re-order actions, add Skim option (#4654)
    • [UX] Gesture manager: add action – go to latest bookmark (#4657)
    • [UX] Gesture manager: add north west = folder up as file manager default (#4662)
    • [UX] Gesture manager: add action – show frontlight dialog (#4664)
    • [UX] Gesture manager: add action – show menu (#4665)
    • [UX] Gesture manager: add action – go to file browser (#4678)
    • [UX] Gesture manager: add action – toggle reflow (#4688)
    • [UX] Gesture manager: add action – go to (#4690)
    • [UX] Gesture manager: add actions – prev/next chapter (#4692) @poire-z
    • [UX] Gesture manager: add action – show dictionary/Wikipedia (#4699)
    • [UX] Gesture manager: add action – follow nearest link (#4714)
    • [UX] Gesture manager: add action – fulltext search (#4715)
    • [UX] Gesture manager: add action – clear location history (#4716) @poire-z
    • [UX] Gesture manager: add action – file search (#4720)
    • [UX] Gesture manager: add Exit and Restart action and a few gestures (#4725) @poire-z
    • [UX] Gesture manager: add action – folder shortcuts (#4733, #4759)
    • [UX] Gesture manager: add actions – toggle wifi and wifi on/off (#4739)
    • [UX] Gesture manager: add action – book status (#4746)
  • bump crengine: font, text and highlights fixes (#4609) @poire-z
    • Highlight adjusting: avoid start and end crossing each other
  • [feat] GestureDetector: add multiswipes (#4606, #4612, #4613, #4623) @Frenzie
  • [feat] ReaderGesture: add multiswipe support (#4607) @Frenzie
    • [feat, UX] Add multiswipe recorder (#4644)
    • [UX] Gesture manager: show selected action in menu (#4655)
  • display network settings based on device capabilities + fix android basic network info (#4550) @pazos
  • Use a temporary copy of our tar binary during OTA updating, to avoid the potential for a SIGBUS error… (#4602) @NiLuJe
  • [fix, Android] Bump luajit-launcher to unbreak fullscreen toggle in api14-15 (#4619) @pazos
  • [fix] Fix partial refresh when coming out of ScreenSaver in landscape (#4622) @NiLuJe
  • [Cervantes, Kobo] Stricter WiFi callback (#4616) @NiLuJe
  • [feat] Update check (#4620) @Frenzie
  • [fix] PicDocument: Pass a copy of image_bb in getCoverPageImage() (#4628) @NiLuJe
  • [fix] ReaderZooming: work around tiles that are too large (#4608) @Frenzie
  • [fix, AppImage] Add & dummy (#4634) @Frenzie
  • [Android] (re)enable update downloads using full apks (#4639) @pazos
  • [UX] Alternative update message when ota_version < local_version (#4661) @Frenzie
  • bump crengine: fix text selection and cache issues @poire-z
  • cre scroll mode: fix highlights not shown when small pages @poire-z
  • cre scroll mode: fix last line of book hidden by footer @poire-z
  • [UX] Introduce Taps & Gestures menu (#4677) @Frenzie
  • [UX] Navigation settings for all devices (#4680) @Frenzie
  • [fix] GestureDetector: add PAN_DELAYED_INTERVAL (#4666) @Frenzie
  • add support for likebook mimas e-ink updates (#4686) @pazos
  • [UX] creoptions: add more margin values (#4691, #4702) @Frenzie
  • [UX] ButtonProgressWidget: thin grey buttons instead of black (#4700) @poire-z
  • [UX] GestureDetector: add diagonal multiswipes (#4704) @Frenzie
  • [feat, UX] Gesture manager: add support for diagonal multiswipes (#4710) @Frenzie
  • [fix] ReaderFooter: Don’t hide progressbar if it’s the only ticked option (#4648) @Frenzie
  • Fix slow keyboard when double tap not disabled (#4711) @poire-z
  • bump base: PocketBook resume freeze fix (#4712) @tob1az
  • [Android] Bump luajit-launcher for build flavors (#4719) @pazos
  • [feat, Kobo] On Kobo, drop fb to 8bpp on startup (#4637) @NiLuJe
  • Decouple render core & hardware from UI (#4580) @houqp
  • cre: fix highlights in 2-pages mode (#4753) @poire-z
  • [fix] cre: fix position and page number after window resize (#4754) @poire-z

Full changelog

CommentsTags: ,

KOReader 2018.11 “An die Freude”

As one of the maintainers of KOReader, a versatile a document and image viewer for E Ink devices, I’m proud to announce the latest release.

Twenty-five years ago today, the Maastricht Treaty took effect. So let’s take a moment to enjoy the Anthem of Europe before moving on to regular business.

This release introduces support for BQ/Fnac devices, ported by @pazos (#4294). More information about how to turn your device into an open Linux reader can be found here. You will have to replace /etc/rc.local with the content of We hope this sparse documentation will suffice for the moment, because we really wanted to include all of these devices in this release!

Going forward, the tagged releases on GitHub will be considered stable, unless otherwise indicated by a suffix such as -beta or -rc. Hopefully this will remove user confusion about which release to use, particularly since new users will often be on newer devices that require a recent version (#4292).

The many changes since the last stable release are too numerous to mention or do justice. There were many visible changes, but even more under the hood. A few that stand out to me personally include:

We’d like to thank all contributors for their efforts. Some highlights since the previous beta release include:

Full changelog (since previous beta)
Full changelog (since previous stable)

CommentsTags: ,