Ceci est une ancienne révision du document !



GDM, l’écran de connexion d’Ubuntu

Écran de connexion GDM

L’écran de connexion vous permet de vous connecter à un compte d’utilisateur sur votre système d’exploitation.

Il faut créer une nouvelle page pour GDM 2.28 et supérieurs! Les différences entre 2.20 et 2.28 sont trop importantes pour qu'ils soient l'un et l'autre sur la même page

Ubuntu (comme les autres systèmes GNU/Linux) est un système d’exploitation multi-utilisateurs, c’est-à-dire qu’il peut être utilisé par plusieurs personnes. Chacune de ces personnes peut disposer de son propre compte d’utilisateur sur votre ordinateur, ce qui aura pour avantage que chacune pourra avoir son propre dossier personnel (inaccessible aux autres utilisateurs), son propre bureau, ses propres réglages… sans affecter les choix des autres utilisateurs de votre ordinateur. Durant la procédure d’installation, un premier compte d’utilisateur a été créé ; vous pouvez en créer d’autres à l’aide de l’outil de gestion de comptes d’utilisateurs.

Dans le but de vous permettre de choisir sur quel compte d’utilisateur vous connecter, au chargement de votre ordinateur, Ubuntu vous propose un écran de connexion, nommé GDM, vous permettant de préciser le nom de votre compte utilisateur, ainsi que quelques autres options avancées, comme le choix de votre interface graphique préférée (si plusieurs ont été installées).

GNOME Display Manager (GDM) est l’écran de connexion installé par défaut avec Ubuntu, Edubuntu et Xubuntu. Les écrans de connexions des autres éditions (Kubuntu, etc.) sont listés sur ce portail.

Par défaut, l’interface de l’écran de connexion est simple et minimaliste. Elle contient un champ de connexion et quelques boutons, vous permettant d’effectuer les opérations de connexion à vos comptes d’utilisateurs.

Le champ Identifiant est sans doute l’objet le plus important de cette interface. Il vous permet de préciser le nom du compte utilisateur sur lequel vous connecter. Une fois ce nom entré, appuyez sur la touche [Entrée] de votre clavier pour valider ce choix. Le champ se modifie et devient Mot de passe, dans lequel vous devrez fournir le mot de passe du compte utilisateur sur lequel vous souhaitez vous connecter.

Juste au-dessous se trouve le bouton Options, que l’utilisateur moyen utilisera peu fréquemment.
Dans ce menu se trouve, Langue, qui vous permet de choisir une autre langue d’affichage que celle configurée par défaut dans Ubuntu (si plusieurs paquets de langues sont installés). Le second sous-menu, Session, vous permet de sélectionner un environnement graphique sur lequel vous connecter (si plus d’un est installé).

Au bas de l’écran, à gauche, sont présents deux boutons vous permettant d’Arrêter ou de Redémarrer votre ordinateur. Enfin, à droite, le nom de votre machine et la date et l’heure actuelle sont indiqués.

Pour repasser de gdm-2.28 à gdm-2.2, une méthode testée, et simple:
  • Désinstaller gdm, indicator-session et indocator-applet-session:
    sudo apt-get --purge remove gdm indicator-session indicator-applet-session
  • Installez gdm-2.20:
    sudo apt-get install gdm-2.20
  • Entrez les commandes suivantes:
    cd /etc/gdm
    sudo sed 's|X11R6/||' gdm.conf > /tmp/gdm.conf
    sudo mv /tmp/gdm.conf .
    sudo nano /etc/X11/default-display-manager
  • A l'intérieur du fichier default-display-manager, insérer ceci : /usr/sbin/gdm
  • Fermer le fichier default-display-manager (CTRL+X) puis faite oui (O) (ou yes (Y)) et faite entrer
  • Redémarrer l'ordinateur. Il va apparaître un écran bleu indiquent que l'utilisateur gdm n'existe pas. Répondez oui, loggez-vous dans le terminal et tapez:
    sudo dpkg-reconfigure gdm-2.20
  • Re-redémarer l'ordinateur:
    sudo reboot
  • Le thème *human* n'étant pas installé, il vous mettra un message d'alerte le disant. Ignorez-le, loggez-vous et changez l'écran de connection en allant dans Système > Application > Fenêtre de connection > Onglet "Locale"
  • Vous pouvez dès à présent jouir de votre nouvelle installation, installer et gérer les thèmes gdm.

