Suivant: , Précédent: , Monter: Services du dossier personnel   [Table des matières][Index]


13.3.2 Shells

Les shells jouent un rôle important dans le processus d’initialisation de l’environnement, et vous pouvez les configurer manuellement comme décrit dans la section Configurer le shell, mais il est recommandé d’utiliser les services personnels listés plus bas. C’est à la fois plus facile et plus fiable.

Chaque environnement personnel instancie home-shell-profile-service-type, qui crée un fichier de démarrage ~/.profile pour tous les shell POSIX. Ce fichier content toutes les étapes nécessaires à l’initialisation de l’environnement, mais de nombreux shells modernes comme Bash ou Zsh préfèrent leur propres fichiers de démarrage, c’est pourquoi les services personnels correspondants (home-bash-service-type et home-zsh-service-type) s’assurent que ~/.profile est sourcé par ~/.bash_profile et ~/.zprofile, respectivement.

Service de profil du shell

Type de données :home-shell-profile-configuration

Les champs de home-shell-profile-configuration disponibles sont :

profile (par défaut : ()) (type : text-config)

home-shell-profile est instancié automatiquement par home-environment, NE créez PAS ce service manuellement, il ne peut qu’être étendu. profile est une liste d’objets simili-fichiers, qui iront dans ~/.profile. Par défaut ~/.profile contient le code d’initialisation, qui doit être évalué par le shell de connexion pour rendre le profil de l’environnement personnel disponible, mais vous pouvez ajouter d’autres commandes au fichier si c’est vraiment nécessaire. Dans la plupart des cas les personnalisations devraient aller dans les fichiers de configuration de votre shell. Étendez le service home-shell-profile qui si vous savez vraiment ce que vous faites.

Services personnel Bash

Type de données :home-bash-configuration

Les champs de home-bash-configuration disponibles sont :

package (par défaut : bash) (type : paquet)

Le paquet Bash à utiliser.

guix-defaults? (par défaut : #t) (type : booléen)

Ajoute des instructions par défaut correctes comme la lecture de /etc/bashrc et la coloration de la sortie de ls au début du fichier .bashrc.

environment-variables (par défaut : ()) (type : liste d’association)

Liste d’association de variables d’environnement à initialiser dans la session Bash. Les règles de home-environment-variables-service-type s’appliquent ici (voir Services personnels essentiels). Le contenu de ce champ sera ajouté après le contenu du champ bash-profile.

aliases (par défaut : ()) (type : liste d’association)

Liste d’association d’alias à initialiser pour la session Bash. Les alias seront définis après le contenu du champ bashrc dans le fichier .bashrc. Les alias seront automatiquement encadrés de guillemets, pour que ceci :

'(("ls" . "ls -alF"))

devienne

alias ls="ls -alF"
bash-profile (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .bash_profile. C’est utilisé pour exécuter des commandes au démarrage d’un shell de connexion (dans la plupart des cas le shell qui démarre sur un tty après la connexion). .bash_login ne sera jamais lu parce que .bash_profile est toujours présent.

bashrc (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .bashrc. C’est utilisé pour exécuter des commandes au lancement d’un shell interactif (le shell utilisé de manière interactive, démarré en tapant bash ou par votre application de terminal ou tout autre programme).

bash-logout (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .bash_logout. C’est utilisé pour exécuter des commandes à la sortie d’un shell de connexion. Il ne sera pas lu dans certains cas (si le shell termine en utilisant exec sur un autre processus par exemple).

Vous pouvez étendre le service Bash en utilisant un enregistrement de configuration home-bash-extension, dont les champs correspondent à ceux de home-bash-configuration (voir home-bash-configuration). Le contenu des extensions seront ajoutées à la fin des fichiers de configuration Bash correspondants (voir Bash Startup Files dans le manuel de référence de Bash.

Par exemple, voici comment définir un service qui étend le service Bash de sorte que ~/.bash_profile définisse une variable d’environnement supplémentaire, PS1 :

(define bash-fancy-prompt-service
  (simple-service 'bash-fancy-prompt
                  home-bash-service-type
                  (home-bash-extension
                   (environment-variables
                    '(("PS1" . "\\u \\wλ "))))))

Vous ajouterez ensuite bash-fancy-prompt-service à la liste dans le champ services de votre home-environment. Voici la documentation de référence pour home-bash-extension.

Type de données :home-bash-extension

Les champs de home-bash-extension disponibles sont :

environment-variables (par défaut : ()) (type : liste d’association)

Variables d’environnement supplémentaires à définir. Elles seront combinées aux variables d’environnement des autres extensions et du service de base pour former un bloc cohérent de variables d’environnement.

aliases (par défaut : ()) (type : liste d’association)

Alias supplémentaires à définir. Ils seront combinés aux alias des autres extensions et du service de base.

bash-profile (par défaut : ()) (type : text-config)

Blocs de texte supplémentaires à ajouter à .bash_profile, qui seront combinés avec les blocs de texte des autres extensions et du service de base.

bashrc (par défaut : ()) (type : text-config)

Blocs de texte supplémentaires à ajouter à .bashrc, qui seront combinés avec les blocs de texte des autres extensions et du service de base.

bash-logout (par défaut : ()) (type : text-config)

Blocs de texte supplémentaires à ajouter à .bash_logout, qui seront combinés avec les blocs de texte des autres extensions et du service de base.

Services personnel Zsh

Type de données :home-zsh-configuration

Les champs de home-zsh-configuration disponibles sont :

package (par défaut : zsh) (type : paquet)

Le paquet Zsh à utiliser.

xdg-flavor? (par défaut : #t) (type : booléen)

Place tous les fichiers de configuration dans $XDG_CONFIG_HOME/zsh. Cela fait initialiser ZDOTDIR à $XDG_CONFIG_HOME/zsh dans ~/.zshenv. Le processus de démarrage du shell continuera avec $XDG_CONFIG_HOME/zsh/.zshenv.

environment-variables (par défaut : ()) (type : liste d’association)

Une liste d’association de variables d’environnement à initialiser dans la session Zsh.

zshenv (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .zshenv. C’est utilisé pour initialiser les variables d’environnement du shell. Elle ne doit pas contenir de commande qui suppose la présence d’un tty ou qui produise une sortie. Cela sera toujours lu, et toujours avant tout autre fichiers dans ZDOTDIR.

zprofile (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .zprofile. C’est utilisé pour exécuter des commandes au démarrage d’un shell de connexion (dans la plupart des cas le shell démarré sur un tty après la connexion). Elle sera lue avant .zlogin.

zshrc (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .zshrc. C’est utilisé pour exécuter des commandes au démarrage d’un shell interactif (le shell utilisé de manière interactive démarré en tapant zsh ou par votre application de terminal ou toute autre application).

zlogin (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .zlogin. C’est utilisé pour exécuter des commandes à la fin du processus de démarrage du shell de connexion.

zlogout (par défaut : ()) (type : text-config)

Liste d’objets simili-fichiers qui seront ajoutés à .zlogout. C’est utilisé pour exécuter des commandes à la sortie d’un shell de connexion. Elle ne sera pas lue dans certains cas (si le shell termine après avoir utilisé exec sur un autre processus par exemple).


Suivant: Exécution de tâches planifiées personnelles, Précédent: Services personnels essentiels, Monter: Services du dossier personnel   [Table des matières][Index]