Un desktop suckless
Mû par une détestation des interfaces graphiques qui se pilotent à la souris1, j’ai voulu me mettre à Mutt il y a environ deux ans. Ce fut l’occasion pour moi de découvrir un paradigme beaucoup plus adapté à mes lubies. Avec Mutt, on peut lire ses mails sans quitter sa session tmux, les trier très rapidement, écrire ses mails avec son éditeur favori (vim !) et plein d’autres choses encore. Mais commencer à s’en servir, c’est mettre le doigt dans l’engrenage.
Quand on lit ses mails dans son terminal, on ressent vite la tentation d’avoir plus d’outils en ligne de commande; le calendrier et les contacts notamment. Clémentine est un très bon programme pour écouter de la musique, mais c’est tellement épuisant de devoir jongler entre le clavier et la souris quand on lit ses mails dans son terminal. Et GNOME, son interface énorme avec ses fenêtres énormes et leur tout petit bouton pour les fermer. Sans parler des options d’IA rajoutées dans leurs dernières versions… Est-ce qu’utiliser un desktop n’était pas suffisament frustrant comme ça ?
Deux ans plus tard, j’ai sombré. Si on était pas autant accros à toutes ces plateformes merdifiés (je me soigne pourtant), je pourrais presque me passer d’interface graphique. J’ai réussi à trouver une alternative en ligne de commande (ou en tout cas qui tourne dans un terminal) à la plupart des outils usuels. Je n’utilise plus Mutt, je fais bien pire maintenant: de la synchro IMAP avec isync, j’indexe une partie de mes mails avec notmuch et je lis tout ça avec aerc. Pour les contacts et le calendrier, j’utilise un combo de vdirsyncer, khal et khard. J’ai remplacé Clémentine par cmus. J’utilise pass pour gérer mes mots de passe. Quand j’ai besoin d’explorer mon arborescence de fichiers, j’utilise nnn. Je me suis même mis aux flux RSS, que je surveille avec newsraft. J’utilise encore firefox, mais je passe regulièrement par w3m pour consulter des pages web (surtout de la doc) ou pour lire ces maudits mails qui me sont envoyés au format HTML. Pour ce qui est de GNOME, après un bref passage sur i3 je suis tombé dans le rabbit hole de suckless.org.
Suckless.org, c’est un groupe de gatekeepers frustrés2 par les logiciels pourris qu’on doit utiliser au quotidien.
Ils ont documenté, codé et maintiennent des alternatives moins nulles: software that sucks less.
C’était d’ailleurs la devise de Mutt à l’origine: All mail clients suck. This one just sucks less.
Le résultat de cette démarche, ça donne dwm et dmenu, ainsi que tout un tas d’outils minimalistes et qui ont été pensés pour être utilisés au clavier.
Ce sont des outils conçus avec la philosophie Keep It Simple & Stupid.
Ils ne font qu’une seule chose, mais ils le font bien, et vite.
Ils font quelques millier de lignes de code maximum et peuvent être modifiés et/ou debuggés si besoin.
Leur configuration se fait dans un fichier config.h qui est compilé.
ça rend malheureusement l’utilisation de ces programmes un peu difficile via les gestionnaires de paquets, parce que pour pouvoir les configurer il faut fournir la configuration au moment de la compilation (il doit y avoir des choses rigolotes à faire avec NixOS de ce coté là).
Heureusement, ils sont tous très stables et suffisament complets pour ne pas avoir besoin de bricoler très souvent avec.
Concrètement, je n’ai eu besoin de toucher à la configuration que de dwm, st, slock et slstatus.
Tout ça a changé la manière dont je conçois l’usage d’un PC. J’ai pu me libérer de la plupart des frictions qui m’embêtaient pour créer un environnement minimaliste adapté à mes besoins. Je n’ai plus l’impression de lutter contre une interface qui me montre des choses que je n’ai pas envie de voir, vous savez ces programmes où une bonne partie de l’écran est occulté par des menus dont on ne sert en fait jamais ? J’ai toujours quelques ennuis par-ci ou par là, mais ceux là résultent d’une réflexion personnelle. C’est un arbitrage à faire entre service rendu (quel est le problème que je veux résoudre) et maintenabilité (à quel point la solution à mettre en place est complexe et difficile à maintenir sur le long terme). En bref, quand quelque chose m’emmerde je fini par regarder ce que je peux bricoler pour régler mon problème.
Le coût d’entrée est élevé, c’est vrai. Je comprends qu’on ait pas tous envie de passer sa soirée à tweaker son système. Il m’a fallu comprendre à peu près comment X11 se lance sur une machine, écrire quelques scripts pour me faciliter la vie (par exemple pour gérer les setups à plusieurs écrans), apprendre le fonctionnement de nouveaux programmes, lire des pages et des pages de manuel… On est jamais à l’abri de faire une boulette non plus, et on peut vite passer sa soirée à chercher pourquoi le driver graphique ne compile plus alors qu’on voulait juste jouer à Dino Run DX. Mais bon, on est jamais mieux servis que par soi-même non ? Et quand on bosse dans l’informatique, qu’on se voit promettre depuis des années un remplacement inéluctable par des générateurs de pâtée pour chien développés par des fascistes, reprendre le contrôle sur son outil de travail ça fait du bien.
Mettre un pied dans ce délire permet de se réapproprier des choses, découvrir des projets et des gens, des communautés. Je suis passé à Mutt il y a deux ans parce que j’ai vu un collègue hyper balèze s’en servir, le même qui m’avait déjà converti à tmux. Ensuite j’ai voulu essayer les tiling window managers parce que j’avais vu un autre de mes collègues utiliser i3 en bossant. Le reste, je l’ai trouvé en explorant encore et encore internet. Et maintenant, j’ai des potes, des collègues qui viennent me voir pour me demander des astuces. Il y a quelque chose de vraiment gratifiant dans le fait de s’échanger nos recettes de cuisines pour nos systèmes. Ça me conforte dans l’idée qu’on peut vivre l’informatique autrement qu’en rageant sur notre Windows merdique et sur les décisions à la con de Micromou.
J’ai encore pas mal de pain sur la planche dans ma quête du setup suckless ultime. En ce moment je lorgne du coté de Void Linux pour bénéficier d’une distro minimaliste qui possède des paquets qui me correspondent plus (chez Debian, newsraft et vba-m ne sont pas packagés par exemple). Ça me permettrais de tester un système linux qui fonctionne sans SystemD aussi, juste pour le fun. Et j’aimerais trouver moyen de remplacer les pop-ups de sélection de fichiers par un appel à nnn (ça c’est pas gagné).
C’est possible que ça ne s’arrête jamais enfait. La communauté des libristes est très prolifique, et on est jamais à l’abri d’entendre parler d’un petit programme tout bête sous license GPLv3 qui va refaire notre journée. Je trouve que l’informatique est quand même vachement moins nulle quand on la vit comme ça. Et mon core-i5 avec ses 4 potits coeurs, ses 8Go de DDR3 et sa RTX 2060 a encore de beaux jours devant lui.
-
Les cliquodromes où il faut 15 clics pour faire une action, attendre 1 seconde entre chaque clic pour que la vue se mette à jour. Zimbra et sa zone d’édition de mail qui est en blanc et qu’on peut pas changer… Beaucoup de problèmes très graves dans ma vie. ↩︎
-
Je parle de gatekeepers à dessein, parce que c’est une communauté assez élitiste. Parfois il y a deux ou trois zinzins qui s’insultent par mailing list à propos de qui a le terminal le plus suckless. C’est un peu dommage parce que si on veut vraiment rendre les softs moins nuls, on peut en profiter pour aider les gens aussi. ↩︎