Si vous voulez adapter cet écran de connexion à votre goût, il existe un outil à cet effet : gdmsetup. Il peut être lancé à partir du raccourci fenêtre de connexion présent dans le menu Système ⇒ Administration. Pour pouvoir l’utiliser, vous devez disposer des droits d’administration.

Sur Karmic, puis Lucid, et maverick (10.10) l'outil gdmsetup ne permet de quasiment plus rien paramétrer :-( Il reste quelques possibilités de personnalisation dans gconf-editor «apps» gdm pour par exemple désactiver les "figures" mais le plus simple semble de revenir à GDM 2.20 dans Karmic (http://ubuntuforums.org/showpost.php?p=8294939&postcount=1) et d'utiliser gdmsetup

Onglet « Général »

L’onglet « Général » vous permet de configurer certaines options intéressantes. La première concerne la possibilité de connecter automatiquement un utilisateur à Ubuntu lors du chargement du système d’exploitation (Ubuntu 7.10, Activer la connexion automatique se trouve dans l'onglet « Sécurité »). Si vous êtes le seul utilisateur de votre ordinateur ou l’utilisateur principal (ou, plus généralement, si vous n’avez qu’un seul compte d’utilisateur configuré), vous voudrez peut-être sauter l’étape de la connexion à un compte. Cochez alors la case Connecter automatiquement un utilisateur au premier démarrage et spécifiez quel compte connecter automatiquement.

Une autre possibilité est plutôt de connecter automatiquement un utilisateur après un certain temps d’attente. Pour préférer cette méthode de connexion, cochez la case Connecter un utilisateur automatiquement après un nombre défini de secondes et spécifiez l’utilisateur à connecter automatiquement et le temps d’attente (en seconde).

Onglet « Locale »

Dans l’onglet Locale, vous pouvez changer l’apparence de l’écran de connexion. Par défaut, quelques thèmes sont déjà inclus avec Ubuntu. Quelques thèmes supplémentaires aussi disponibles par Synaptic ; cherchez gdm-themes. Dans Internet, quelques ressources peuvent être consultées :

Les thèmes téléchargés sont sous formes d’archives. Pour les installer, cliquez simplement sur le bouton Installer un nouveau thème et sélectionnez le fichier d’archive. Le thème est automatiquement installé et immédiatement disponible pour que vous le choisissiez. ;-)

Autres onglets

Les autres onglets de l’outil gdmsetup ne seront que vaguement présentés ici pour votre culture personnelle. En fait, les options qu’ils contiennent ne devraient être réellement modifiées que si vous savez ce que vous faites.

  • Bannière GTK+ vous permet d’afficher un écran de connexion minimal, sans thème.
  • Sécurité ne sert qu’à configurer des options de protection lors du lancement de votre session et la connexion automatique.
  • Serveur X gère des options du serveur graphique.
  • Accessibilité gère des options de son et d’accessibilité.
  • XDMCP gère les connexions à distance à votre ordinateur.
  • Identifiants configure quels utilisateurs sont disposés à se connecter à leur compte d’utilisateur à l’aide de l’écran de connexion.

Identification sans mot de passe

Il est possible de paramétrer un ou plusieurs comptes d'utilisateurs afin que ceux-ci puissent s'authentifier et démarrer une session d'utilisation sans saisir de mot de passe. Ceci peut s'avérer utile, par exemple, pour créer un compte d'utilisateur invité : les utilisateurs occasionnels et de passage n'auront pas à connaître de mot de passe pour utiliser votre ordinateur. Le paramétrage se fait comme suit :

  1. Ouvrez le fichier /etc/pam.d/gdm à l'aide d'un logiciel d'édition de texte. (Vous aurez besoin des droits d'administration pour modifier ce fichier.)
  2. Repérez la première ligne débutant par @include. Au-dessus de celle-ci, ajoutez la ligne suivante :
    auth sufficient pam_listfile.so item=user sense=allow file=/etc/gdm/nopassusers.txt onerr=fail

    Enregistrez les modifications à ce fichier.

  3. Toujours à l'aide de votre éditeur de texte disposant des droits d'administration, créez un nouveau fichier /etc/gdm/nopassusers.txt. Dans ce fichier, inscrivez les noms des comptes d'utilisateurs dispensés de saisir leur mot de passe à la connexion, chacun sur une ligne.

