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é.

Once the configuration looks good, you can first test it in a throw-away “container”:

guix home container config.scm

The command above spawns a shell where your home environment is running. The shell runs in a container, meaning it’s isolated from the rest of the system, so it’s a good way to try out your configuration—you can see if configuration bits are missing or misbehaving, if daemons get started, and so on. Once you exit that shell, you’re back to the prompt of your original shell “in the real world”.

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: , Monter: Configuration du dossier personnel   [Table des matières][Index]