Introduction
Je me permets un petit disclaimer en introduction pour vous dire que je sais que ce n’est certainement pas le meilleur environnement de travail et que, oui, on peut faire mieux. Cependant, pour ceux qui, comme moi, recherchent un environnement minimaliste axé sur la rapidité et la productivité, je vous invite à découvrir cet article. Il est principalement destiné à vous présenter des outils et des astuces. Je suis convaincu qu’il peut être amélioré, mais je suis désormais très à l’aise avec ce workflow, que je trouve parfaitement adapté à mes besoins.
OS
Pour le choix de mon OS, cela fut assez simple. Je suis un grand fan de Debian, simplement pour sa stabilité. Je l’utilise tous les jours à mon travail et je n’ai jamais été déçu. Cependant, pour la maison, il me fallait un OS avec des packages plus à jour que ce que peut proposer Debian. C’est pour cela que je me suis tourné vers une distribution basée sur ArchLinux. Mon choix s’est arrêté sur EndeavourOS, car elle est connue, elle a une installation facilitée par un installateur graphique (Calamares), très peu de logiciels préinstallés ce qui m’offre une grande liberté pour construire un système sur mesure selon mes besoins, il y a aussi une communauté active et serviable, avec un accent sur l’apprentissage et le support des utilisateur. De plus, j’avais déjà utilisé Manjaro à une époque, avec l’environnement KDE, que j’avais adoré. Alors pourquoi ne pas rester dans l’univers ArchLinux !
Environement de Travail
Quand il s’agit de mon environnement de travail, j’utilise un Tiling Window Manager. En gros, c’est un système qui permet d’organiser les fenêtres automatiquement sans avoir à les déplacer à la souris — tout se fait principalement au clavier. Résultat : je gagne en productivité.
Personnellement, j’ai opté pour I3, surtout par habitude : c’est avec lui que j’ai commencé, et je m’y suis toujours senti à l’aise. Il est simple à configurer, bien documenté, et fait exactement ce dont j’ai besoin. Aujourd’hui, il en existe plein d’autres, souvent plus modernes ou plus esthétiques, mais moi, je reste focalisé sur l’essentiel : l’efficacité. Pas de fioritures, pas d’effets inutiles — juste un environnement sobre et fonctionnel.
Terminal
En ce qui concerne le terminal, j’ai choisi Kitty. C’est un terminal assez connu maintenant. Il embarque pas mal de fonctionnalités intéressantes, comme l’accélération via GPU (OpenGL), ce qui le rend très fluide à l’usage.
Il propose aussi le multiplexage natif, qui permet de découper l’écran en plusieurs parties. Perso, je ne m’en sers pas trop, parce que j’utilise déjà i3 pour gérer mes fenêtres. En revanche, le support des images directement dans le terminal, ça, c’est super pratique !
Côté personnalisation, on est servis : on peut vraiment adapter Kitty à ses besoins. Si ça vous tente, vous pouvez jeter un coup d’œil à mon dotfile où je partage mes configs. Par exemple, j’utilise fastfetch pour afficher une image et quelques infos système au démarrage.
Enfin, le contrôle du clavier est ultra complet, ce qui est un gros plus quand je cherche à optimiser ma productivité. Et on peut aussi configurer des sessions de démarrage, bien pratique pour retrouver son environnement de travail en un clin d’œil.
Shell
Dans mon cas, j’ai opté pour ZSH. Je sais que beaucoup de personnes apprécient aussi Fish, mais contrairement à Bash ou ZSH, Fish n’est pas conforme à POSIX. Cela peut poser des problèmes pour la création de scripts. Comme j’aime partager mes scripts et les faire fonctionner dans tous les environnements, je préfère rester sur ZSH.
Aliases
Vous trouverez ci-dessous des aliases que j’utilise presque tous les jours et qui facilite ma vie dans mon travail.
|
|
Editeur de text
C’est au travail qu’une personne m’a parlé de Vim. Je connaissais déjà cet éditeur, mais je ne l’utilisais qu’à 1 % de ses capacités. En cherchant un peu plus, je suis tombé sur de nombreuses vidéos YouTube où des personnes parlaient du fork de Vim, Neovim. J’ai également découvert des projets open source qui installent des thèmes et des extensions par défaut.
Mon choix s’est donc porté sur LazyVim.
L’avantage de ces projets “tout-en-un” est que vous n’avez pas besoin de créer une configuration de A à Z. La quasi-totalité des outils nécessaires est déjà installée.
C’est donc cette solution que j’ai adoptée.
J’ai tout de même ajouté quelques modifications dans mon fichier de configuration, comme la ligne suivante :
|
|
Cette ligne permet quand je taper ycc
en mode normal de copier la ligne en bas et mettre cette dans haut en commentaire. Hyper pratique !
Packages
Docker
Honnêtement, je ne sais pas encore si je dois vraiment présenter Docker ici, mais c’est un outil que j’utilise quasiment tous les jours. Il me permet de déployer rapidement des environnements, de tester des applis, que ce soit pour du développement web ou des bases de données.
C’est devenu un réflexe dans mes projets. Cela dit, avec l’arrivée de Proxmox dans mon quotidien, je me tourne de plus en plus vers LXC. Et sur nos serveurs de prod, on bosse surtout avec Podman, qui est en gros une alternative à Docker.
Mise
Découvert lors d’un live Twitch de Laluka, “mise” est un excellent outil développé en Rust. Il permet de créer un fichier .mise.toml
à la racine d’un projet, dans lequel on peut spécifier les versions des outils que l’on souhaite utiliser. Ces versions sont ensuite automatiquement configurées.
Par exemple, sur mon projet A, je peux définir une version de Python 2.7, et sur mon projet B, une version 3.10. Grâce à “mise”, il me suffit de me déplacer dans le répertoire de mon projet pour que les bonnes versions soient automatiquement appliquées. C’est simple, efficace et terriblement pratique !
fd
J’ai découvert cet outil, et depuis, je ne peux plus m’en passer. Je vous invite vivement à l’essayer !
C’est un outil qui remplace find
. Tout d’abord, il est beaucoup plus simple à prendre en main. Par exemple, là où find
n’utilise pas les doubles tirets par défaut (on écrit -name
au lieu de --name
), ce qui peut manquer d’intuitivité, fd
, écrit en Rust, est bien plus ergonomique. En plus, il est incroyablement rapide ! Il permet également de filtrer par extension avec l’option -e
, alors qu’avec find
, il faut manipuler des expressions régulières.
Bref, testez-le, vous ne serez pas déçu !
LSD
LSD est un peu comme fd
. Écrit en Rust, son objectif principal est d’améliorer la rapidité de la commande ls
et de rendre sa visualisation plus agréable. Il ajoute des couleurs pour les permissions, ainsi que des icônes, rendant les résultats bien plus lisibles et esthétiques.
- uv
- fzf
Trash
J’ai configuré un alias dans mon fichier .zshrc
, comme mentionné plus haut, pour remplacer la commande rm
. Cela permet de ne pas supprimer définitivement les fichiers, mais de les déplacer dans la corbeille.
Cette méthode évite les erreurs irréversibles. Si je souhaite tout de même supprimer un fichier de manière définitive, je peux utiliser la commande \rm
, qui exécute la commande originale sans passer par l’alias.
Hardware
Clavier
J’apprends depuis peu à utiliser le clavier Atreus avec la disposition Optimo. C’est un travail complexe, car la phase d’apprentissage est longue de mon côté (j’ai déjà abandonné deux fois). Cependant, je suis convaincu qu’à long terme, pouvoir taper sur son clavier sans le regarder, avec une disposition optimisée pour l’informatique et le français, augmentera considérablement ma productivité.
Pour l’instant, cela reste un défi de taille pour moi.
Bonus
En petit bonus, vous trouverez ci-dessous mon dotfile. Je le mettrai à jour de temps à autre avec de nouveaux alias et des améliorations dans mon workflow, mais ce ne sera jamais un dotfile esthétique :