Nous vous rappelons que cette procédure ne crée pas un compte ne possédant pas de mot de passe : elle ne permet que la connexion à une session sans saisir de mot de passe.

Sur GDM 2.20 et antérieurs Le même résultat peut être obtenu depuis l'interface graphique :
  1. Menu/Administration/Utilisateurs et groupes
  2. Sélectionner un utilisateur et choisir "mot de passe…"
  3. Cocher "Ne pas demander de mot de passe à la connexion" et valider.

Sur la nouvelle version de GDM la même manipulation doit être effectué en passant pas gconf-editor (faire ALT+F2 et taper gconf-editor) :

  1. activer la clef dans /desktop/gnome/lockdown/disable_lock_screen

De nombreux thèmes sont déjà disponibles sur internet, mais il se peut que vous ayiez envie de vous lancer dans la création (ou la modification) d'un thème pour GDM.

Avant toute chose, prenez le temps de visiter ces sites :

Vous y trouverez peut-être un thème correspondant parfaitement à vos besoins, un thème à modifier ou des idées pour votre futur thème ;-)

Si vous avez des questions sur GDM en général, lisez l'article de présentation dédié à GDM

Localisation du thème

Les thèmes de gdm sont stockés dans le dossier "/usr/share/gdm/themes/". Chaque thème contient un fichier "GdmGreeterTheme.desktop" et un fichier ".xml" au minimum.

Le dossier du thème contient également les images utilisées, celles-ci sont appelées dans le fichier xml.

En général il y a un fond (background), un écran de login (login) et une capture d'écran (screenshot). Il n'y a pas vraiment de règles pour le nommage de ces fichiers, mais les noms mis entre parenthèses sont les plus courants.

Le fichier GdmGreeterTheme.desktop

Le fichier GdmGreeterTheme.desktop contient les informations sur le thème.

Exemple de fichier GdmGreeterTheme.desktop :

[GdmGreeterTheme]
Encoding=UTF-8
Greeter=ubuntu-fr.xml
Name=Ubuntu-fr
Name[fr]=Ubuntu-fr
Description=Ubuntu-fr's Gdm theme
Description[fr]=Le thème Gdm d'Ubuntu-fr
Author=Ubuntu-fr's community
Author[fr]=La communauté Ubuntu-fr
Copyright=GPL Ubuntu-fr.org
Copyright[fr]=GPL Ubuntu-fr.org
Screenshot=screenshot.png
  • Encoding correspond à l'encodage de votre fichier xml.
  • Name, Description, Author et Copyright sont les informations sur votre thème
  • Screenshot correspond à une capture d'écran de votre thème en action (voir Tester un thème).

Note : Si la résolution du screenshot est différente de 200x150, il sera redimensionné automatiquement lors de l'affichage dans "gdmsetup". Faites donc en sorte de faire un screenshot en 4:3 pour que l'affichage soit joli.

Note : Comme dans tous les .desktop, il est possible de localiser les informations en ajoutant le suffixe [langue] (où langue est à remplacer par le descripteur de la langue de destination). Pour voir la liste complète des traductions courantes, regardez un des fichiers .desktop dans votre répertoire de thème gdm (/usr/share/gdm/themes).

Le fichier ".xml"

Le fichier XML contient des balises standards (assez peu pratiques) correspondant aux différents éléments de l'écran de login. Cet article sera complété afin de détailler chacune des balises disponibles.

Le minimum vital tient dans un mouchoir de poche, sachez ne pas vous limiter à ce minimum ;-)

Le minimum vital

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE greeter SYSTEM "greeter.dtd">
<greeter>
 
<!-- éléments à afficher -->
 
</greeter>

Dans l'absolu, cette présentation (à compléter avec les éléments à afficher bien entendu) est suffisante. Cependant, il existe des normes qui permettent de faire un fichier xml propre, clair et réutilisable.

La base

