Un équivalent de Notational Velocity pour GNU/Linux ?

Une question de Camille, reçue pas plus tard que ce matin par e-mail :

J’ai commencé depuis peu à utiliser National Velocity et j’utilise la synchronisation avec SimpleNote pour avoir accès à mes notes sur les différents ordinateurs avec lesquels je travaille.
Sous Windows, j’ai trouvé Resoph Notes qui me convient à peu près, bien qu’étant très loin de la simplicité d’utilisation de NV.
Sous Ubuntu cependant, je n’ai trouvé aucun équivalent. Le site de SimpleNote propose des extensions pour Firefox et Chrome, ce qui ne me convient pas plus que ça. Il propose aussi un script Perl du créateur de Multimarkdown et une extension pour Emacs.
Par défaut, je pense que je vais utiliser Emacs et son extension.
Dans certain de vos articles, vous évoquez Ubuntu, que vous utilisez aussi. Ma question était donc: avez-vous trouvé un bon substitut de NV sous Linux ?

Réponse courte : non.

Réponse longue : non, non, non mais oui, mais.

 

  • Non, je n’utilise pas le mode Simplenote pour Emacs.
  • Non, je n’utilise pas (plus) Simplenote : j’utilise Dropbox.
  • Non, je ne connais pas d’équivalent à l’uniquissime Notational Velocity, sous GNU/Linux.
  • Oui, j’arrive à peu près à me débrouiller.
  • Mais il est probable qu’il existe de meilleures solutions.

Pour être exact, il y a bien le logiciel de prise de notes Tomboy, sous GNU/Linux, qui a beaucoup de qualités (simple, bon moteur de recherche, liens Wiki entre les notes) mais qui, malgré qu’il utilise des fichiers texte pour stocker les notes, n’est compatible à peu près qu’avec lui-mếme tant par la façon dont il nomme ses fichiers :

tomboy001-web
Gné ? Ne pas pouvoir utiliser le nom des fichiers pour mettre des informations utiles (et de mon choix) est, pour moi, rédhibitoire.

Et aussi par la façon dont il les structure (c’est plein d’affreeeeeeux XML, invisible quand la note est affichée dans Tomboy, qui vous saute à la gorge comme un lapin enragé si vous l’affichez dans un éditeur de texte normal) :

tomboy003-web
Comment voulez-vous relire ça, hors de Tomboy ?

C’est dommage, parce que Tomboy s’intègre très bien à Ubuntu et se révèle presque aussi simple et efficace que Notational Velocity (notez que je ne l’ai jamais testé sur de gros volumes de notes, à la différence de Notational Velocity) :

tomboy002-web

Bref, bien qu’il soit prometteur et sympa, il ne fait pas l’affaire.

Créer (facilement) des notes

Mes notes sont toutes stockées au format TXT, dans un sous-dossier de ma Dropbox, qui est synchronisé sur toutes mes machines, peu importe leur système d’exploitation. Le format TXT m’assure qu’elles sont lisibles partout, y compris sur iPhone ou iPad. Les astuces qui suivent visent juste à faciliter leur manipulation quand je suis sous GNU/Linux Ubuntu.

À défaut de mieux, je me suis résolu à créer quelques scripts shell qui sont loin d’être aussi efficaces que Notational Velocity, mais avec lesquels j’arrive à me débrouiller.

Le premier, j’en ai déjà parlé ici, permet de créer une nouvelle note préformatée et nommée comme je les aime. D’un simple raccourci clavier, cette fenêtre s’affiche pour me permettre de nommer la note :

notes-web

Elle est alors affichée dans Gedit (ou autre, selon mon choix du moment), préremplie selon mes besoins :

notes002-web

J’ai un autre script, une simple fonction enregistrée dans mon ~/.bashrc cette fois, qui fait à peu près la même chose depuis le Terminal, en utilisant nano comme éditeur (on n’a pas toujours envie de sortir du Terminal) :

nano001-web

Il me suffit de taper mknote suivi du nom du fichier (sans espaces) pour que la note soit créée, nommée et préremplie, puis affichée :

nano002-web

Rechercher

Sur le nom des fichiers

Selon la situation, j’utilise la recherche sur le nom des fichiers qui est intégrée à Nautilus, par un simple Ctrl+F.

Quand je suis dans le Terminal, je me suis aussi créé une fonction (définie dans mon ~/.bashrc) :

function sfn { find ~/Dropbox/perso/Archives -iname "*$1*" -type f -print | sort -r }

En tapant sfn suivi d’un espace et d’un mot, le script va le rechercher dans le nom des fichiers.

Dans les notes

function sinf { grep -wil -c $1 ~/Dropbox/perso/Archives/*.markdown | sort -r grep -wil -c $1 ~/Dropbox/perso/Archives/*.pdf | sort -r }

Même principe, sauf que sinf suivi d’un mot cherchera ce mot dans les notes.

Comme vous le voyez, je limite la recherche dans les notes à certains formats. Pourquoi ? Pour la même raison que j’utilise deux fonctions de recherche au lieu de une seule : la recherche dans les notes est beaucoup plus lente que ce à quoi nous a habitué Notational Velocity (ou même Spotlight), car grep va chaque fois aller lire le contenu de chaque fichier.

En fait, c’est tellement lent de passer par grep (j’ai des milliers de fichiers) que, la plupart du temps, je ne cherche dans le fichier qu’après l’avoir ouvert dans Gedit ou un autre éditeur. Je n’utilise grep que si je ne parviens vraiment pas à retrouver le bon fichier autrement.

J’ai bien testé des outils comme Tracker, mais ou bien je n’arrive pas à la faire fonctionner de façon fiable, ou bien je n’arrive pas à afficher les résultats d’une façon qui me soit utile.

Bref, la recherche dans les fichiers est pénible alors que la recherche sur leur nom marche bien. Ça tombe bien, car je stocke déjà pas mal d’informations à ce niveau : cela me suffit souvent.

Ils sont nuls tes scripts

Les spécialistes l’auront compris en voyant mes scripts et mes commentaires : je suis tout sauf un programmeur ou un gourou du shell. Il y a certainement de meilleures façons de faire, plus rapides et/ou plus simples.

Si vous avez de meilleurs outils à me proposer ou des suggestions à faire pour améliorer ces scripts, je suis preneur 🙂

Une conclusion ?

Voilà comment ça se passe pour le moment. Mais ça évolue en permanence, selon mes expérimentations.

Si je devais malgré tout conclure quelque chose, c’est que la différence d’approche entre NV (et la recherche en général sous Mac OS X) et les applications sous GNU/Linux est assez pénible à concilier :

  • Sous OSX (et encore plus sous NV), on est encouragé à créer un fichier pour chaque note : plus il y a de fichiers, plus la recherche sera efficace et rapide.
  • Sous GNU/Linux, probablement aussi parce que mon savoir-faire est limité, c’est tout le contraire : il est bien plus facile de chercher dans un seul gros fichier texte que dans une multitude. Emacs, par exemple dispose de superbes outils pour gérer nos notes dans un immense fichier interminable.

C’est étonnant qu’une approche qui soit à la fois aussi conviviale et efficace que celle de Notational Velocity (et que Spotlight dans Mac OS X), qui soit à la portée d’à peu près tous les utilisateurs quel que soit leur niveau d’expérience, ne semble pas/si peu rencontrer d’échos dans la communauté des devs libres (à l’exception de Tomboy).

Sur le même sujet :