Aller au contenu
Table des matières

.dotfiles : Un environnement shell en scripts

Ces dotfiles regroupent la configuration de shell et d’éditeur que j’utilisais sur plusieurs machines. L’installateur gère les paquets, les fichiers de configuration et les projets externes.

Configuration et automatisation
  • Mis à jour
  • 2
  • Shell · 100%
  • MIT
Composants documentés
2Explorer les modules
Documents source
1Lire les instructions
Langages du dépôtShell 100%1

Parts calculées à partir des octets GitHub Linguist.

Shell100%
100%31 592 octets
Langage%Octets
Shell100%31 592

1. Aperçu

1.1. Pourquoi il existe

Installateur idempotent multi-distribution supportant apt, dnf, pacman avec configuration modulaire Zsh et Vim.

1.2. Cas d’usage

Reproduction instantanée d'un environnement shell optimisé sur tout système Unix.

2. Cas d’utilisation

Scripts Bash qui installent, mettent à jour et retirent un environnement shell Linux : vimrc, Oh My Zsh, tmux, outils.

Diagramme de cas d’utilisation de .dotfiles : Installer la config vim; Configurer Oh My Zsh et tmux; Installer des outils de dev; Mettre à jour scripts et vimrc; Désinstaller avec sauvegarde; Afficher neofetch au login.dotfilesInstaller la config vimConfigurer Oh My Zsh et tmuxInstaller des outils de devMettre à jour scripts et vimrcDésinstaller avec sauvegardeAfficher neofetch au loginDéveloppeur«système»Outil apt/dnf/pacman«système»Projets en amont
Acteurs à gauche (personnes) et à droite (systèmes externes) ; chaque ovale est un cas d’utilisation appuyé par les fichiers cités ci-dessous.
Installer la config vim
DéveloppeurProjets en amont

La fonction install_vimrc d’install.sh installe vim et git, clone amix/vimrc dans ~/.vim_runtime et lance son installateur ; edit_vimrc place NERDTree à gauche et affiche les numéros de ligne.

Configurer Oh My Zsh et tmux
DéveloppeurProjets en amont

install_oh_my_zsh télécharge l’installateur officiel d’Oh My Zsh avec wget ; edit_oh_my_zsh change le thème et écrit un thème d’invite minimal ; install_tmux écrit un ~/.tmux.conf complet.

Installer des outils de dev
DéveloppeurOutil apt/dnf/pacman

bash install.sh <option> lance un installateur (Python, JDK, nvm, .NET, Go, Rust, Docker, kubectl, AWS CLI, Azure CLI, JupyterLab, outils réseau) ; install_package lit /etc/os-release pour choisir apt-get, pacman, dnf, yum ou brew.

Mettre à jour scripts et vimrc
DéveloppeurProjets en amont

update.sh définit update_install_script (git pull puis bash install.sh) et update_vimrc (git pull --rebase dans ~/.vim_runtime puis update_plugins.py) ; le fichier ne fait que les définir, il faut donc le sourcer.

Désinstaller avec sauvegarde
DéveloppeurOutil apt/dnf/pacman

uninstall.sh copie ~/.vimrc et ~/.tmux.conf en fichiers .backup avant de les supprimer, puis purge JDK, Python, Rust, Go, Jupyter, AWS CLI, Azure CLI et nvm ; lancé avec bash, il appelle chaque fonction l’une après l’autre.

Afficher neofetch au login
DéveloppeurOutil apt/dnf/pacman

motd/motd.sh installe neofetch avec apt-get s’il manque et écrit /etc/update-motd.d/10-neofetch pour afficher le résumé du système dans la bannière de connexion.

2.1. Scénario : Préparer une machine Ubuntu neuve

  1. Cloner le dépôt et lancer bash install.sh sans option pour afficher la liste de usage().
  2. Lancer bash install.sh install_vimrc pour installer vim et git et cloner amix/vimrc dans ~/.vim_runtime.
  3. Lancer bash install.sh install_oh_my_zsh puis install_tmux pour obtenir zsh et un ~/.tmux.conf prêt.
  4. Lancer bash install.sh install_docker : le script récupère get.docker.com et Docker Compose 1.29.2.
  5. Sur un serveur, lancer motd/motd.sh en root pour voir neofetch à chaque connexion SSH.