Quelques conseils pour commencer :

  1. Indenter le code !
  2. Faire des sections précises en utilisant les commentaires
  3. Minimiser le nombre de balises utilisées

Pour indenter : il suffit d'ajouter un espacement (1/2/3/4 espaces ou une tabulation) après chaque ouverture de balise et d'enlever un espacement équivalent après chaque fermeture de balise.

Pour commenter : on utilise "<!--" pour ouvrir le commentaire et "-->" pour le fermer. Les sections courantes (données dans un ordre quelconque) sont :

  • Background (l'image en fond d'écran)
  • Login (l'image de l'écran de login)
  • Clock (l'horloge)
  • Login (le contenu de l'écran de login : Bienvenue, Labels et champs de saisie)
  • Options (les options permettant de choisir la langue, la session, etc.)
  • Erreurs (verr.maj activé, erreur de login ou mot de passe, etc.)

Ces sections sont données à titre indicatif. L'essentiel est que vous délimitiez vos sections précisément.

Voyons enfin quelques exemples de contenu pour vous aider à comprendre et à façonner votre fichier xml.

La taille et le positionnement

<!-- background -->
  <item type="pixmap">
    <normal file="background.png"/>
    <pos y="0" x="0" width="100%" height="100%"/>
  </item>

Le type "pixmap" est utilisé pour les images au format png, jpg, jpeg.

<!-- background -->
  <item type="svg">
    <normal file="background.svg"/>
    <pos x="50%" y="0" width="100%" height="-75"/>
  </item>

Le type "svg" est utilisé pour les images au format svg (image vectorielle).

Notez les différentes façon de spécifier la position et la hauteur : en valeur absolue ou en pourcentage (il en existe bien d'autres, sûrement trop d'ailleurs). Le pourcentage permet une adaptabilité à différentes résolutions. En effet, le pourcentage est fonction de la taille ou de la position de l'élément englobant. Dans le cas du fond d'écran, 100% correspond à "occupe toute la place disponible sur l'écran".

La réaction au survol et au clic

Cet exemple est compliqué (mais complet), n'hésitez pas à faire des aller/retour entre le code la description (située en-dessous du code). L'essentiel est de saisir la notion de réactivité d'un élément.

<!-- options -->
  <item type="rect" id="options_button" button="true">
    <pos y="50%" width="box" height="box" anchor="w"/>
    <box xpadding="0" spacing="2" orientation="horizontal">
      <item type="pixmap">
        <normal file="icon-session.png"/>
        <prelight file="icon-session-prelight.png"/>
        <active file="icon-session-active.png"/>
      </item>
      <item type="label">
        <normal font="Bitstream Vera Sans 11" color="#ffffff"/>
        <prelight font="Bitstream Vera Sans 11" color="#ff9c36"/>
        <active font="Bitstream Vera Sans 11" color="#dc292b"/>
        <pos y="50%" anchor="w"/>
        <stock type="options"/>
      </item>
    </box>
  </item>

Premièrement, l'id d'un élément correspond à un code prédéfini et reconnu par Gdm. Dans une prochaine révision de cet article, les différents id seront présentés.

Ensuite, le placement est réalisé de façon un peu "fouillis". Malheureusement c'est souvent le cas. On voit un florilège d'attributs (anchor, spacing, xpadding, orientation, x) aux valeurs tout aussi diverses.

Passons ces remarques, l'intérêt de cet exemple est le triplet de balises correspondant à l'état de l'élément :

  1. <normal /> : "au repos"
  2. <prelight /> : survol de la souris
  3. <active /> : clic de souris

Dans ces trois états, on peut spécifier la taille et le type de la police (font="") et sa couleur (color="#") ou alors l'image à afficher. La couleur est donnée en hexadécimal, voir ce lien : Tableau des couleurs

Tester un thème

GDM inclut un testeur de thème appelé gdmthemetester. Ce programme a deux paramètres : l'environnement dans lequel tester le thème et le nom du thème à tester.

Dans cet exemple on utilisera l'environnement Xnest. Ainsi, gdmthemetester va afficher une fenêtre contenant GDM.

Note : Xnest permet de lancer un serveur X dans une fenêtre, il a bien d'autres utilisations. Pour l'installer : apt://xnest

La commande est :

gdmthemetester xdmcp ubuntu-fr

Note : xdmcp correspond à l'environnement Xnest mais d'autres environnements sont disponibles. Lancez gdmthemetester sans paramètre pour en savoir plus ou consultez la doc en anglais

Note : La résolution de la fenêtre Xnest est 800x600 par défaut. Pour choisir une résolution différente il faut, au préalable, modifier la variable d'environnement XNESTSIZE.

export XNESTSIZE=1024x768

Publier un thème

Pour publier un thème, il suffit de créer une archive contenant le dossier du thème.

Par exemple, on va créer l'archive pour notre thème ubuntu-fr dans le répertoire courant :

tar czvf ubuntu-fr.tar.gz /usr/share/gdm/themes/ubuntu-fr/

Langue de saisie du login

C'est celle de generic keyboard du fichier /etc/X11/xorg.conf. Au cas où elle s'obstinerait au clavier us, voir X.org pour la repasser à fr.

Bibliographie

Si l'utilitaire ne vous permet pas la modification souhaitée, vous pouvez modifier à la main le fichier de configuration. Sous Lucid Lynx, il s'agit de /etc/gdm/custom.conf. Sa syntaxe est assez classique. Une ligne commençant par '#' est un commentaire. Les paramètres sont spécifiés par des lignes du type "clé=valeur".

Utilisateurs listés

Pour lister tous les utilisateurs, utiliser :

IncludeAll=true

Sinon, utiliser «IncludeAll=false» et spécifier la liste des identifiants séparés par des virgules. Exemple :

IncludeAll=false
Include=Marie,Jean,invite

Si vous avez ubuntu 8.10 Intrepid et que vous avez un message d'erreur qui ressemble à cela après une mise à jour :

$HOME/.dmrc ignoré [...] accordez les droits 644 au fichier $HOME/.dmrc [...]

Faites ces commandes pour rétablir les droits :

chown votre_user $HOME/.dmrc 
chmod 755 $HOME
chmod 644 $HOME/.dmrc

Puis priez, ou rebootez ;-). (edit: avant de rebooter, un ctrl-alt-backspace (remplacé par alt-syst-k) pour redémarrer X doit suffire)


Problème de démarrage de GDM

Il est possible que par inadvertance, vous ayez décoché tous les thèmes dans la liste de sélection. Dans ce cas, GDM se désactive automatiquement, et il est impossible de le relancer, même par le Menu Systeme.
De plus, après avoir cliqué sur le bouton éteindre, les choix Arrêter et hiberner sont indisponibles ! Dans ce cas, pas de panique ! =) Démarrez la console, et tapez simplement :

