~/$ cat Environnement_virtuel.md
Les outils consituants mon environnement virtuel quotidien.
Mon environnement virtuel est en constante évolution, et cette page risque donc de subir beaucoup de changements. Malgré les termes techniques, j'ai fait de mon mieux afin que cette page soit compréhensible par des personnes n'étant pas nécessairement familières avec l'univers de l'informatique.
Linux
La base de tout mon environnement virtuel est le système d'exploitation, qui est évidemment Linux, plus particulièrement la distribution EndeavourOS.
Pourquoi Linux ? En restant réaliste, les deux seules autres options sont Windows et MacOS. Je n'ai aucune expérience avec MacOS, mais le fait qu'il ne fonctionne que sur une marque d'ordinateur n'en fait pas un bon choix pour moi. Windows est très fermé, rempli de programmes inutiles qui mangent des ressources, collectent des données personnelles, et l'expérience de développement sur cette plateforme n'est pas très bonne pour pas mal de raisons.
Linux est un système d'exploitation Open Source, extrêmement rapide et portable (presque tous les serveurs du monde tournent dessus, et Android en est un dérivé). Il existe des dizaines de "distributions", basées sur Linux, parmi les plus populaires chez les utilisateurs : Ubuntu, Mint et Arch. J'utilise EndeavourOS, qui est basé sur Arch, dont le but principal est de simplifier l'installation de ce dernier. Cette distribution possède un des meilleurs gestionnaires de logiciels, permettant, de manière extrêmement aisée (en une commande), l'installation, la désinstallation et la mise à jour de n'importe quel programme de son immense librairie.
Hyprland
Hyprland est un gestionnaire de fenêtre en mosaïque (tiling window manager). Cela signifie que l'espace de travail est divisé en bureaux (prenant chacun tout l'écran), et dans lesquels sont affichées les fenêtres des applications, dont la taille est gérée automatiquement, de manière à minimiser l'intervention de l'utilisateur là-dessus. Ce gestionnaire est extrêmement customisable, très bien documenté et possédant une communauté relativement large.
Waybar
Waybar est un remplaçant à la barre des tâches traditionnelle des systèmes d'exploitation. C'est simple, il n'y a rien que vous ne puissiez pas customiser :
-
Vous pouvez la positionner en haut, en bas, à droite, ou à gauche.
-
Chaque information affichée est un module dont vous pouvez changer le style.
-
Il existe un grand nombre de modules par défaut (date/heure, bureaux, son, ressources utilisées), et vous pouvez même créer la vôtre, ou utiliser ceux de la communauté.
-
Tout est peut-être stylisé en utilisant le langage CSS.
Pour ma configuration, j'ai tenté de recréer l'interface de la Tablette Sheikah, provenant du jeu vidéo Zelda : BOTW, et de configurer les modules de manière à ce qu'ils soient adaptés à mon workflow. De gauche à droite (voir images) cela donne :
-
Module des bureaux :
-
Par défaut, seuls les 5 premiers sont affichés.
-
Les bureaux contenant une ou plusieurs applications sont représentés par une Triforce (3 triangles).
-
Les bureaux vides sont représentés par le symbole Sheikah.
-
Jaune pour le bureau sur lequel je suis, bleu pour les autres.
-
-
Date et heure :
-
L'heure actuelle au format 24h. Cliquer sur ce module affiche/cache les secondes.
-
La date au format numérique croissant : jour / mois / année.
-
Le jour et le mois, car il m'arrive de ne pas immédiatement savoir quel jour il est, et il m'est difficile de convertir le numéro de mois en son nom.
-
-
Idle Inhibitor : C'est un bouton qui a son utilité de temps en temps, il permet d'activer/désactiver le verrouillage d'écran et la mise en veille automatique après un certain temps d'inactivité.
-
Utilisation du processeur : Très utile pour avoir une idée de ce qu'il se passe sur notre ordinateur sans avoir à exécuter un quelconque programme, cliquer dessus nous donne un graphe en temps réel de la répartition sur chaque cœur (voir image 2).
-
Température du processeur : Tout comme le précédent, c'est un bon indicateur de ce qu'il se passe sur notre ordinateur. J'ai aussi changé le style pour quelque chose d'assez marrant lorsque la température atteint 60°C.
-
Cava : Spectrogramme représentant le son de chaque média joué sur l'ordinateur. Bien que ce ne soit pas le plus utile, je le garde, car je le trouve vraiment cool.
-
Utilisation de la RAM : Comme le module d'utilisation du processeur, je remarque qu'il est très intéressant de voir en temps réel quelles activités et quelles applications utilisent beaucoup de mémoire vive.
-
Applications en arrière-plan : Souvent occupées uniquement par le gestionnaire de réseau et le service de messagerie Discord.
-
Service Bluetooth : Très utile d'avoir une interface à portée de main.
-
État de la batterie :
-
La barre du bas clignote lentement d'une nuance de rouge à une autre lorsque la batterie passe en dessous de 15%.
-
La barre du bas passe en vert clair lorsque l'ordinateur est en charge.
-
Survoler le module affiche des informations complémentaires comme le temps restant jusqu'à la charge ou décharge complète de l'appareil.
-
-
Volume du son sortant.
-
Volume du son entrant.
Image 2 :
Rofi
Rofi est selon moi le meilleur lanceur d'applications, toute plateforme confondue. Il est extrêmement rapide, très customisable avec du style CSS et le support d'extensions. L'utilisation que j'en fais est assez simple et je ne l'ai pas encore trop configuré : je l'ouvre avec le raccourci Windows+D, et je peux chercher parmi chacune des applications installées, son algorithme de recherche étant extrêmement rapide et optimisé, je trouve généralement n'importe quelle application en 3 lettres.
VS Code
IDE : Integrated Development Environment. Plus simplement : éditeur de code.
L'édition de code est très différente de l'édition de texte standard et nécessite donc des éditeurs spécialisés. Hautement spécialisés. En dehors des éditeurs modaux tournant dans un terminal, les seules options réellement viables sont les IDE JetBrains et VS Code. J'ai choisi VS Code comme éditeur principal, car :
-
Les IDE JetBrains sont très lents comparés à VS Code, même sur des ordinateurs plutôt haut de gamme, cela se ressent beaucoup.
-
VS Code est Open Source, tandis que la majorité des IDE JetBrains sont propriétaires et payants, ce qui peut ou non être un inconvénient majeur selon les circonstances.
-
Je trouve VS Code beaucoup plus customisable, et cela est aidé par la grande quantité d'extensions et de thèmes développés spécialement pour cet éditeur par la communauté Open Source.
-
Je trouve globalement l'éditeur mieux pensé pour les développeurs.
Information additionnelle : J'utilise l'extension Vim pour VS Code , qui intègre l'édition modale et les racourcis claviers de Vim à cet éditeur. Je trouve l'experience très fluide et reposante une fois que l'on s'y est habitué. Par exemple, la simple suite de touches dd permet de supprimer la ligne sur laquelle l'on se trouve, et 5yw copie les 5 mots à la droite du curseur, nul besoin d'autres touches comme Alt ou Ctrl, car pour insérer du texte sans que les lettres ne soient interprétées comme des commandes, il y a un mode séparé pour l'insertion (i pour rentrer dans ce mode, et Esc pour en sortir).
Obsidian
Obsidian est un éditeur de texte tirant avantage du format Markdown, généralement utilisé pour la prise de notes. L'expérience utilisateur est optimale, la syntaxe minimale du Markdown donne une plus grande concentration sur son texte et la gestion des projets est faite de la meilleure des manières possibles. Je l'utilise pour prendre des notes et pour rédiger n'importe quelle sorte de texte n'étant pas du code. J'écris d'ailleurs toute cette page dans Obsidian, avant de la transcrire en HTML pour mon site.
Terminal
Voici une liste de tout ce qui est lié à une utilisation dans le terminal :
kitty :
Kitty est un émulateur de terminal. Ce terme décrit un programme permettant d'interagir avec le terminal (ou shell) du système d'exploitation. Il est très rapide dû à son utilisation intelligente des ressources de l'ordinateur, permet l'affichage d'images et d'émojis, et (je pense que vous commencez à voir le paterne, ) est extrêmement customisable (exemple moyennement representatif : le fond d'écran de Terminal sur l'image ci-dessous). Je trouve aussi très agréable son interface minimale, n'ayant rien d'autre que le terminal.
yazi :
Yazi est un explorateur de fichiers utilisable uniquement dans un terminal et uniquement avec le clavier. En utilisant les raccourcis claviers de Vim (comme HJKL pour se déplacer, avec des dizaines plus avancées), naviguer et effectuer des opérations sur des fichiers devient beaucoup plus rapide qu'en utilisant un explorateur de fichier standard. Comme toujours, cet outil est d'une vitesse fulgurante (développé en Rust), très customisable et supporte même la prévisualisation de documents textes, images, PDF et plus.
Git
Git est l'outil de versioning de code utilisé par chaque développeur sur Terre. Il permet de stocker chaque version d'un projet de manière économe, de naviguer facilement entre ces versions, de séparer un projet en plusieurs branches que l'on peut ensuite rassembler ... et mille autres choses que je n'ai pas le temps d'expliquer ici.
En dehors des conflits lors d'un merge (ce n'est pas important à comprendre), j'utilise git exclusivement depuis le Terminal, car je trouve les intégrations de gits des IDE comme étant assez limitantes, et c'est un niveau d'abstraction que je ne trouve pas souhaitable personnellement.
ffmpeg
Ffmpeg est l'outil derrière chaque éditeur et convertiseur d'image et vidéo sur Terre. C'est un simple ensemble de commandes qui peuvent convertir presque n'importe quel format d'image/vidéo, et effectuer des opérations comme le changement de taille et de qualité. Je l'utilise de plus en plus car il est installé sur presque chaque distribution Linux, et je trouve son utilisation très simple (par exemple, la commande ffmpeg -i video.mp4 audio.mp3 crée un nouveau fichier nommé "audio.mp3", contenant l'audio du fichier "video.mp4", au format mp3)
Credits where it's due :
Une part importante de mon environnement provient des scripts d'installation de Jakoolit, qui fait un travail formidable en tant que membre de la communauté Desktop Linux. Si Linux vous intéresse, je ne peux que vous conseiller sa communauté ainsi que ses nombreux scripts d'installations.