Fichiers consultésREADME.mdinstall.shupdate.shuninstall.shmotd/motd.sh

3. Démarrage

Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.

README.md · Installation
bash install.sh
source install.sh
install_vimrc

4. Références du dépôt

Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.

Prérequis et premier essai

4.1. Installation

README.md

To run the installation script, use the following command:
Lire les instructions complètes ↗

4.2. Uninstallation

README.md

To run the uninstallation script, use the following command:
Lire les instructions complètes ↗
Configuration et utilisation

4.3. cli_tools

README.md

This repository contains my personal dotfiles for vim, tmux, and oh-my-zsh. These configuration files are used to customize the behavior of these tools to my liking.
Lire les instructions complètes ↗
Exploitation et dépannage

4.4. Updating

README.md

To run the update script, use the following command:
Lire les instructions complètes ↗
Documentation source

1 documents lus parmi 1 candidats.

5. Fonctions et composants 2

Installation des paquets
install.sh lit la distribution dans /etc/os-release, puis choisit apt, pacman, dnf ou yum. exec_root regroupe les commandes nécessitant des privilèges élevés. L’installation des paquets et les changements de configuration se trouvent donc dans le même script.
Configuration de l’éditeur et du shell
Le parcours Vim installe amix/vimrc et applique des réglages locaux, dont les numéros de ligne et la position de l’arborescence. D’autres fonctions installent Oh My Zsh. update.sh et uninstall.sh proposent des points d’entrée de maintenance distincts.

6. Architecture

Ouvrez un composant pour suivre ses connexions, ou explorez le diagramme complet.

Composants du système Contexte
Mermaid Diagramme interactif

Vue générale des composants et des échanges vérifiés dans le dépôt.

