Suivant: , Monter: Configuration du dossier personnel   [Table des matières][Index]


13.1 Déclarer l’environnement personnel

L’environnement personnel est configuré en fournissant une déclaration home-environment dans un fichier qui peut être passé à la commande guix home (voir Invoquer guix home). Le plus facile pour commencer est de générer une configuration initiale avec guix home import :

guix home import ~/src/guix-config

La commande guix home import lit certains « dot files » comme ~/.bashrc qui se trouvent dans votre dossier personnel et les copie dans le dossier donné, ~/src/guix-config dans notre exemple. Il lit aussi le contenu de votre profil, ~/.guix-profile, et, en fonction de cela, il rempli ~/src/guix-config/home-configuration.scm avec une configuration du dossier personnel qui ressemble à votre configuration actuelle.

Une configuration simple peut inclure par exemple Bash et une configuration textuelle personnalisée, comme dans l’exemple ci-dessous. N’ayez pas peur de déclarer des parties de votre environnement personnel qui correspondent à des fichiers de configuration existants : avant d’installer les fichiers de configuration, Guix Home créera une sauvegarde des fichiers existants à un emplacement distinct de votre dossier personnel.

Remarque : Il est fortement recommandé de gérer votre shell avec Guix Home, car il s’assurera que tous les scripts nécessaires seront sourcés par le fichier de configuration du shell. Sinon, vous devrez le faire manuellement. (voir Configurer le shell).

(use-modules (gnu home)
             (gnu home services)
             (gnu home services shells)
             (gnu services)
             (gnu packages admin)
             (guix gexp))


(home-environment
 (packages (list htop))
 (services
  (list
   (service home-bash-service-type
            (home-bash-configuration
             (guix-defaults? #t)
             (bash-profile (list (plain-file "bash-profile" "\
export HISTFILE=$XDG_CACHE_HOME/.bash_history")))))

   (simple-service 'test-config
                   home-xdg-configuration-files-service-type
                   (list `("test.conf"
                           ,(plain-file "tmp-file.txt"
                                        "the content of
                                          ~/.config/test.conf")))))))

Le champ packages devrait être évident, il installera la liste des paquets dans votre profil. Le champ le plus important est services, qui contient une liste de services personnels, qui sont les blocs de base d’un environnement personnel.

Il n’y a pas de démon (en tout cas pas nécessairement) lié à un service personnel, un service personnel est seulement un élément qui est utilisé pour déclarer une partie de l’environnement personnel et en étendre d’autres parties. Le mécanisme d’extension présenté dans le chapitre précédent (voir Définir des services) ne doit pas être confondu avec les services Shepherd (voir Services Shepherd). L’utilisation de ce mécanisme d’extension et de code Scheme autour vous donne la liberté de déclarer votre propre environnement personnel, hautement personnalisé.

Une fois que la configuration a l’air bonne, vous pouvez d’abord la tester dans un « conteneur » jetable :

guix home container config.scm

La commande ci-dessus démarre un shell où votre environnement personnel est lancé. Le shell tourne dans un conteneur, ce qui signifie qu’il est isolé du reste du système, donc c’est un bon moyen d’essayer votre configuration — vous pouvez vérifier s’il manque des bouts de configuration ou si elle ne se comporte pas correctement, si les démons sont démarrés, etc. Une fois que vous quittez ce shell, vous retournez à l’invite de commande de votre shell de départ « dans le monde réel ».

Une fois que votre configuration correspond à vos besoins, vous pouvez reconfigurer votre dossier personnel en exécutant :

guix home reconfigure config.scm

Cette commande « construit » votre environnement personnel et crée un lien ~/.guix-home qui pointe dessus. Et voilà !

Remarque : Assurez-vous que votre système d’exploitation a elogind, systemd ou un mécanisme similaire pour créer les répertoires XDG à l’exécution et défini la variable XDG_RUNTIME_DIR. Autrement, le script on-first-login ne sera pas exécuté et les processus comme le Shepherd utilisateur et ses descendants ne démarreront pas.


Suivant: Configurer le shell, Monter: Configuration du dossier personnel   [Table des matières][Index]