EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Mageia : démarrage d'une session Xfce4

Historique

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)

Difficulté

Pour : linuxien averti.

 Introduction

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.

 Préparation de la session

 /usr/bin/startxfce4

Ce script définit quelques variables et procède à quelques vérifications :

Haut

 /etc/xdg/xfce4/xinitrc

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 :

  • supprimer le répertoire local .config/Thunar pour restaurer Thunar (accels.scm et uca.xml)
  • supprimer le répertoire local .config/orage pour restaurer orage
  • supprimer le répertoire local .config/xfce4/terminal pour restaurer terminal
  • supprimer le répertoire local .config/xfce4/xfconf pour restaurer tous les fichiers .xml (accessibilité, clavier, souris, Thunar, gestion des périphériques, bureau, notifications, tableau de bord, session, fenêtres ...
Haut

 Démarrage de la session

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 :

Le rôle de xfce4-session
Les variables utilisées

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/

Haut

 Démarrage de la première session

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 :

Pour les curieux, survolez : le fichier 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>

Les autres programmes exécutés au démarrage

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.

Pour les curieux, survolez : un exemple de liste des fichiers .desktop, avec mageia 2
  • gsettings-data-convert.desktop
  • mageia-mgaonline.desktop
  • net_applet.desktop
  • pam-panel-icon.desktop
  • polkit-gnome-authentication-agent-1.desktop
  • pulseaudio-kde.desktop
  • pulseaudio.desktop
  • user-dirs-update-gtk.desktop
  • xfce4-login-sound.desktop
  • xfce4-power-manager.desktop
  • xfconf-migration-4.6.desktop
  • xfwm4.desktop

 Sessions suivantes

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.

Haut

 Fin de la session

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.

Pour les curieux, survolez : le fichier ~/.cache/sessions/xfce4-session-xxxx:0

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

Haut