The One with the Thoughts of Frans

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

koreader-default-multiswipes-fs8
koreader-multiswipes.pdf

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 libbsd.so.0 & libXss.so.1 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 2019.02

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


The month of commercial love bears good news for owners of Android E Ink devices. Thanks to a library called refreshU and efforts by @pazos to integrate it into KOReader, we now have basic support for E Ink refreshes on a limited number of Android E Ink devices (#4517). Namely:

  • Boyue T61 and some clones
  • Boyue T62 and some clones
  • Onyx C67
  • Energy Sistem (which are in fact Boyue T62 clones). This was tested on an Energy Pro 4.

If you own an unlisted Android E Ink device, you can help us by installing the einkTest utility included under assets below. Once you start it, you’ll see a screen like the following. First it lists important device information, without which will not be able to include support for your device in future versions. Next there are three buttons you can click, to test whether your device can work with our current Android screen refresh implementation.

There’s more news for Android ereaders. Some devices go to sleep for no apparent reason, which makes KOReader unresponsive (#4428). To prevent this, go to settings (gears icon) → Screen → Keep screen on.


On the reader end, @poire-z implemented support for so-called widows and orphans (#4490). These words are typesetting jargon, see here if you want to learn more. If you’ve ever seen a line at the beginning or end of a paragraph all alone at the top or bottom of a page, you know what it’s about. There’s support for publisher styles and of course also overriding these to your own preferences.

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

Full changelog

CommentsTags:

KOReader 2019.01 “Public Domain 1923”

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


For the first time in twenty years new works entered the US public domain, which for some of them includes the rest of the world by extension. Read more about it here. So grab your digitized copies from a website like Archive.org or Google Books, and enjoy!

Quite a bit happened over the last month. Of course a lot happened under the hood as always, but one of the more visible changes must be the optional dynamic in-page footnotes by @poire-z (#4440, #4454). This feature mostly depends on publishers correctly indicating footnotes, but with a bit of elbow grease even less properly indicated footnotes can be displayed correctly.

image

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

  • Hide “no framework” buttons on FW 5.x (#4379) @NiLuJe
  • Fix wrong keymapping for Forma (#4376) @patrick-tang
  • Fix diagonal refresh not working in TOC and History (#4378) @poire-z
  • bump crengine: tables rendering improvements and others (#4378) @poire-z
  • Style tweaks: move some sub-menus to first-level menu (#4384) @poire-z
  • [cervantes] fix ota updates (#4386) @pazos
  • [UX] Inform about hold to set custom DPI, up DPI limit to 900, show concrete numbers, more DPI presets (#4388, #4389) @Frenzie
  • bump crengine: fix max image height, handle epub:switch (#4390) @poire-z
  • Fix crash when tap on external link in non-EPUB documents (#4391) @poire-z
  • A few Kindle fixes (#4394) @NiLuJe
  • [UX, Android] Hide E Ink full refresh setting on Android (#4397) @Frenzie
  • Bump base for MacOS brew fix and Android nightmode landscape fix (#4400) @pazos @Frenzie
  • [feat] Add dictionary download option (#3176) @Frenzie
  • [feat] MenuSorter: add sorting_hint support (#4399) @Frenzie
  • bump crengine: tweak table column widths algorithm (#4404) @poire-z
  • Fix translator, enable selected text translation, “Translation settings” menu (#4407) @poire-z
  • MacOS build fixes (#4385) @pazos
  • [fix, lang] rename calibre companion to calibre wireless connection (#4411) @civalin
  • [feat] Add many more downloadable dictionaries (#4401) @avsej @Frenzie
  • Add support for PocketBook Touch HD Plus (#4419) @jperon
  • [fix] ODPS: socket.http redirect, where the target is a different host (#4420) @enilfodne
  • Proper Forma support (#4414) @NiLuJe
  • [fix] If zsync eats dirt during an OTA update, allow to fallback(#4438) @NiLuJe
  • ReaderRolling: remove swipe north/south @poire-z
  • History: show files sizes, as File browser does @poire-z
  • CoverBrowser: options to show pages read/left as progress @poire-z
  • cre: adds in-page footnotes and alternative TOC hints tweaks @poire-z
  • use android log categories @pazos
  • [build] Add support for Debian packages (#4434) @pazos
  • [UX] Adds “Enable back history” menu item (#4443) @poire-z
  • Add PB641 aka Aqua 2 support (#4445) @viksok
  • [fix] Wallabag – Use JSON.encode to encode auth JSON (#4449) @jbrechtel
  • Bump base (PB fb debugging, minor third-party bumps) (#4455) @NiLuJe
  • Style tweaks: split in-page footnote tweaks @poire-z
  • bump crengine: in-page footnotes fixes + CSS !important tweak (#4454) @poire-z
  • [Kindle] Handle the two newish Indian PW4 variants (#4459) @NiLuJe
  • A few Kobo input tweaks (#4450) @NiLuJe
  • [cervantes] wifi: try to connect to known network before listing (#4462) @avsej
  • [cervantes] automatically restore wifi connection (#4463) @avsej
  • Detect the PocketBook Basic Touch 2 (PB625) @NiLuJe
  • Implement workarounds for/from #4387 to better handle WiFi menu @NiLuJe

Full changelog

CommentsTags:

KOReader 2018.12

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


The OTA update code was unprepared for point releases (such as v2018.11.1), but OTA updating to v2018.12 should be problem-free.

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

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 koreader-standalone.sh. 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:

KOReader beta 20181007 “don’t read alone tonight”

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.


The previous beta unfortunately broke OTA updates. This was quickly fixed (#4150), but you might need to update manually.

This release introduces support for the Sony PRSTUX, ported by @v01d (#4198).

There is now also a basic text editor (#4135).

KOReader Pumpkin Halloween logo

(Pumpkin credit: https://openclipart.org/detail/94513/helloween-pumpkin)

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

Full changelog

CommentsTags:

KOReader Beta 20180602

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.


This release debuts the new KOReader logo, courtesy of @AliLozano. We’re very happy with it!

koreader-logo

MuPDF has been updated to version 1.13, which means there is now basic support for tables in EPUB in that rendering engine.

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

Full changelog

CommentsTags:

KOReader Beta 20180410

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.


This release significantly improves usability on non-touch devices thanks to @onde2rock. @dengste dotted the i’s and crossed the t’s of natural light support by implementing an automatic setting for warmth. KOReader now also supports the Pocketbook Inkpad 3 (PB740). Last but not least, this release debuts an AppImage for Linux desktop computers.

Besides the emboldened introduction, there’s been a small change with big consequences. KOReader will now start in CoverBrowser view by default (#3834). If you want to change to a different view, choose the file browser menu (top left) → Display modeClassic/Mosaic/Detailed.

Automatic warmth

NB Only the Kobo Aura One and the Kobo H2Ov2 support warmth. The new automatic warmth settings look like this:

automatic_warm

So what is this “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. Until the past few weeks it didn’t have any of the regular desktop amenities, but I’ve added a few over the past weeks. The improvements include dragging and dropping a file onto the window to open it, a title that indicates the currently opened file, a basic albeit imperfect form of window resizing and a filechooser dialog accessible through Ctrl + O. For now the filechooser will only work if your system has Gtk3 installed.

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.

All of the improvements I mentioned above, such as dragging a file onto the window, were merely part of making the emulator easier to use. There’s not much point to emulating the limitations of a Kindle or a Kobo if you’re just trying to figure out why a document crashed the program! But a better emulator is also a better desktop app. What actually pushed me over the edge into creating the AppImage, which was surprisingly easy in spite of the somewhat sprawling yet vague documentation, was @onde2rock‘s efforts to make the program properly usable on the Kindle 4NT and other older non-touch devices.

After the program became usable without touch, I thought it’d be a fun experiment to implement 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. I implemented it as a half joking “wouldn’t it be cool if…” but it turned out to be a killer feature, at least to me. It’s what made me think that having KOReader easily available as a desktop app just might be a worthwhile endeavor.

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

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

Full changelog

CommentsTags:

KOReader Beta 20180314

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.


This release adds support for the Kobo H2Ov2 thanks to @cairnsh. You need to use at least KSM 9 with update 1.

@dengste added a widget to configure the natural light on the Kobo H2Ov2 and the Kobo Aura One in #3744.

nl_widget

The Android x86 build is now a regular part of the nightly builds (see #3384 but it wasn’t finalized on the build server until koreader/koreader-misc#14).

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

Full changelog

CommentsTags:

Improving Gource Videos with Background and Audio

Gource videos have been popping up on my radar for several years now, but for some reason I decided to play around with it yesterday. My tweaks were very minor: much increased speed, avatars, a logo, a background image, and some music to go along with it.

I started with the avatars. To grab them, I used this script with a quick replacement for the error handling:

    if($rc != 200) {
        unlink($author_image_file);

        my $gh_url = "https://avatars.githubusercontent.com/".$author."?size=".$size; 

        warn "fetching gh image for '$author' $email ($gh_url)...\n";

        my $rc = getstore($gh_url, $author_image_file);

        next;
    }
    sleep(1);

That way users without Gravatars but a GitHub username in their commit message still get the one you’re used to seeing. I manually deleted all of the default GitHub no avatar images. That sounds like a lot of work, but you can just sort by size.

I did a quick inversion of the KOReader logo in GIMP. Nothing special there.

The background image I grabbed from Pixabay, a useful site for free photographs. The music I got from dig.ccmixter.org, something similar for music.

Now for the pièce de résistance, thanks to the Gource wiki:

gource -1920x1080 -a 0.1 -s 0.05 -i 0 --logo koreader-logo-inverted.png --user-image-dir .git/avatar/ --background-image fairyland-canyon-1632749_1920.jpg -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4

The most important aspect is the resolution and how fast or slow you want the video to be. Then once you have the video, you can mix in the audio:

ffmpeg -i gource.mp4 -i mindmapthat_-_Transmutation.mp3 -c:v copy -c:a aac -strict experimental -filter:a "volume=0.6" gource-muxed.mp4

Note that I lowered the volume of the music, more on that here. You could also play around with fade-outs, whether in Audacity or straight from ffmpeg. Also see my post on lossless audio cutting for when everything is good but you just want to trim the audio a little. That’s all!

CommentsTags: ,

Older Entries »