Mostly Helpful Stuff

Free Carrots #7: How To Read Comics

Free Carrots is an ongoing series of helpful tips for using Plan 9.

Jack Kirby illustration of The Thing

Comics piracy is a shambles. Bloated websites filled with malware, staffed by scan groups who delete perfectly good scans of actual comic books in favor of lazy rips from digital services that offer only modern computer recolorizations and high-contrast restorations of books originally printed on toilet paper before Michael DeForge was even born. Oh, and they love RAR archives (even RAR archives mislabeled as ZIP archives [and vice versa]). Luckily for us, the popular comics formats CBZ and CBR are literally just compressed folders of image files.

Which page(1) fully supports.

obtaining comics

The easiest way to obtain a comic book is to write and draw one during your free time. If you do it on 11" x 17" bristol board using india ink it will take you about a month and cost you about thirty bucks. That’s a dollar a day, which if you’re reading this you can almost certainly afford. If you lack the talent and drive to produce your own comic books, or maybe you can’t even afford the $1 cover charge, there are plenty of comic book scans everywhere on the Internet. They’re not all great quality, but then again neither are many of the issues and collections foisted on the public by publishers.


normalizing comics

You probably scanned your 11" x 17" bristol boards into a Mac and archived them as a CBR/RAR file. You may have even committed heresies such as putting spaces in your file names. This kind of crap complicates life on Plan 9.

Years ago I wrote my own naive hack to fix file names for Plan 9 file systems, called crip. It’s not a great program, but over time I’ve tweaked it so that nowadays it handles most everything I throw at it:

   ; crip -n     # fix all file names in this directory

Plan 9 doesn’t have any native tools for handling RAR archives, but it handles ZIP just fine. Someone wrote a small Go program called unrar (src, amd64 binary) that works well enough. I added logic to crip for automatically converting CBR files to CBZ:

   ; crip -c     # convert every CBR in this directory

read the fucking comic book

This is the easy part:

   ; page -w Love_and_Rockets_014_2023_digital_Lil-Empire.cbz

Read the page(1) man page to learn how to navigate, zoom, etc.

a comic book printed on toilet paper before Michael DeForge was born


You can create bookmarks by selecting snarf from page(1)’s mb2 menu and pasting the resulting string into a file. Add a plumbing rule to your $home/lib/plumbing like so:

   # handle page(1) bookmark strings
   type is text 
   data matches '(([a-zA-Z!0-9_\-.,/]+)\.(ps|PS|eps|EPS|pdf|PDF|dvi|DVI|doc|DOC|epub|EPUB|cb[tz]|CB[TZ]))!(.+)' 
   arg isfile    $1 
   data set      $file 
   attr add      addr=$4 
   plumb to none
   plumb start page -wij $0 $file

then cp it to /mnt/plumb/rules, and you’ll be able to open your bookmark by plumbing the string.

plumbing a page(1) bookmark from the sam(1) text editor

holding your heavy laptop sideways

reading LOVE AND ROCKETS V4 #14 on sl's MNT Reform

It’s really not so bad. Rotate page(1) and Use the arrow keys to navigate.

sl navigates a comic book in page(1) using the arrow keys

value proposition

The above method is indeed a bit complicated and obnoxiously labor intensive, but what I love about it most is the fact that it does not require another device or operating system besides a random laptop running 9front in order to read selections from my 512GB comic book collection, in this case stored on a tiny USB thumb drive that is easily maneuvered between systems while on the go.

Your mileage may vary!

MNT Reform with SanDisk USB thumb drive