XDM-photo,
un chouette XDM pour LINUX

Article pour l'Echo de Linux (Juillet 1996)

Pierre Ficheux (pierre@rd.lectra.fr)


Résumé

Cet article présente le programme XDM (X Display Manager) ainsi que sa version améliorée XDM-photo. Une description des fichiers de configuration est donnée ainsi que les ressources spécifiques à XDM-photo et les diverses méthodes permettant de créer facilement les fichier XPM utilisées par XDM-photo.

Sommaire

Qu'est-ce qu'XDM ?

XDM (X Display Manager) est un client standard de la distribution X Window System. Ecrit à l'origine par Keith Packard, il est utilisé pour gèrer différents displays X. Le cas le plus fréquent d'utilisation est le contrôle d'un parc de terminaux X.

XDM se charge du controle du login/logout des utilisateurs, du test de l'activité du serveur X sur chaque display. Le dialogue entre le démon xdm sur le host et le serveur X utilise un protocole appelé XDMCP (XDM Communication Protocol) développé par NCD (NetworkComputing Devices) leader des constructeurs de terminaux X.

Cependant, XDM peut aussi être utilise sur une station de travail. Au lieu d'utiliser le programme xinit depuis une rustique session en mode texte, XDM permet un login directement dans un écran X. le programme chooser, compilé avec xdm permet également de selectionner la station sur laquelle vous désirez vous loger.

Configuration de XDM

XDM est livré pré-configuré sur la plupart des distributions LINUX avec les packages XFree86. Voici cependant une description sommaire des fichiers principaux permettant le paramètrage de XDM. Comme tous les clients X, xdm est complètement configurable par ressources.

Les fichiers de configuration sont placés sur le répertoire /usr/X11R6/lib/X11/xdm.

Démarrage du démon XDM

Le programme xdm peut être lancé à tout moment et devient automatiquement un démon (pas de caractère '&' nécessaire) :

	# xdm 

Cependant, il est recommandé de le lancer à partir d'une fichier de démarrage du système comme par exemple /etc/rc.d/rc.local

	...
	# XDM
	echo Starting the XDM daemon
	/usr/X11R6/bin/xdm
	...

Les apports de XDM-Photo

Introduction

Bien que les fonctionnalités de XDM soient supérieures à celle du simple programme de lancement xinit, son aspect est extrèmement sobre (voire épuré !). C'est la raison pour laquelle un bon nombre de constructeurs fournissent une version améliorée de XDM (Silicon Graphics, HP, SCO). Ces versions permettent en particulier le login d'un utilisateur par simple clic sur une icone (par exemple leur photographie).

Une telle amélioration n'est pas réellement difficile à réaliser à partir des sources originaux car XDM utilise la librairie des X Intrinsics (appelée également Xt).

Cette librairie, utilisant une approche objet, définit des classes de bases pour des widgets (en fait des objets graphiques comme des boutons, des conteneurs, des zones de saisie, etc..). La bannière XDM elle-même utilise un widget spécial appelé Login ce qui fait que la partie graphique du programme xdm est complètement indépendante de la partie système.

Il suffit donc de modifier le widget Login pour modifier complètement l'aspect du programme.

Le widget Login modifié

Au lieu de gèrer simplement un login et un mot de passe, le nouveau widget construit une liste d'utilisateurs à partir du fichier /etc/passwd (et également /etc/shadow si l'on utilise les shadow password). Pour chaque nom d'utilisateur, le widget tente de trouver un fichier d'image associé au nom sous la forme nom_login.xpm sur le répertoire /usr/X11R6/lib/X11/xdm/pixmaps.

Les fichiers d'images utilisent le format XPM développé par Arnaud Le Hors et les membre du projet Koala pour la société Bull.

Si un fichier XPM existe, il est affiché dans la bannière au dessus de votre nom, il suffit donc de double-cliquer sur l'icone pour se loger (si on a un mot de passe, il faudra tout de même utiliser le clavier pour le saisir...) .

Un exemple d'utilisation de XDM-photo est la création d'un login d'arrêt de la machine associé à un login. Vous pouvez définir un login powerdown dans /etc/passwd

	powerdown::0:0:Shutdown:/powerdown:/bin/sh
Le répertoire /powerdown doi contenir un fichier .profile du type
	echo Shutting down `hostname`...
	/etc/shutdown -rf now
Vous pouvez d'ores et déja arrêter votre PC en cliquant sur l'icone

Nouvelles ressources

Voici une description des nouvelles ressources ajoutées a celles du widget Login initial. Toutes ces ressources se affectent la classe Login.

Comment créer des pixmaps XPM

Les fichier nom_login.xpm peuvent être crées en utilisant l'éditeur pixmap (écrit par
Lionel Mallet). Cet éditeur à une interface similaire à celle de l'éditeur de bitmap X bitmap. Cependant, la création d'un beau pixmap est une tâche ardue (surtout pour moi !) et il est beacoup plus facile de modifier une image existante (digitalisée à partir d'une photo réelle) ou bien de télécharger une icone de l'Internet. Une grande collection d'icones est disponible en particulier sur :

server.berkeley.edu:/pub/AIcons

Si vous devez manipuler des images, vous pouvez utiliser le package Netpbm (anciennement PBM+) qui contient des convertisseurs de format XPM (xpmtoppm et ppmtoxpm). Une conversion typique d'un fichier GIF en XPM avec réduction à 8 couleurs sera:

giftoppm file.gif | ppmquant -8 | ppmtoxpm > file.xpm
Si vous disposez d'un display avec seulement 256 couleurs, il est trèe important de réduire drastiquement le nombre de couleurs de chque icone afin de ne pas saturer la table des couleurs.

Vous pouvez également utiliser xv-3.01, un superbe shareware écrit par John Bradley qui permet la manipulation et la conversions entre divers formats d'images dont le XPM.

Une taille correcte pour un moniteur classique (15 ou 17") peut être par exemple une icone de 40x60 pixels.

Comment compiler XDM-photo

XDM-photo est largement basé sur la distribution source de XDM. La compilation se résume à
	xmkmf
	make Makefiles
	make depend
	make 
	make install
	make install.man
J'utilise XDM-photo principalement sur LINUX avec XFree86-3.1.2 mais également sur les architectures suivantes:

Archives téléchargeables

Vous pouvez télécharger les produits suivants cités dans cet article: