Wednesday, December 28, 2016

Peruse 1.2 "The Winter Wonderland Release"

My sister, with a cup of gløgg and some
æbleskiver, reading Wasteland Mutants in Peruse.
Today marks a very interesting day: Near enough to six months after its initial release, this will be the final release (minus any potential minor revision work) of the 1.x series of the comic book reader Peruse.

Why is it the final release, you say? Well, easy - there will be a 2.x series, which will be based upon Kirigami 2, and further have a bunch of new features and behavioural changes which all together makes it sensible to make a big version number change. So, no, this is not the final release of Peruse itself, only the 1.x series - rest assured that there is a very bright future indeed for your favourite comic book reader built by and powered by the KDE community!

Where can I get it?!

Don't want to wait? Well, certainly, don't let me stop you! Hop right over to the Peruse website and grab yourself a copy of whichever version best matches your needs.

What's in this?

While you wait for your download, let's have a look at what you can find in this shiny, new version of Peruse. The same features you found in 1.1 are still there, of course: CBZ, PDF and ePub support, alongside a few other less common ones. A handy continue-where-you-left-off feature with support for multiple books. A collection system with filtering options based on author, title, folder structure and so on. Full screen mode, with both touch and keyboard controls. All that stuff you already know.

As for new things, however, we have done some major overhauling of the PDF and ePub support, which is now considerably more solid, with less glitchy rendering and a more usable view. Still based on Okular, but using a more Peruse-like navigation system, which makes the whole thing feel more at home.

A whole bunch of little annoyances have been ironed out as well, and using Peruse is now more pleasant as a result. Things like using a more natural title for title-less comic book archives, and supporting basic ACBF information will come in handy when browsing your collection, and when reading.

What about shinies?

This version is not all just cleaning and polishing, you also have a preview of things to come: There is now a (very basic) shop, which you can find in the sidebar with the title "Get Hot New Books", which is by no means the final name, and is more alluding to the name of the technology underneath. Clicking on this entry will let you download and read comics from the comic section, which is currently quite low on content - something which the second thing being previewed in this version might help with.

Peruse Creator is a partner application to Peruse Reader, designed to allow the many creative people out there to easily produce comic book archives, for use not only with Peruse, but with any other comic book readers out there. The version shipped with this release is an initial, basic version, a sort of proof of concept. Even then, it already has support for creating comic book archives with ACBF information embedded, including not only titles and other basic information like that, but also genres and the like. Important to note is that comic book archives made using Peruse Creator will, even though they have ACBF information embedded, work just fine with applications which do not support this: They will simply not have the information available, and really just work like any other cbz file you might come across.

What's next?

Bear with me as I go slightly fluffy for a moment: The next step for Peruse is to close the cycle between creation and consumption. We want to make it as easy for the readers and the makers to achieve their goals, which here is, of course, to let the readers read the things the makers make. This is not simply a case of creating a store that people can put things on and get things from, it is about creating the tools which allow the readers to read the content they want to read, in the most comfortable manner possible, and for the makers to make the content they want to make, in the most comfortable manner possible. That all sounds nice and logical, right? But, what, more precisely, does it mean?

For the readers, it means creating a place where they can get that content, the store which is previewed in this version. The version in Peruse now is extremely simple, and really, it would be great to hear what you all want out of it. We have ideas of our own, like showing you what's next in a series where you have downloaded and completed reading a book, and there are more books available on the store. And to show various categories and the like in the store, to let you find things you want to read. Most of all, though, we want to hear what you want to be able to do.

For the makers, it means letting you create comics not only comfortably, but efficiently as well. The creation tool is currently simplistic, but we want to support all the features that ACBF allows for, to allow our makers to make comics which can do things they could not do on paper alone, such as frame based navigation instead of simply page-by-page navigation. Again, we want to hear from you what you want to be able to do.

We in this case are myself and the KDE Visual Design Group, and we would absolutely welcome input from everybody out there, because you are the people we want to be able to make happy. So please, get in touch and we will greatly enjoy listening to your amazing ideas, so we can create the best Peruse possible.

The word of the day is: Boiler. Because we are having a new one installed right now. Have been without heating for over a week now, so getting that sorted is nice ;)

Labels: ,


Anonymous Anonymous said...

Your sister is... qt! :D

28 December 2016 at 08:33  
Blogger leinir said...

@marcomi i do believe i see what you did there! ;)

28 December 2016 at 10:19  
Blogger R said...

Nice to see ACBF format is being used in KDE comic reader. Keep up the good work. Will try it out ;-)

3 January 2017 at 08:42  
Blogger leinir said...

@R Thank you very much, and i certainly intend to! :) Do give us a poke if you have comments or whatnot about it :)

3 January 2017 at 09:15  
Blogger R said...

