Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
2 août 2011 : Création de cette page.
2 août 2011 : Ébauche de cette page.
4 septembre 2012 : Rappels relatifs à /etc/X11/Xsession et actualisation avec Mageia 2
2 mars 2014 : actualisation avec mga5 (cauldron)
Pour : linuxien averti.
Vous avez démarré l'ordinateur. Celui-ci a déjà effectué toutes les initialisations du matériel. Le système d'exploitation Linux est également lancé.
Le gestionnaire de connexion a été défini (XDM, GDM, KDM ...) grâce à /etc/X11/prefdm, /etc/X11/lookupdm et /etc/sysconfig/desktop.
Vous venez de vous connecter en tant qu'utilisateur grâce au gestionnaire de connexion graphique ou par l'intermédiaire de la commande startx.
Dans tous les cas, le script /etc/X11/Xsession intervient.
Et voilà, une session Xfce4 démarre.
Ce script définit quelques variables et procède à quelques vérifications :
Ce script fixe également certaines variables, actualise les répertoires utilisateur
Remarque 1 : par défaut, les ressources sont celles de /etc/xdg/xfce4/Xft.xrdb, la session est lancée par xfce4-session.
Remarque 2 : Il est intéressant de noter que, pour restaurer la configuration par défaut (celle du répertoire /etc/xdg), il suffit de :
C'est le fichier /usr/bin/xfce4-session qui gère les sessions. Il s'agit d'un programme compilé. Il est donc assez difficile de trouver le déroulement exact. Cependant, on sait qu'il est habituellement exécuté par votre gestionnaire graphique de connexion (xdm, gdm, kdm ...) ou par vos scripts de lancement du serveur X.
La fin du fichier /etc/xdg/xfce4/xinitrc n'est exécutée que dans le cas où la session n'est pas gérée par Xfce manager. Elle nous renseigne sur quelques étapes :
XDG_CONFIG_HOME : répertoire racine de toutes les configurations de l'utilisateur; par défaut : ~/.config/
XDG_CONFIG_DIRS : autres répertoires de configuration, selon un ordre préférentiel : /etc/xdg
XDG_CACHE_HOME : spécifie le répertoire racine de toutes les données variables, enregistrées pour une utilisation ultérieure (cachage). Par défaut : ~/.cache/
Lors de votre toute première connexion il n'y a encore de session sauvegardée dans votre répertoire utilisateur. Les fichiers de configuration sont la copie conforme des fichiers du répertoire /etc/xdg.
De ce fait, /usr/bin/xfce4-session lance une session dite Failsafe, avec les applications spécifiées dans la copie du fichier général de configuration /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml :
Le fichier de Mageia est un peu plus complet que le fichier original de xfce.org. Il précise quelques valeurs supplémentaires.
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-session" version="1.0">
<property name="general" type="empty">
<property name="FailsafeSessionName" type="string" value="Failsafe"/>
<property name="AutoSave" type="bool" value="true"/>
<property name="PromptOnLogout" type="bool" value="true"/>
<property name="SessionName" type="string" value="Default"/>
<property name="SaveOnExit" type="bool" value="true"/>
</property>
<property name="sessions" type="empty">
<property name="Failsafe" type="empty">
<property name="IsFailsafe" type="bool" value="true"/>
<property name="Count" type="int" value="5"/>
<property name="Client0_Command" type="array">
<value type="string" value="xfwm4"/>
</property>
<property name="Client0_PerScreen" type="bool" value="false"/>
<property name="Client1_Command" type="array">
<value type="string" value="xfsettingsd"/>
</property>
<property name="Client1_PerScreen" type="bool" value="false"/>
<property name="Client2_Command" type="array">
<value type="string" value="xfce4-panel"/>
</property>
<property name="Client2_PerScreen" type="bool" value="false"/>
<property name="Client3_Command" type="array">
<value type="string" value="Thunar"/>
<value type="string" value="--daemon"/>
</property>
<property name="Client3_PerScreen" type="bool" value="false"/>
<property name="Client4_Command" type="array">
<value type="string" value="xfdesktop"/>
</property>
<property name="Client4_PerScreen" type="bool" value="false"/>
</property>
</property>
<property name="splash" type="empty">
<property name="Engine" type="string" value=""/>
</property>
<property name="compat" type="empty">
<property name="LaunchGNOME" type="bool" value="true"/>
<property name="LaunchKDE" type="bool" value="false"/>
</property>
<property name="chooser" type="empty">
<property name="AlwaysDisplay" type="bool" value="false"/>
</property>
<property name="security" type="empty">
<property name="EnableTcp" type="bool" value="false"/>
</property>
</channel>
Le répertoire /etc/xdg/autostart/ renferme des fichiers .desktop définissant les autres programmes lancés au démarrage de la session.
Si un même fichier existe dans le répertoire personnel .config/autostart, c'est ce dernier qui est pris en compte.
Le déroulement est le même que pour la première session, à la seule différence que ce sont les fichiers de configuration qui existent maintenant dans le répertoire personnel qui sont pris en compte.
Ils ne correspondent plus aux fichiers généraux (ceux du répertoire /etc/xdg) si vous avez modifié certaines configuration.
Au cours de la session, vous avez modifié quelque configuration, pour adapter Xfce à vos besoins et à vos goûts.
Ceci modifie certains fichiers dans votre répertoire personnel (répertoire .config).
Lorsque vous quittez une session, des fichiers sont créés dans votre répertoire de session (répertoire .cache),
notamment ~/.cache/sessions/xfce4-session-xxxx:0 : le fichier de session qui liste les applications ouvertes au moment où vous quittez la session.
Voici le début d'un fichier correspondant à une session où plusieurs applications sont restées ouvertes.
[Session: Default]
Client0_ClientId=11c0a80002000131627308300000023970001
Client0_Hostname=local/tux1.eck
Client0_CloneCommand=xfsettingsd
Client0_RestartCommand=xfsettingsd,--display,:0.0,--sm-client-id,11c0a80002000131627308300000023970001
Client0_CurrentDirectory=/home/georges
Client0_DesktopFile=/etc/xdg/autostart/xfsettingsd.desktop
Client0_Program=xfsettingsd
Client0_UserId=georges
Client0_Priority=25
Client0_RestartStyleHint=0