Mes logiciels préférés
Dans mes articles concernant les distributions ou les logiciels phares du logiciel libre, je me suis efforcé de rester aussi objectif que possible, que les logiciels abordés dans ces articles correspondent ou non à mes préférences personnelles dans leurs différents domaines d’application.
Mais je me suis dit qu’il pouvait être intéressant que j’aborde dans un autre article mes logiciels préférés, car comme ce sont ceux que j’utilise évidemment le plus, ce sont également ceux dont je peux le mieux parler. Cet « autre article » est celui que vous avez présentement sous les yeux.
A l’instar de l’approche proposée dans l’article traitant des logiciels phares, mes logiciels préférés sont exposés ci-dessous par domaines d’application.
- Système d’exploitation : NixOS
- Environnement graphique : Xmonad
- Edition de texte : (g)Vim
- Conversion de documents : Pandoc
- Gestionnaire de fichiers : Vifm
- Navigation web : Firefox
- Courrier électronique : Thunderbird
- Construction de sites web : Hakyll
- Divers outils en ligne de commande
- Autres domaines d’application sans préférences très marquées
Système d’exploitation : NixOS
Dire que l’on utilise un système d’exploitation libre revient quasiment à dire que l’on utilise une distribution GNU/Linux. Il existe bien quelques autres systèmes, comme les distributions BSD. Mais leur utilisation est considérablement moins répandue que celle des distributions GNU/Linux.
En tous cas, en ce qui me concerne, c’est bien vers GNU/Linux que je me suis tourné.
Après mes débuts avec Debian (Potato) à la fin des années 1990, j’ai successivement utilisé un certains nombre d’autres distributions : Ubuntu, Kubuntu, OpenSuse, Arch Linux, Fedora, Gentoo…
Depuis 2018, c’est sur la distribution NixOS que j’ai jeté mon dévolu. Ce qui m’a attiré en NixOS tient essentiellement en 2 points :
Tout d’abord, quelques années auparavant, soit vers 2015, j’ai découvert la programmation fonctionnelle et j’ai commencé à sérieusement m’y intéresser, notamment à travers le langage de programmation Haskell.
C’est précisément cet intérêt pour la programmation fonctionnelle qui m’a amené, au gré de mes recherches sur Internet, à découvrir NixOS. C’est que son gestionnaire de paquet attitré, Nix, a été conçu en puisant abondamment dans les théories sous-jacentes à cette forme de programmation.
Avec l’enthousiasme d’un nouvel utilisateur GNU / Linux, j’ai passé plusieurs années à utiliser diverses versions d’Ubuntu, que je ré-installais religieusement tous les 6 mois pour suivre la sortie des nouvelles versions (après avoir constaté que les mises à jour de version par le gestionnaire de paquets se soldaient systématiquement par des échec partiels ou complets).
Mais cette gymnastique à fini par me lasser. J’en ai en effet eu assez de ré-installer régulièrement mon système et mes applications. J’aspirais désormais à disposer d’un système plus stable et prèt à utiliser en continu, tout en demeurant raisonnablement à jour.
Je me suis alors intéressé au concept de « rolling release » dans un premier temps avec Arch Linux. Cela a tenu quelques mois, jusqu’à ce qu’une mise à jour du gestionnaire de paquets (Pacman) fiche tout en l’air et m’oblige à ré-installer.
C’est alors que je me suis tourné vers Gentoo, distribution que j’ai appréciée et que j’ai utilisée de nombreux mois, me permettant de conclure qu’il s’agissait là d’une « rolling release » qui tenait effectivement la promesse de ne plus avoir à ré-installer. Cela rendait acceptable la quantité d’efforts qu’impose Gentoo lors de l’installation initiale d’une machine, sensiblement plus importante qu’avec la plupart des autres distributions.
En effet, pour distribution les plus simples, cela se compte en heures. Pour d’autres, un peu plus complexes, cela se compte en jours. Mais pour Gentoo, entre les temps de compilation et la maîtrise des « USE flags », cela peut prendre plusieurs semaines avant d’avoir le système qui vous convient finalement, avec toutes les applications dont vous jugerez avoir l’usage.
Mais vint un jour où ma machine me lâcha matériellement. Je devais donc en racheter une autre et… la ré-installer. Et comme j’envisageais d’en acheter encore d’autres derrière, cette perspective de repasser (plusieurs fois) par le processus d’installation de Gentoo ne m’enchantait guère.
A peu près à la même époque je découvrais NixOS. Je faisais le deuil de l’idée de « rolling release », mais je me consolais avec le fait que l’approche fonctionnelle de NixOS permettait de décrire entièrement le système à installer dans un fichier
configuration.nix. Ce fichier étant utilisable d’une réinstallation à la suivante et même d’une machine sur l’autre, cela rendrait plus supportable le processus de ré-installation.En fait, je devais également me rendre compte par la suite que le processus de mise à jour du système d’une version vers la suivante fonctionne effectivement.
Environnement graphique : Xmonad
Pour quelqu’un qui aurait l’habitude d’utiliser un système d’exploitation propriétaire, comme Windows ou MacOS, et qui passe à un système libre, comme GNU/Linux ou BSD ; l’un des aspects les plus déroutants est sans doute le vaste choix possible parmi un grand nombre d’environnements graphiques différents.
J’utilise ici le terme « environnement graphique » au sens large. Il peut désigner aussi bien des environnements de bureau intégrés complets comme Gnome, KDE Plasma ou Enlightenment que de simples gestionnaires de fenêtres comme Openbox, Window Maker ou… XMonad.
Autant d’environnements graphiques, autant de choix ergonomiques différents (subtilement ou radicalement).
Les utilisateurs qui ne connaissent que Windows ou MacOS ne se figurent pas à quel point les approches ergonomiques immaginables peuvent être nombreuses et différentes ; parfoit radicalement.
En particulier, ils ignorent souvent l’existance même de l’approche des gestionnaires de fenêtres pavants (ou gestionnaires « en tuiles », appelées « tiling window managers » en anglais).
Windows comme MacOS (et comme Gnome, KDE Plasma, Cinnamon ou encore Enlightenment, les environnements les plus populaires pour GNU/Linux) proposent des systèmes de fenêtrage flottants. Cela signifie que les fenêtres peuvent être maximisées, minimisées, redimensionnées, déplacées et surtout qu’elles peuvent se chevaucher les unes les autres. Tout ceci se fait généralement en utilisant la souris.
Avec un système de fenêtrage pavant, c’est le système qui se charge automatiquement de l’agencement des fenêtres plutôt que l’utilisateur avec sa souris. Toutes les fenêtres présentes à l’écran son agencées automatiquement, en fonction d’un mode spécifié, pour couvrir la totalité de la surface disponible sans se chevaucher les unes les autres.
Je conçois que simplement expliqué en ces quelques mots, sans démonstration visuelle, cela puisse paraître confu et d’une utilité douteuse. Pire, cela pourrait apparaître comme une grosse perte de pouvoir de l’utilisateur, puisqu’il ne peut plus redimensionner librement ses fenêtres.
Mais il y a évidemment quelques précisions à apporter à ce sujet :
En premier lieu, cette gestion automatisée des fenêtres ne peut se révéler satisfaisante que si elle est accompagnée d’un autre élément d’ergonomie courant sur GNU/Linux mais inconnu des utilisateurs de Windows1 : la possibilité de disposer de bureaux virtuels multiples.
Les bureaux virtuels multiples sont une innovation apparue dans les années 1980 sur ordinateurs Amiga. Il s’agit, sur un seul et même écran physique, de proposer plusieurs écrans logiques entre lesquels on peut naviguer par des raccourcis clavier ou à la souris au moyen d’un paginateur présent dans une barre de tâches.
Ces bureaux virtuels sont incroyablement pratiques et je suis tout simplement médusé qu’il existe encore des systèmes qui ne les proposent pas (et pas des moindre puisqu’il s’agit du système qui est encore largement le plus installé sur ordinateurs personnels). Ils permettent de lancer de nombreuses fenêtres sans que l’environnement de travail affiché à l’écran ne devienne un foutoir ingérable.
Il est ainsi par exemple possible de lancer sur un premier bureau virtuel un navigateur et un logiciel de courrier électronique pour ses communications générales, puis sur un deuxième un traitement de texte et un tableur concernant un projet sur lequel on est en train de travailler, puis sur un troisième un logiciel d’édition graphique pour retoucher les photographies des vacances de l’été dernier… On peut ainsi attribuer à chaque bureau virtuel une tâche et passer de l’un à l’autre pour n’avoir à l’écran que les fenêtres impliquées par la tâche à laquelle on veut s’atteler à un moment donné, sans pour autant avoir à fermer les fenêtres relatives aux autres tâches auxquelles on voudra revenir plus tard.
Les bureaux virtuels permettent donc de lancer un grand nombre de fenêtres simultannément sans avoir un grand nombre de fenêtres présentes à l’écran à un moment donné. Ceci rend viable l’approche pavante, qui n’est véritablement utile qu’avec au maximum deux ou trois fenêtres présentes à l’écran au même moment.
Ensuite, les (bons) gestionnaires pavants proposent différents modes d’agencement automatiques qui permettent un certain degré d’adaptation à différentes situations.
Il est possible, généralement via un simple raccourci clavier, de passer de l’un à l’autre de ces modes d’agencement ce qui repositionne en conséquence les fenêtres présentes à l’écran.
Ces modes d’agencement ne permettent certainement pas un contrôle aussi fin que des redimensionnements et des déplacements de chaque fenêtre à la souris. Mais l’activation d’un seul raccourci clavier permet un ré-agencement de toutes les fenêtres présentes à l’écran d’un seul coup et, pour peu que ce nouvel agencement s’avère suffisamment satisfaisant, le gain de temps est tout simplement énorme quand on met bout à bout tout le temps passé par un utilisateur de fenêtres flottantes à repositionner ces dernières.
Ce que j’évoquais précédemment comme pouvant être vécu comme une perte de pouvoir devient alors en fait un élément au contraire perçu comme libérateur. Ce n’est pas seulement qu’on « ne peut plus » redimensionner ses fenêtres à la main. C’est qu’on n’a plus besoin de le faire. On laisse la machine s’en charger et on peut se concentrer sur ce qu’on a vraiment à faire.
Les gestionnaires pavants sont en fait plus conformes que les gestionnaires flottants à un mot d’ordre qui résume mon idée de l’informatique :
La Machine existe pour satisfaire les besoins de l’Homme et pas l’inverse.
Autrement dit, si une tâche basique, fastidieuse et répétitive peut être automatisée, c’est pour le mieux. En revanche si l’humain doit effectuer des tâches basiques, fastidieuses et répétitives pour permettre à une machine de fonctionner correctement, alors on a probablement à faire à un cas d’automatisation mal pensée.
Dans une certaine mesure, et toutes proportions gardées, c’est un peu le cas des gestionnaires flottants pour lesquels l’utilisateur va devoir effectuer la tâche basique, fastidieuse2 et répétitive de redimensionner des fenêtres.
Il existe plusieurs de ces gestionnaires pavants pour GNU/Linux. J’ai jeté mon dévolu sur XMonad, principalement pour le fait qu’il est écrit avec le langage de programmation Haskell qui se trouve être un langage que j’affectionne particulièrement et que j’ai commencé à étudier à peu près à la même période.
XMonad se configure d’ailleurs en écrivant des extensions en langage Haskell. Passer à XMonad au moment ou je voulais approfondir mes connaissances en langage Haskell était donc également pour moi l’occasion de faire d’une pierre deux coups (quoique la simple configuration de XMonad ne recquiert finalement pas des connaissances vraiment approfondies en langage Haskell).
XMonad propose, de base 3 modes d’agencement :
- Le mode horizontal (mode « Tall »)
-
Dans ce mode, une fenêtre est considérée comme principale et occupe la totalité de la partie gauche de l’écran. Cette « partie » gauche correspond par défaut à la moitié de la largeur de l’écran mais peut facilement être redimensionnée avec des raccourcis clavier (dans ma configuration,
Meta+Shift+←permet de la réduire sur la gauche etMeta+Shift+→permet de l’étendre sur la droite).Toutes les autres fenêtres se répartissent la partie droite de l’écran en se positionnant les unes au dessus des autres et en se partageant à parts égales l’espace vertical de cette zone.
Il est possible, toujours par des raccourcis clavier (mais aussi par la souris), de sélectionner les différentes fenêtres présentes à l’écran et de promouvoir la fenêtre actuellement sélectionnée comme fenêtre principale. Elle permute alors sa position avec celle de la précédente fenêtre principale.
- Le mode vertical (mode « Mirror Tall »)
- Il s’agit d’un mode qui fonctionne de façon analogue au précédent, mis à part le fait que la zone de la fenêtre principale couvre non pas la partie gauche de l’écran mais sa partie haute et que les autres fenêtres ne se répartissent pas verticalement sur la partie droite mais horizontalement sur la partie basse.
- Le mode plein écran (mode « Full »)
-
Dans ce mode, la fenêtre sélectionnée occupe la totalité de l’espace disponible à l’écran et les autres fenêtres sont cachées « derrière », comme elles le seraient dans une gestion flottante avec des fenêtres maximisées.
Il est là encore possible de changer de fenêtre sélectionnée par des raccourcis clavier. J’utilise notamment
Meta+Tabde la même façon que les utilisateur de Windows utilisentAlt+Tab.
J’utilise la plupart du temps le mode plein écran. Rétrospectivement, à l’époque ou j’utilisais des gestionnaires de fenêtres flottants, j’utilisais quasiment systématiquement des fenêtres maximisées. Le mode plein écran de XMonad me permet donc de gérer la plupart des cas d’utilisation dont j’ai pris l’habitude. Je n’ai juste plus besoin de cliquer sur une icône de maximisation quand je lance une nouvelle fenêtre.
Le mode horizontal me sert notamment quand je veux effectuer des copies de fichiers.
J’invoque alors deux fenêtres de gestionnaires de fichiers, une pour la provenance et une autre pour la destination.
Ces deux fenêtres viennent alors automatiquement ce coller l’une à l’autre, chacune sur une moitié d’écran, sans que j’ai à les positionner à la souris ou avec des raccourcis clavier comme Meta+← et Meta+→ comme je devais le faire à l’époque à laquelle j’utilisais Gnome.
Un autre avantage de cette approche est qu’elle rend inutile la présence d’une barre d’entête de la fenêtre pour y faire figurer des boutons de maximisation et de minimisation ou pour la déplacer. De même, les bordures de fenêtres, habituellement utilisées pour permettre leur redimensionnement, n’ont plus besoin d’être suffisamment épaisse pour permettre leur manipulation avec la souris.
Ceci représente autant de surface gagnée à l’écran et qui peut être dévolue au contenu utile de la fenêtre plutôt qu’à sa gestion pour l’environnement graphique. Seule subsiste autour de chaque fenêtre une petite bordure d’un seul pixel d’épaisseur et qui passe au rouge pour indiquer visuellement laquelle des fenêtres présentes à l’écran est actuellement sélectionnée.
Comme cela peut être déduit des précédents paragraphes, l’accent est mis sur l’utilisation de raccourcis clavier. De fait, les gestionnaires pavants sont attractifs surtout pour les utilisateurs qui, comme moi, intéragissent avec la machine plus volontier par le clavier que par la souris. Il s’agit là d’un fondement même de leur existance.
Le but est d’éviter de perdre du temps à sans cesse passer du clavier à la souris pour ensuite revenir au clavier… Un tel environnement prend donc tout son intérêt avec une sélection de logiciels qui sont eux-mêmes pilotables au clavier. Cet impératif se ressent évidemment sur le reste de la sélection de logiciels exposée dans le présent article.
Comme XMonad est entièrement configurable via des extensions écrites en langage Haskell, il est possible de choisir les raccourcis clavier utilisés. En ce qui me concerne, j’ai complètement personnalisé ces raccourcis afin qu’ils soient optimisés pour :
L’utilisation une disposition de clavier de type bépo et non pas azerty.
Correspondre à un schéma mnémonique qui me convient et qui m’aide à les retenir :
J’utilise des raccourcis à base de touche
Meta(la touche avec le logo Windows sur la plupart des claviers) pour interagir avec l’environnement graphique lui-même et sa disposition.J’ai configuré douze bureaux virtuels, chacun accessible directement par un raccourcis constitué de la touche
Metaet d’une des douze touches de fonction numérotées qui figurent sur la rangée du haut de la plupart des claviers.Les mêmes raccourcis clavier avec la touche
Shiften plus me permettent d’envoyer la fenêtre sélectionnée vers le bureau virtuel désigné.Meta+←me permet de passer au bureau virtuel précédent celui qui est actuellement affiché.Meta+→me permet de passer au bureau virtuel suivant celui qui est actuellement affiché.Là encore, les mêmes raccourcis clavier avec la touche
Shiften plus me permettent d’envoyer la fenêtre sélectionnée vers le bureau virtuel désigné.Meta+Espaceme permet de changer le mode de disposition (horizontal, vertical ou plein écran) en vigueur sur le bureau virtuel actuellement affiché.Meta+Alt+←me permet de réduire la taille de la partie d’écran dévolue à la fenêtre considérée comme principale.Meta+Alt+→me permet d’augmenter la taille de la partie d’écran dévolue à la fenêtre considérée comme principale.
J’utilise des raccourcis à base de touche
Altpour tout ce qui concerne le lancement d’applications. Je dispose ainsi de lanceurs directs pour la poignée de logiciels que j’utilise la plupart du temps :Alt+e(comme « éditeur ») pour lancer un éditeur de texte.Alt+f(comme « fichiers ») pour lancer un gestionnaire de fichiers.Alt+m(comme « messagerie ») pour lancer un client de courrier électronique.Alt+w(comme « web ») pour lancer un navigateur.Alt-p(comme « programmes ») me permet de lancerdmenu, qui est un petit utilitaire permettant de lancer n’importe quel programme installé en tapant quelques caractères pour affiner une liste de propositions.Alt+Shift+cme permet de fermer la fenêtre sélectionnée (pour le cas où le logiciel affiché par cette fenêtre ne proposerait pas lui-même de raccourci clavier pour le fermer).
J’utilise enfin des raccourcis à base de touche
Ctrlpour interagir avec les différents logiciels lancés.Ces raccourcis ne sont pas définis dans XMonad mais dans les logiciels eux-mêmes. C’est même précisément parce qu’ils définissent généralement des raccourcis basés sur la touche
Ctrlque je m’abstient d’en définir dans XMonad.
J’utilise XMonad conjointement avec le programme XMobar qui apose en haut de l’écran une petite barre d’état, entièrement configurable, permettant d’afficher des informations utiles en permanence et visibles sur tous les bureaux virtuels. Je l’ai personnellement configurée pour afficher les informations suivantes :
Les numéros des bureaux virtuels occupés par au moins une fenêtre. Le numéro bureau virtuel actuellement affiché apparaît de couleur jaune plutôt que blanche et entre crochets.
Quand je regarde ma barre d’état et qui j’y vois par exemple « 1 [2] 5 », je sais en un seul coup d’œil que :
- Je suis sur le bureau virtuel portant le numéro 2.
- Que les bureaux virtuels portant les numéros 1 et 5 sont occupés par des fenêtres.
- Que les bureaux virtuels portant les numéros 3, 4, 6, 7, 8, 9, 10, 11 et 12 sont vierges de toute fenêtre.
Le mode de disposition en vigueur sur le bureau virtuel actuellement affiché.
Le titre de la fenêtre actuellement sélectionnée sur le bureau virtuel actuellement affiché.
Le pourcentage de puissance de calcul du processeur actuellement utilisée.
Le pourcentage de ménoire vive actuellement utilisée.
Le pourcentage de mémoire swap actuellement utilisée.
La date et l’heure.
La température, communiquée par la station météo de l’aéroport Lyon Saint Exupéry, qui est le grand aéroport le plus proche de chez moi.
Tout ceci me donne un système qui obéit au doigt et à l’œil (littéralement, pour ce qui concerne le doigt).
Edition de texte : (g)Vim
Vim est, avec GNU Emacs, l’un des deux gros monuments parmi les éditeurs de texte. Et il entretient avec ce dernier, dans le cœur des hackers, une certaine rivalité.
Au vu de certains échanges sur des forums sur Internet, cette rivalité semble même parfois tourner à la guerre de religion.
Mes premières années d’utilisation de logiciels libres m’ont en fait vu être un fervent utilisateur de GNU Emacs. Les premiers contacts lors de mes études avec Vi, dont Vim est un descendant, ne m’en avaient pas laissé un souvenir impérissable. Et puis à cette époque à laquelle je découvrais les logiciels libres, notamment à travers le projet GNU, il suffisait que ce soit l’éditeur de texte de Richard Stallman pour que je veuille l’utiliser aussi.
Mais plus récemment, j’ai voulu en avoir le cœur net et évaluer Vim pour le comparer avec Emacs de façon circonstanciée. Ce que j’ai alors appris de l’utilisation de Vim m’a conquis :
Vim est un éditeur modal, peut être le dernier de ce genre à être encore substanciellement utilisé dans le monde.
Cet aspect peut initialement être un repoussoir, car quand on tape des caractères dans un éditeur, on s’attend intuitivement à ce que ces caratères soient intégrés dans le texte édité à la position où clignote le curseur. Avec Vim, ce n’est pas ce qui se passe de prime abord. Il faut d’abord activer une commande pour passer de son mode « Normal » à son mode « Insertion », ce qui s’effectue via la commande
ipour « insérer avant » ouapour « insérer après ».Mais la présence de modes autres que celui qui permet d’insérer du texte fait aussi la grande force de Vim. Dans son mode normal, il propose tout un assortiment de commandes qui permettent de naviguer dans le texte et de le manipuler avec une très grande efficacité.
Qui plus est, ces commandes son combinables entre elles. Ainsi toute commande qui permet de désigner une portion de texte, qu’il s’agisse d’un caractère, d’un mot, d’une ligne ou encore d’un paragraphe, peut être combinée avec toute commande agissant sur une portion de texte, qu’il s’agisse de la supprimer, de la copier ou encore de la passer en majuscules.
Cette composabilité est, de mon point de vue, un énorme avantage que possède Vim sur Emacs. D’une part, elle permet de plus facilement mémoriser les commandes car ce sont les mêmes combinaisons de touches qui sont sans cesse utilisées et recombinées entre elles, là où pour Emacs chaque combinaison de commande de Vim doit donner lieu à une commande unique distincte et avec son propre raccourci clavier.
D’autre part, cette composabilité permet de faire des choses qui ne sont tout simplement pas possibles avec d’autres éditeurs ; y-compris Emacs.
Supposons par exemple que l’on veuille créer un fichier avec la ligne « Voici le texte. » présente un million de fois. Avec Vim il suffit de taper la première ligne, de repasser en mode normal et de taper la commande :
yy999999p.yyva copier la ligne présente sous le curseur.999999pva la coller 999999 fois, ce qui ajouté à notre première ligne initiale produira notre million de lignes.
Je n’ai trouvé aucun moyen de faire ceci aussi simplement avec quel qu’autre éditeur de texte que ce soit ; pas même avec Emacs.
Gestionnaire de fichiers : Vifm
Il existe de nombreux très bons gestionnaires de fichiers pour GNU / Linux. Cela est notamment dû au fait que chaque projet d’environnement de bureau met un point d’honneur à produire son propre gestionnaire de fichiers.
La profusion des environnements de bureau entraîne donc celles des gestionnaires de fichiers. A cela s’ajoutent les gestionnaires de fichiers qui ne sont pas liés à un environnement de bureau en particulier.
Quand j’utilisais un environnement de bureau tel que Gnome, Kde Plasma ou encore Enlightenment, je me contentais d’utiliser le gestionnaire de fichiers attitré. Mais depuis que j’utilise Xmonad, un « simple » gestionnaire de fenêtre, il n’y a plus de choix aussi automatique qui s’impose.
Par ailleurs, à la même époque, mes cas d’utilisation évoluaient. Je commençais notamment à utiliser un ordinateur branché non pas sur un moniteur posé sur un bureau, mais sur un téléviseur trônant dans un salon.
Ceci m’amenais à m’intéresser au fait qu’une application puisse se configurer avec des échelles différentes de polices de caractère : plus petites sur un moniteur de bureau et plus grosses sur un téléviseur. Je découvrais alors que les deux types d’applications qui offraient systématiquement le plus de souplesse sur ce plan sont d’une part les applications web et d’autre part les application à exécuter dans un terminal texte.
Le domaine des applications web est peu fécond en gestionnaires de fichiers. En revanche, celui des applications en terminal texte l’est beaucoup plus. De plus, un certain nombre d’entre elles visent, par les raccourcis claviers qu’elles proposent, à être spécialement attractives pour les utilisateurs de Vim.
Dans cette famille d’application, après avoir utilisé Ranger pendant un peu plus d’une année, je me suis finalement rendu compte que Vifm me plaisait plus, avec son double panneau transformable en prévisualisation.
Conversion de documents : Pandoc
Je déteste les outils du bureautique, en dehors des tableurs auxquels je trouve une vraie utilité. Je déteste en particulier les logiciels de traitement de texte comme Microsoft Word.
Le fait qu’il en existe des libres, comme Libre Office Writer, n’y change rien. Je n’aime pas cette façon de créer des documents.
Un logiciel de traitement de texte ne doit pas être confondu avec un éditeur de texte. Alors que ce dernier ne permet que d’éditer du texte pur, dépourvu de quelle que mise en forme intrinsèque que ce soit, le premier sert à éditer du texte « riche », dans un format de fichier plus sophistiqué qui retiendra également des notions de mise en forme telles que des sauts de page, des polices et des tailles de caractères, des portions en gras ou soulignées…
Ce qui me déplait au plus au point est précisément cet entremêlement des considérations de fond et de forme auquel poussent les logiciels de bureautique. On y passe généralement autant de temps à paufiner et à revenir sur la mise en forme du texte qu’à élaborer son contenu et son sens profond.
Mais d’autres approches sont possibles quand il s’agit de créer des documents. Il existe des langages de définition de documents basés sur des fichiers de texte pur qui sont ensuite interprétés par des programmes chargés de produire des fichiers définitifs en reprenant le contenu et le mettant en forme avec les polices de caractères et autres sauts de pages voulus.
Des exemples célèbres de tels formats sont TeX et LaTeX.
Un autre, plus simple et dont je me sers régulièrement est Markdown. D’ailleurs, les mots que vous êtes présentement en train de lire on été initialement tapés en Markdown avec Vim.
Je me suis donc détourné des logiciels de bureautique pour adopter Markdown, un format texte qui permet de décrire le contenu et la structure d’un document. Ce contenu structuré peut ensuite servir à alimenter un programme capable de générer des documents définitifs et mis en forme dans divers formats de fichiers. Mais encore faut-il disposer d’un tel programme de conversion.
C’est précisément là qu’entre en scène Pandoc. Il s’agit d’un programme utilisable en ligne de commande et capable de prendre en entrée des fichiers dans un certain nombre de formats et de les convertir en sortie dans d’autres formats.
Pour ce qui m’intéresse, il est notamment capable de prendre en entrée des fichiers au format Markdown et de produire en sortie des fichiers aux formats HTML, PDF ou ODT. Il est également capable de produire de fichiers au format DOCX de Microsoft Word, mais je préfère personnellement les formats de fichiers ouverts.
Navigation web : Firefox
Firefox est un véritable emblême du logiciel libre.
Dans les années 1990, deux navigateurs se faisaient concurrence : Netscape Navigator et Microsoft Internet Explorer.
Cette guerre fût gagnée par Internet Explorer qui était alors pré-installé avec Windows, sans possibilité de le désinstaller. Les utilisateurs candides qui n’avaient même pas conscience d’avoir le choix se retrouvaient donc à utiliser Internet Explorer par défaut. Le succès de ce dernier reposait essentiellement sur un défaut de choix de la part de ses utilisateurs plutôt que sur un choix conscient.
Bien que cette pratique ait par la suite été pointée par les instances officielles comme un abus de position dominante pour laquelle Microsoft a été comdamné en 2010 puis en 2013, concernant Netscape le mal était fait et la société ne s’en est pas relevée. Les libristes ne pouvaient qu’enrager de voir une situation de monopole propriétaire se conforter au mépris même des gardes fous les plus conservateurs de la législation sur la concurrence.
Mais dans un ultime effort, la société Netscape a libéré le code de son navigateur, le rendant visible à la communauté des développeurs libristes et leur permettant de le reprendre à leur compte. Ainsi est née la fondation Mozilla et son navigateur Firefox.
Quelques années plus tard, suite à la disparition de son seul concurrent d’envergure, Internet Explorer, alors dans sa version 6, se trouvait dans une position totalement hégémonique sur le marché. Ceci au grand dam des utilisateurs et des développeurs du marché émergeant des applications web, tant le navigateur de Microsoft était limité, lent et peu respectueux des standards du web comme les langages HTML et CSS.
Quand Firefox est sorti avec son rendu des pages plus performant et plus respectueux des standards et en proposant des innovations ergonomiques comme l’ouverture de pages dans des onglets, il a vite commencé à tailler des croupières à Microsoft et à conquérir des parts honorables sur le marché des navigateurs, surtout en Europe.
Au delà de ce succès technique, cette tout un symbôle qu’incarne Firefox. Celui de la possibilité pour un logiciel libre porté par une fondation à but non lucratif de s’attaquer avec succès au pire des monopoles assis sur les pratiques commerciales les moins éthiques.
Firefox a ainsi ouvert la voie et est aujourd’hui rejoint par d’autres navigateurs, dont Chromium et Chrome de Google.
Mais je conserve ma préférence pour Firefox, non pas seulement pour le symbôle qu’il représente dans l’histoire des logiciels libres, mais également pour le nombre et la qualité de ses extensions qui peuvent réellement transformer l’expérience Internet. Je ne pourrais par exemple plus me passer d’un bloqueur de publicités, et à ce que j’ai constaté c’est avec Firefox qu’ils fonctionnent le mieux.
Courrier électronique : Thunderbird
Thunderbird est le complément logique de Firefox, le courrier électronique étant avec la navigation web la principale utilisation grand public d’Internet.
Avec Thunderbird, le courrier électronique est globalement un problème résolu. C’est pourquoi le développement de ce logiciel est plus ou moins en sommeil ; non pas que le projet soit abandonné, mais il n’y a plus vraiment de problèmes à résoudre.
Après avoir utilisé des environnements du bureau intégrés comme Gnome ou KDE Plasma, avec leurs logiciels de courrier électroniques associés (respectivement Evolution et KMail), je suis revenu à Thunderbird et j’ai apprécié le fait qu’il ne cherche justement pas à s’intégrer à un environnement global.
Le fait est que j’utilise un certain nombre de boîtes aux lettres électroniques différentes, toutes configurées en IMAP dans mes logiciels de courrier électronique. L’accès à chacune de ces boîtes aux lettres est évidemment protégé par un mot de passe qu’il serait fastidieux de devoir retaper à chaque fois.
Heureusement, tout logiciel de courrier électronique peut être configuré pour retenir les mots de passe et ne pas demander à l’utilisateur de les retaper à chaque fois. Mais avec les logiciels intégrés aux environnements de bureaux, quand ils sont ainsi configurés, c’est le portefeuille centralisé de mots de passe de l’environnement de bureau qui prend le relai et qui demande, à chaque fois, de taper le mot de passe maître qui se substitut à tous les mots de passe spécifiques à chaque boîte aux lettres.
Je conviens qu’il est moins fastidieux de taper un mot de passe maître qu’autant de mots de passe que je possède de boîtes aux lettres. Mais avec Thunderbird, les mots de passe sont définitivement mémorisés par le logiciel de courrier lui-même et je ne suis jamais sollicité pour taper, encore et encore, toujours le même mot de passe.
Construction de sites web : Hakyll
Hakyll, comme XMonad et Pandoc, est un logiciel que j’ai découvert en étudiant le langage de programmation Haskell.
Il s’agit d’un générateur de sites statiques prenant la forme d’une bibliothèque en langage Haskell, qui s’appuie sur Pandoc et qui remplace les makefiles que j’utilisais auparavant avec ce dernier et GNU Make pour générer mes sites web à partir de fichiers Markdown.
Plus exactement, il s’agit d’une bibliothèque Haskell qui me permet d’écrire simplement un programme dans ce langage pour générer un site web à partir d’un ensemble de fichiers de contenu en Markdown et de fichiers modèles de pages web en HTML.
Le présent site est bien évidemment généré à l’aide d’Hakyll.
Divers outils en ligne de commande
Je ne rechigne pas à utiliser la ligne de commande plutôt qu’un logiciel graphique quand cela me paraît être une solution plus efficace. La ligne de commande présente en particulier l’avantage de ne pas rompre le flot de trvail des utilisateurs qui, comme moi, prèfèrent une ergonomie basée sur l’utilisation du clavier plutôt que de la souris.
Parmi les commandes qui m’épargnent un temps appréciable pour des opérations que j’effectue régulièrement :
mmvpour renommer des fichiers en masse.mogrify, de la suite ImageMagick, pour effectuer des manipulations d’images en masse.
Autres domaines d’application sans préférences marquées
Les logiciels cités dans les précédentes sections couvrent l’essentiel de l’utilisation que je fais d’ordinateurs (hors de mon cadre professionnel, dans lequel je n’ai pas le choix de tous les logiciels que j’utilise).
Il existe néanmoins d’autres domaines d’application qui, soit me sont d’un usage moins régulier, soit sont des domaines pour lesquels le choix d’un logiciel plutôt qu’un autre ne m’as pas paru si important ou produisant une réelle différence d’expérience. Je vais tout de même citer ces logiciels que j’utilise plus ou moins régulièrement sans que cela corresponde à un choix spécialement engagé de ma part :
- Edition de graphismes matriciels : le Gimp
-
L’usage que j’ai d’un tel logiciel, pour effectuer quelques retouches basiques de photographies, est des plus rudimentaires en comparaison de tout ce que ce logiciel peut apporter à un utilisateur plus averti.
- Edition de graphismes vectoriels : Inkscape
-
Même commentaire que pour le Gimp.
- Lecture audio : Cmus
-
J’écoute rarement de la musique sur mon ordinateur. J’en écoute plutôt sur un baladeur numérique quand je marche ou en voiture sur mon autoradio.
Ceci étant, quand il m’arrive d’écouter de la musique sur ordinateur, j’utilise Cmus.
Il s’agit d’un logiciel s’exécutant dans un terminal texte, ce qui me le rend utilisable aussi bien sur un moniteur de bureau que sur une télévisions de salon.
Petite précision : je suis un adepte du format audio FLAC ; ce qui nous amène à…
- Conversion de CD audio en fichiers numériques (au format FLAC) : Asunder
-
Ce logiciel me satisfait par le fait qu’il peut être configuré pour produire des fichiers dont les noms suivent un format proche de celui que je veux obtenir en définitive et qui demande donc peu de retouches (retouches que j’effectue avec
mmv). - Lecture vidéo : Kodi / Firefox.
-
Je visionne rarement des fichiers vidéo sur mon ordinateur. Je préfère le confort d’une télévision dans un salon.
Sur cette télévision est branché un mini PC sur lequel est installé NixOS. C’est avec Kodi, un logiciel graphique dont l’interface passe bien sur télévision, que je regarde mes vidéos stockées localement.
Pour ce qui est des vidéos en ligne (Youtube, Twitch …), les capacités du lecteur vidéo intégré à Firefox me suffit amplement.
Apparement, les utilisateurs de MacOS peuvent quant à eux bénéficient de cette innovation depuis la version OS X 10.7, sorti en octobre 2010 ; ce qui me parait incroyablement tardif pour un système Unix et qui me fait douter du fait que leur emploi soit véritablement répandu chez les utilisateurs de ce système d’exploitation. J’en suis médusé quand je vois à quel point il me serait personnellement devenu difficile de m’en passer.↩︎
Le terme de « fastidieux » peut paraître un peu exagéré s’agissant de redimensionner des fenêtres. Toujours est-il que je ne connais personne qui en ait fait une activité de loisir à part entière.↩︎