Vue statique de l’architecture de .dotfiles
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
flowchart LR
  n0["install.sh"]
  n1["Détection de la distribution"]
  n2["Paquets système"]
  n3["Configuration Vim et Zsh"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
Version texte du diagramme
  • install.sh → Détection de la distribution
  • Détection de la distribution → Paquets système
  • Paquets système → Configuration Vim et Zsh
Suivre un parcours dans le code

Suivez install_vimrc depuis sa demande de paquets jusqu’au clonage externe, puis aux modifications dans ~/.vim_runtime. Ce parcours distingue les fichiers modifiés par l’installateur de ceux fournis par un autre projet.

7. Dossier technique

Établi à partir du code au commit 52ff3c1 (5 fichiers). Chaque élément vient d’une correspondance de motif dans le code: ouvrez le fichier lié avant de vous y fier.

7.1. Couches et modules

Les dossiers sont classés par couche selon leur nom, de l’interface utilisateur jusqu’à l’accès aux données. Comme le classement repose sur les noms seulement, le diagramme ne dit rien des appels entre couches.

Mermaid Vue en couches
flowchart TB
  subgraph L_core["Source principale"]
    direction TB
    core_0["(root)<br/>3 fichiers"]
    core_1["motd<br/>1 fichier"]
  end
Modules et couche principale
ModuleCoucheFichiersTypesExtensions
(root)Source principale30.sh
motdSource principale10.sh

7.2. Modèle C4

Du contexte du système aux déclarations du code. Chaque niveau conserve les limites des sources disponibles.

UML 1 · Contexte du système
1 · Contexte du système

La vue C4 la plus large : qui utilise le projet et sur quels systèmes et stockages externes il s’appuie. Rendu avec uml-mcp.

Source PlantUML
@startuml
!include <C4/C4_Context>
LAYOUT_LEFT_RIGHT()
System(SYS, ".dotfiles", "Ces dotfiles regroupent la configuration de shell et d’éditeur que j’…")
@enduml

Niveau 2: les sources disponibles ne permettent pas de tracer cette vue.

UML 3 · Composants et couches
3 · Composants et couches

Modules regroupés par couche du code. Les limites indiquent l’organisation, sans affirmer une isolation à l’exécution ni des appels. Rendu avec uml-mcp.

Source PlantUML
@startuml
!include <C4/C4_Component>
LAYOUT_TOP_DOWN()
System_Boundary(SYS, ".dotfiles") {
Boundary(L0, "Source principale", "layer") {
Component(M0_0, "(root)", ".sh", "3 fichiers")
Component(M0_1, "motd", ".sh", "1 fichiers")
}
}
@enduml
UML 4 · Code
4 · Code

Déclarations, champs et méthodes sélectionnés, regroupés par fichier source. Aucun héritage ni appel n’est déduit. Rendu avec uml-mcp.

Source PlantUML
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
top to bottom direction
hide empty members
package ".dotfiles" {
object "install.sh" as FN0 {
  exec_root()
  dist_check()
  install_package()
  install_vimrc()
  edit_vimrc()
  install_oh_my_zsh()
}
object "uninstall.sh" as FN1 {
  uninstall_vimrc()
  uninstall_tmux()
  uninstall_jdk()
  uninstall_python()
  uninstall_rust()
  uninstall_go()
}
object "update.sh" as FN2 {
  update_install_script()
  update_vimrc()
}
}
@enduml

7.3. Logique métier

Aucune classe n’a été extraite. Voici les plus gros fichiers source et leurs fonctions.

install.sh
exec_root, dist_check, install_package, install_vimrc, edit_vimrc, install_oh_my_zsh
uninstall.sh
uninstall_vimrc, uninstall_tmux, uninstall_jdk, uninstall_python, uninstall_rust, uninstall_go
update.sh
update_install_script, update_vimrc
motd/motd.sh
Aucune fonction nommée.

7.4. Intégrations externes

Hôtes nommés dans le code

7.5. Pipeline CI/CD

Aucun pipeline CI/CD dans le dépôt. Le code se construit et se lance à la main, comme décrit plus haut.

7.6. Déploiement

Mermaid Schéma de déploiement
flowchart LR
  repo[("Dépôt GitHub")]
  local["Poste local"]
  repo -->|"cloner et lancer"| local

Le dépôt ne contient ni Dockerfile, ni fichier Compose, ni configuration d’hébergement : le code s’exécute sur le poste qui le clone.

Les sources disponibles ne documentent pas les autres sections.

8. Référence

5 / 5 fichiers admissibles lus (6 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.

Ce que couvre l’analyse

Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.

Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.

10. Fichiers à lire 3

11. Glossaire

Dépôt

Les fichiers source, la configuration et l’historique versionné d’un projet.

README

Le document d’entrée du dépôt, qui présente généralement son rôle et son installation.

Dépendance

Une bibliothèque, un outil ou un service nécessaire à la compilation ou à l’exécution d’un composant.

Interface en ligne de commande

Une interface textuelle où les commandes et arguments choisissent les opérations. Les codes de retour permettent aux scripts de détecter un succès ou un échec.

Fork

Un dépôt distinct dérivé d’un autre projet. Une modification du fork ne devient pas automatiquement une modification du projet amont.

12. Références

  1. antoinebou12. (2026, 5 novembre). .dotfiles. [Software repository] github.com.
  2. antoinebou12. (2026, 5 novembre). .dotfiles: README. [Repository documentation] github.com.
  3. antoinebou12. (2026, 5 novembre). install.sh. [Source file] github.com.
  4. antoinebou12. (2026, 5 novembre). update.sh. [Source file] github.com.
  5. antoinebou12. (2026, 5 novembre). uninstall.sh. [Source file] github.com.
  6. Boucher, A. (2026, 23 octobre). .dotfiles : Un environnement shell en scripts. [Project article] antoineboucher.info.

Les sources sans date de publication indiquent la date de leur dernière vérification, le 5 novembre 2026. Les liens des fichiers conservent la révision inspectée lorsqu’elle est disponible.