Hi. So I tried to run your application under Kubuntu 16.10 live USB disk (AppImage binary) and CBZ files with ACBF are not loaded properly. It always shows just the coverpage but navigating to other pages does not work. Tried several CBZ files as I have a quite a big library (some of them are available to download from
Regular CBZ/CBR files work fine, but once ACBF file is inside, it doesn't load correctly.

3 January 2017 at 16:17  
Blogger leinir said...

Hmm! That is quite confirmed, yes... i shall try and see what's going wrong with that - thank you very much :)

3 January 2017 at 18:38  
Blogger leinir said...

@R Could i get you to grab this and tell me if it works now? :) i worked out that my parser was a little greedy at times, and choked on some things... i have to be honest, it was never really tested very well, it is good to have others trying to use it :)

4 January 2017 at 13:40  
Blogger Eric said...

This comment has been removed by the author.

4 January 2017 at 15:09  
Blogger Eric said...

Thanks for continuing to work on this. The feature set is now at a place where it may end up replacing my current choice - qcomicbook. Also, thanks for Appimage. Now I can actually use it!

A few comments on the post:
1) How does collection mode work? (A Wiki or other how-to would probably be great at the Peruse website - or maybe it's there and I missed it) Here's how I currently manage my collection - Tellico holds all the metadata. For ease of use in finding a comic without loading up Telico, they are in subfolders like this: publisher->Series->folders for each format (eg ePub, CBZ, PDF). I'd definitely want a way to unify the various formats as one entry in Peruse. Then maybe have a way to set a priority order - try to open the CBZ first. If there isn't one, then PDF, then ePub.

2) Get new comics: Love the Krita support. Would like some extra things if they can work somehow without screwing up the UI too much. For example, if there's currently a Humble Bundle Comicbook or Manga sale going on - Peruse should let me know. This might be populated by some git repo or wiki where people can add in links whenever there's such a sale on. More work, but potentially doable if they have an API - ability to search Comixology comics that are available for download. Typically most things from Image, Top Cow, and Dynamite. Other commercial sources that provide DRM-free comics? Basically, I appreciate the indie focus with Krita, but most people want a combination of intensely indie and commercial.

3) I do love your release of the creator. I've been meaning to scan my old comic books for which there isn't a DRM free version available (basically anything from DC or Marvel) and by using your maker half of Peruse it'll not only be easier to do, but also allow me to do ABCF stuff and essentially mimic Comixology's proprietary panel-by-panel navigation. (Unless I'm misunderstanding how ABCF works and what it gives the user)

Finally, I look forward to being able to write an update to this post featuring Peruse. I'll let you know when I do!

(I forgot to tell it to email me followups, so deleted and reposting comment)

4 January 2017 at 15:10  
Blogger R said...

Hi, tried the new version and now it loaded fine with ACBF files inside.

However several observations:
1. The program does not create thumbnails of those comic books, nor I cannot see any ACBF metadata loaded/shown anywhere
2. At the start all comic books are loaded again from set locations which takes quite some time as I have quite a lot of them (you may check how library works in ACBF Viewer where comic books are imported on user request)

Overall, I'm glad you started using it in KDE environment. I believe your application will get better over time, and will check from time to time.

BTW, I'm developer of ACBF format and related applications (ACBF Viewer, ACBF Editor and ACBF Viewer for Android). So, if you have any question you can contact me also directly on

Cheers and good luck ;-)

4 January 2017 at 17:06  
Blogger leinir said...

@Eric Thank you for your very kind words! You're absolutely welcome, the AppImage was made possible because of my employer, who is quite keen on all of this stuff ;)

1) Collection is, i'm afraid, a little sub-par. It's one of the thing i want to get properly sorted for 2.x (that is, a persistent database, so it doesn't have to scan each startup, and one which has a better store for the metadata, so it's easier to filter on it - which will be slower, but that in turn will be less of an issue when the database is persistent). At the moment there is no concept of a book with multiple files (the file is the basic entry, and it contains many bits of metadata), but having files being metadata as well, and available as multiples, that is a very interesting idea and one that i should definitely like to look into. And, of course, before doing the database persistence work, that is something that would need to be considered, or it would be difficult to change later :) In the meantime, however, if you're already storing your files in that manner, the Filter by Folder section might do you reasonably well as navigation in the meantime...

2) Krita is very close to my heart, having worked with that team for a few years now - actively during the Krita Sketch and Gemini period, and more recently more just as a very happy spectator :) Yes, more DRM free download locations is something on the perceptual horizon as well, but for now the KNS store is the only one. That, however, is also likely to change, and having the ability to provide a kind of aggregated store would be really nifty (and, if designed fairly sensibly, not /too/ difficult, it said, famously, before asking someone to hold their beer ;) ). For clarification, mind, is not Krita itself, but rather a subset of the KDE Store (using the same login data and database and so on).

3) Creator is very much a tech-demo preview give-me-ideas sort of test release, and yes, the ACBF panel-by-panel-with-animations stuff is definitely something i want to do :) It's something ACBF provides the metadata for, but the viewer needs support for actually doing it, and at the moment, Peruse lacks that. Totally planned, though :)

