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