Hace poco encontré un par de galerías de imágenes para descargar desde la página de archive.org y pensé en aprovechar la opción de descargarlas en formato JPEG2000 ya que la calidad es comparable al original en formato CBZ pero el tamaño de la descarga es típicamente mucho menor (cerca del 50%) y, cuando tienes el internet del perrito de apenas 3 Mbps, los archivos de menor tamaño siempre son una buena opción. Así que descargué algunos archivos .zip que contenían las imágenes en formato .jp2. No debería haber mucho problema, ¿cierto?. Cualquier visor de comics puede abrir archivos .cbz que son básicamente archivos .zip con una extensión diferente. El problema, sin embargo, fueron los archivos .jp2.

Zathura, el software que uso habitualmente para ver comics/mangas en formato .cbz no soporta imágenes con formato JPEG2000; en mi costumbre por usar softwares ligeros intenté instalando MComix para descubrir que tampoco soporta este formato. Al parecer el formato JPEG2000 no es muy utilizado para comics y por lo tanto no hay mucho soporte. La siguiente opción era usar un visor general de imágenes y no un simple visor de comics. XnView MP, el visor de imágenes que uso, soporta imágenes en formato JPEG2000 pero no soporta explorar dentro de archivos .zip 😦 . La versión clásica, XnView, sí tiene la opción de explorar archivos .zip pero esa versión funciona solamente en Windows. ¡Maldición!. Entonces, ¿cuáles eran las opciones? ¿Usar XnView con Wine?. También podría seguir probando visores de comics e imágenes para Linux hasta encontrar uno que soporte abrir archivos .jp2 desde un archivo .zip. Hasta podría intentar programar mi propio visor de comics. ¡Sólo quiero encontrar una forma sencilla para abrir estos archivos!.

Escribir mi propio visor de imágenes suena como un buen ejercicio de programación pero me tomaría mucho tiempo antes de llegar siquiera a tener un simple programa que pueda desplegar en la pantalla las imágenes que he descargado. Así que, de momento, quedará como otro de esos miles de proyectos lolmuertos, esos para los que tienes una gran idea pero en los que nunca vuelves a trabajar 😦 .

En cambio, se me ocurrió una forma primitiva pero simple en la que podría ver esas imágenes sin tantos problemas y sin tener que esperar mucho tiempo. La idea era simple, descomprimir los archivos .zip en la memoria RAM de forma que no tendría que escribir al disco duro archivos desechables que se borrarán poco tiempo después. Una vez descomprimidos, los archivos .jp2 se podrían abrir con XnView MP o cualquier visor de imágenes que soporte el formato JPEG2000. Por supuesto, abrir el archivo .zip, descomprimir los archivos y después navegar a la carpeta en la que fueron descomprimidos es justamente el tipo tarea que vuelve molesto hacerlo manualmente así que lo que necesitamos es agregar una opción al menú contextual del gestor de archivos para navegar automáticamente a la carpeta donde se descomprimen los archivos. Si bien es una solución primitiva, estas opciones son todo lo que necesitamos y están fácilmente disponibles en Linux aunque precariamente documentadas.

Nota: Las siguientes instrucciones funcionan para Debian Stretch, pueden ser ligeramente diferentes para otras distros

En primer lugar, descomprimir los archivos .zip en la memoria RAM es fácil en Linux ya que contamos con /dev/shm, un punto de montaje automático del tipo tmpfs; lo que esto significa es que los archivos en esta carpeta se encuentran almacenados en la RAM y, si no son borrados manualmente, desaparecerán en cuanto se apague la PC. Podemos hacer un sencillo script para descomprimir un archivo hacia una carpeta temporal en /dev/shm y después abrirlo en el gestor de archivos o directamente con el visor de imágenes:

#! /bin/bash TMPDIR=$(mktemp -d -p /dev/shm/) 7z x "$1" -o"${TMPDIR}" pcmanfm "${TMPDIR}"

Este sencillo script, lo guardaremos con el nombre extraer-explorar.sh, descomprime el archivo que se le pase como argumento en un directorio temporal en /dev/shm y después abre el gestor de archivos, en este caso pcmanfm, en ese directorio temporal. Ahora, si tan solo pudieramos agregar al menú contextual de pcmanfm la opción de llamar este script…

Resulta que Linux tiene un poderoso pero poco documentado sistema para personalizar el menú contextual del gestor de archivos. En este caso debemos crear un nuevo archivo extraer-explorar.desktop en el directorio ~/.local/share/file-manager/actions y editarlo de forma que contenga el siguiente texto:

[Desktop Entry] Name = Extraer y explorar Type = Action Tooltip = Extrae el archivo y abre PCManFM Icon = terminal Profiles = on_archives; [X-Action-Profile on_archives] Name = Extraer y explorar MimeTypes = application/zip; Exec = /home/monstruosoft/extraer-explorar.sh %f

Este archivo .desktop hará que para todos los archivos .zip aparezca una opción en el menú contextual para extraer el archivo y explorar el contenido. A partir de aquí, podemos abrir las imágenes .jp2 con XnView MP. Ya que los archivos son generados en /dev/shm no hay necesidad de preocuparse por borrarlos ya que desaparecerán cuando se apague la PC. No debería ser un problema a menos que abras muchos archivos usando este script o que no apagues tu PC durante varios días o semanas, en ese caso sería recomendable borrar con regularidad los directorios temporales generados por el script o bien se podría modificar el script para, por ejemplo, usar siempre el mismo directorio y borrar el contenido previo cada que se abra un nuevo archivo.

Esta puede ser una solución primitiva y poco elegante pero al menos ahora puedo ver esas galerías hentai 😛 .