Ooh nifty! Thank you very much, i shall look forward to reading that :D

5 January 2017 at 10:57  
Blogger leinir said...

@R Great news, thank you! :)

1) The comic books in cbz format (whether or not they are ACBF enabled) require the ebook thumbnail generator, which is missing in the AppImage, because it in turn requires the kio-extras repository, which in turn pulls in nearly all of the KDE Frameworks, resulting in an AppImage package several tens of megabytes larger... This will be fixed, just thought i'd explain why it's not /quite/ trivial to sort out :) The ACBF metadata is not exposed properly, no, the support for it in the 1.x series is somewhat minimal and more of a tech-demo than anything else. One tiny note is that it will now be shown once the book is opened - specifically, the default title will be shown (and that's it, i'm afraid, for now). So, all in all, i'm afraid the unfortunate situation you describe is the expected current state. Hope to fix this in the not too distant future, though :)

2) See comment 1) in my previous comment - it will happen, just hasn't happened yet :) The original intention was to use Baloo for this, and the not-appimage version does do this, but even with Baloo, it still takes a fair amount of time (though the scan /is/ about an order of magnitude faster on an SSD, and much, much faster with a spinning disk as there is no disk io apart from the baloo database read). Consequently, this will change, and Peruse will have an internal database in the 2.x series, just not for the 1.x series.

Thank you very much for your kind words! Also, i should note, the ACBF support in Peruse has been built with future external use in mind, and it has been created as a library with only minimal Qt requirements, so if you find people asking you about ways of using ACBF without Python, perhaps this library would be an option :)

The way your comments were talking about things, i did have a suspicion it was probably you, but i never like to assume ;) Thank you very much, there might very well be questions at some point in the not too far distant future :D

5 January 2017 at 11:25  
Blogger Eric said...

Played with it a bit last night. Came away with the following extra info for you to consider as you develop:

1) I LOVE that you allow for setting multiple folders rather than requiring it all to be in one folder.

2) Please consider further allowing designating ignore folders. Some examples of how this might be useful: I get a lot of my legitimate comics from Humble Bundle purchases and since those come with 3-4 files per book (PDF, CBZ, EPUB, and sometimes high quality PDF), I usually have a staging area with my /home/username/comics directory where I keep them temporarily until I get them organized. Wouldn't want those imported into the library until I move them into the publisher folders. Also, as I have a press relationship with some publishers, I get review copies and I keep those secluded until I have time to review them.

3) As you move into an internal database rather than scanning every open, consider a hash or whatever other programming technique is usually used to identify files so that if I rename a file or move it to another folder, I don't end up with duplicate entries. I don't do this, but some people might have an unread and read folder if they have a large To-Read "pile"

4) The interface appears to be geared towards touch screen. And that's fine, but I'd like a more desktop-centric way of adjusting the zoom. I was having trouble with that yesterday - I think I was double-clicking the image and that zoomed to various predefined zoom levels.

5) Intelligent side-by-side page presentation. From what I could tell (I looked through menus and tried right-clicking) there is no way to have pages face each other. This is a problem with 2-page spreads common in paper-first comics. However, what I hate about QComicbook is that you can't do the Okular thing of saying you want 2 page spreads, but ignore the cover. So usually when I'm reading on the desktop I just and up using the PDF and Okular rather than the CBZ

5 January 2017 at 13:27  
Blogger leinir said...


1) This was one of the first things i built for Peruse - when i realised that there would logically be two default folders in the XDG standard where comics would reside (Documents and Downloads), it simply became easier to have just a straight forward list of folders, rather than hardcoding just one, or only allowing two (because that would, frankly, be a little silly ;) ). Really glad that you enjoy that :D

2) A blacklist to go along with the whitelist does seem a very logical thing to have, yup! Shouldn't be too hard to add, either :)

3) Hmmmmm... Yes, having some way of tracking things would indeed make a lot of sense. As many of Peruse's features already depend on extended file system attributes (e.g. the current page thing uses that, which is why while Peruse lacks a database now, that still works), so i think i would probably gravitate towards using that as well to keep track of things, as a kind of double-check to allow for speed :)

4) It was indeed originally built for use with Plasma Mobile (and still is), and so some of the desktop stuff is perhaps less than optimal. Double-clicking will switch between the full page view and a zoomed in view, but yes, having more zoom levels, with better control, would definitely be good. Since that touches the viewer, though, i'd want to postpone that until 2.x, as the viewer will need very considerable work to support those many fancy features that ACBF also provides :)

5) Similarly to 4) this is something i do very much want to support. Again, with ACBF supporting chapters and the like, this is something which could also be worked on for that, with a sensible fallback for non-ACBF enabled archives (technically, Peruse creates a skeleton ACBF document for all CBZs, and so the work which goes into the ACBF view would automatically end up used for all CBZ comics :) )

Thank you for the ideas, too, i really appreciate it! :)

5 January 2017 at 13:53  

Post a comment

<< Home