Evince, signets, information et grand public

Je lis de plus en plus de bédés au format numérique, soit sur mon pc, soit sur mon portable (j'ai pour l'instant abandonné la tablette). Je marque régulièrement les pages grâce au logiciel Evince mais ces signets sont stockés sur la machine et pas dans le fichier lui-même. Comment partager ces marqueurs entre plusieurs machines ? Une question simple qui m'a cependant amené (1) à réflechir aux logiciels à utiliser pour lire mes livres / bédés numériques et (2) à constater de nouveau la lente « dégradation » de l'écosystème libre...

Par dégradation j'entend une sentiment diffu depuis plusieurs mois / années, les errances de Firefox, la tablette ni faite ni à faire d'Ubuntu, les simplifications toujours plus grandes des interfaces graphiques sous Gnome, j'en oublie… Une impression curieuse qu'on est en train de perdre le peu de terrain qu'on avait réussi à gagner. Non seulement on ne cherche plus à éduquer, à amener le plus grand nombre vers la complexité (c'est vrai ici en informatique mais le même raisonnement est applicable ailleurs), mais on en est aujourd'hui presque à simplifier ce que l'on a déjà en espérant le rendre plus accessible. Ce qui ne marche pas.

Pourquoi penser à cela en cherchant comment Evince stocke ses signets ? Parce que je suis tombé sur la question d'un gars qui a eu un problème similaire au mien et que la réponse apportée est pour moi une énième illustration de cet abandon de complexité pour une illusoire accessibilité.

Il y a de cela pas si longtemps, une telle question posée sur un forum linux aurait engendré une discussion passionante où chacun y aurait été de sa solution, de son astuce, jusqu'à ce que quelqu'un ponde un petit script et un autre une interface graphique à ce script. On aurait ainsi peut-être pu voir emmergé un éditeur de méta-données (d'autres logiciels sont nés comme cela). On a eût à se plaindre à une époque que trop de gens qui n'avaient rien à dire polluent les fils de discussion inutilement. Aujourd'hui, les modérateurs ferment les discussions car le sujet est trop spécifique… Je peux comprendre le but recherché : faire du site - ici Ask Ubuntu - une source où le noob de base puisse rapidement trouver réponse à sa question sans trop se faire de noeuds au cerveau. Mais l'effet est de mon point de vue dramatique : le noob qui ne veut pas réflechir ne viendra jamais sur ce type de site, n'essayera jamais Linux alors que le noob qui fait l'effort de venir lui aura envie d'apprendre et de bidouiller. Bref, encore une illustration puérile et futile du « simplifier un propos pour se faire comprendre du grand public » en négation totale avec ce qu'est selon moi Linux et le logiciel libre. Mais ceci est une autre histoire...

Pour en revenir au sujet principal, j'ai fais mes devoirs et voilà où j'en suis : Evince stocke ses « meta-données » relatives aux fichiers qu'il ouvre (position à la dernière ouvrture, signets, dimension de la fenêtre, etc.) via GVfs, le système de fichiers virtuel de Gnome, informations stockées dans des fichiers binaires enregisrés dans ~/.local/share/gvfs-metadata/. ces méta-données peuvent être manipulés grâce à une série de petit utilitaires comme gvfs-info :

gvfs-info -a 'metadata::*' /path/to/file
gvfs-info : afficher les meta-données d'un fichier

On peut ainsi par exemple récupérer la liste des signets (metadata::evince::bookmarks) ou la page visionnée lors de la dernière fermeture (metadata::evince::page). Pour éditer une méta-donnée, on pourra utiliser gvfs-set-attribute.

Je n'ai pour l'instant trouvé aucun utilitaire qui permette de synchroniser les méta-données GVfs en même temps que le fichier auxquelles elles sont liées. Synchroniser le contenu du dossier ~/.local/share/gvfs-metadata/ entre différentes machines simplement pour partager les signets d'Evince ne serait absolument pas judicieux car beaucoup d'autres logiciels utilisent GVfs pour stocker des méta-données.

Une solution alternative serait de lire et gérer les livres avec Calibre : le logiciel stocke les méta-données dans des fichiers xml (schéma Dublin Core). Une bibliothèque calibre pourrait parfaitement être synchronisée entre plusieurs machines.