Interact with this post using Mastodon or
Reading more than books on the X4
Published on
I recently discovered the Xteink X4
, a tiny e-reader that completely caught me off guard. Its capabilities
far exceeded my expectations, and within the first hour of using it, most of my initial concerns disappeared.
That said, I’m a tinkerer at heart, so I couldn’t resist diving into everything the community has built for this little device. Though some may question this usage, the question that often comes up is whether it’s even practical to read manga/comic on such a small screen with limited navigation controls. At first glance, it seems unlikely. But that was before srokl
began refining the cbz2xtc tool.
Cbz2xtc optimization
The cbz2xtc tool, originally conceived by tazua and further refined by community forks, is a marvel of open-source ingenuity. Its core mission is simple: take your .cbz comic archives and transform them into the .xtc format perfectly suited for the Xteink X4’s grayscale e-ink display.
It’s not just a simple conversion; it’s a dedicated image optimization pipeline. The script extracts each image, smartly rotates it for optimal display, resizes it to fit the X4’s dimensions, and applies a dithering algorithm to ensure those nuanced grayscale tones come across beautifully on a black-and-white screen.
This entire process will help going around the limitations observed when you try to read a manga/comic on a small screen:
- Text too small to read
- Details muddy or lost
- Double-page spreads unusable
Ultimately, you have an .xtc file that makes manga/comic reading surprisingly convenient and smooth.
Still, it’s worth noting that this tool:
- Doesn’t magically improve artwork resolution
- Won’t perfectly handle every double-page spread
- Prioritizes readability over preserving original layouts
Using cbz2xtc
You can find all the instructions and options on the github pages mentioned earlier, but if you want to quickly give it a try here is a quick tutorial:
- clone the repo
- cd cbz2xtc
- place your cbz file in this folder
- run
python3 cbz2xtc.py --clean --2bit --landscape-page-split rtl --dither zhoufang --downscale bicubic --contrast-boost 3
Now, here are some option explanations for this command:
- clean: automatically remove temporary image files created to generate the .xtc file
- 2-bit: use 4-level grayscale (higher quality)
- landscape-page-split rtl: split wide pages into 3 pieces starting from the right
- dither:
- Ostromoukhov: create visually uniform patterns with minimal noticeable artifacts
- Stucki: produces smooth gradients with minimal patterns
- Floyd: strong contrast, sharper halftone, can emphasize details but sometimes introduces “stair-step” artifacts on curves (recommended for manga or black-and-white comics)
- Zhoufang: preserves edges and fine detail while keeping halftones smooth. Excellent for manga panels with both line art and shaded areas, and color comucs
- Atkinson — sharper results, great for text-heavy content (recommended for PDF and documents)
- Ordered — patterned dithering, retro look
- None — pure black and white, no gradients
- downscale:
- Box: best for line art or pixel-style screentones where sharp edges matter
- Bilinear: best for light shading and gradual scaling (recommended for line-heavy comics)
- Bicubic: best for manga with subtle screentone gradients or full-color comics with shading
This is just a fraction of what’s possible. Srokl has done incredible work, and the level of customization is truly impressive.
Panel-to-panel reading
This tool also takes advantages of OpenCV to include “panel-by-panel” feature Instead of just dividing a page, it intelligently detects individual panels within the manga/comic page. Each panel will then fill your small screen with crisp, legible detail.
To use it, you should place your .cbz file in the “panelbypabel” folder and run a command with the panel argument like:
python3 cbz2xtc.py --2bit --dither zhoufang --downscale lanczos --panel --rtlUses fast contour-based detection using traditional computer visionpython3 cbz2xtc.py --2bit --dither zhoufang --downscale lanczos --panel --panel-model manga_panel_detector_fp32.pt --rtlUses AI-based detection using YOLO (You Only Look Once) and the provided model file
That said, my attempts to use the panel-by-panel approach still produced results similar to the standard cbz2xtc command. Maybe it’s a user issue ;)
Heresy or a game changer?
cbz2xtc and Srokl’s work are a perfect example of a tool designed to solve a very specific problem and doing it exceptionally well. Rather than forcing the X4 to behave like a tablet, it adapts manga and comics to fit the device while preserving the quality of the documents. While the experience naturally differs from reading on a larger screen or with a physical manga, it still offers a surprisingly enjoyable reading experience. The panel-to-panel viewing feature would certainly elevates the experience, even if it sacrifices the traditional reading flow.
Tools like this highlight the power of niche open-source development. They turn what might seem like hardware limitations into opportunities for a highly optimized, distraction-free reading experience. For those of us who value minimalism, hackability, and the joy of bending technology to our will, this setup is a delightful testament to the ingenuity of the community.
- Barebones e-reader: Xteink X4
- Xteink X4 short-term review and bonus
- Reading more than books on the X4
More food for thoughts? Check other posts about: #Cli
Thanks for your read. Hope it's been useful to you.
✄ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