sudo invoke-rc.d gdm restart

Et Hop, le tour est joué et GDM réactivé avec son thème par défaut !

GDM ne montre pas votre Avatar

Si vous avez opter pour l'affichage des avatars (liste des utilisateurs avec figures) GDM affiche ceux définis en utilisant A propos de moi dans le menu Système|Préférences de chaque utilisateur. Pour le modifier il suffit de lâcher la nouvelle image sur l'ancienne. Le programme en fait une copie dans le fichier caché /home/utilisateur/.face qui peut être utiliser par d'autres programmes pour vous représenter (comme Giver par exemple). GDM n'affiche que l'avatar par défaut quand il n'a pas les droits suffisant pour accéder a l'image. La solution est de lancer dans un terminal : sudo chmod o+r /home/utilisateur/.face

GDM recherche en priorité l'avatar dans "/var/cache/gdm/utilisateur", vous y trouverez un fichier nommé "face", vérifiez qu'il s'agit bien d'un fichier et non d'un répertoire, pour plus de sûreté, écrasez le avec le fichier "/home/utilisateur/.face"

—-

Contributeurs principaux : FIXME.

Contribution : .amalric. pour le bug de l'avatar.

Contribution : BlackCore note tip GDM 2.28 (seulement modification)

Contribution : Aurlin pour le bug après downgrade de gdm 2.28 > 2.20 sous lucid (2 serveurs X dont 1 inexistant qui est gdm 2.28)

  • gdm.1288522526.txt.gz
  • Dernière modification: Le 31/10/2010, 11:55
  • par 80.236.227.184