====== Slim: login manager léger et esthétique ====== Auteur: [[contributeurs:Wedge|Wedge]] ===== Introduction ===== Slim est un "login manager", autrement dit, un gestionnaire de connexion (dans notre belle langue à nous). A quoi ça sert ? A se connecter, he voui ma bonne dame !\\ Plus sérieusement, c'est la première fenêtre graphique que vous voyez apparaitre après avoir booté (sous Slackware, bien entendu :-P).\\ C'est la fameuse fenêtre qui vous demande votre **login** et votre **mot de passe** Les logins managers les plus connus sont: * kdm: dépendant de la librairie Qt et qui s'intègre bien à l'environnement KDE * gdm: dépendant de la librairie Gtk et qui s'intègre bien à l'environnement Gnome * xdm: qui ne dépend pas de grand chose mais qui est moche au possible ;-) * entrance: dépendant des librairies enlightenment (entre autres) et qui est le must du must pour aller avec E17 Il en existe d'autres, moins connus ... Slim fait partie de ceux là. Pourquoi j'ai choisi Slim ? Parce qu'il est léger et esthétique à la fois, qu'il ne demande que très peu de dépendances (on verra en fait qu'il ne demande rien de plus que ce que vous n'avez déjà !) et qu'il est parfaitement configurable et thémable en toute simplicité. Vous être prêts ? Alors c'est partiiiii !! ===== Télécharger les sources ===== La première étape, bien entendu, consiste à télécharger les sources, c'est ici: [[http://slim.berlios.de|Site officiel du projet Slim]]. Au moment où j'écris cet article, la dernière version est la **1.2.6**. Il semblerait par contre que le serveur d'hébergement du projet soit dans les choux à certains moments. Si c'est encore le cas, n'hésitez pas à me contacter à [[wedge.ant@gmail.com]], je me ferais un plaisir de vous envoyez les sources :). Je n'ai pas encore parlé des dépendances de ce programme ... tout simplement parce qu'elles sont déjà installées sur votre machine ! En effet, Slim requiert très peu de dépendances, et aucune n'est exotique: **libpng**, **libjpeg**, **libz**, **libstdc++** et les libs de **X**. Vous avez déjà tout ça par défaut sur votre Slackware :-D Voila donc le premier point de réglé :-) ===== Compiler et installer Slim ===== Passons à la suite, les étapes habituelles: extraction, compilation, installation [wedge@chimaera ~]$ tar zxf slim-1.2.6.tar.gz [wedge@chimaera ~]$ cd slim-1.2.6 [wedge@chimaera slim-1.2.6]$ ls -l total 228 -rw-r--r-- 1 wedge users 23467 sep 15 2006 app.cpp -rw-r--r-- 1 wedge users 2085 sep 15 2006 app.h -rw-r--r-- 1 wedge users 8445 sep 15 2006 cfg.cpp -rw-r--r-- 1 wedge users 1288 sep 15 2006 cfg.h -rw-r--r-- 1 wedge users 2689 sep 15 2006 ChangeLog -rw-r--r-- 1 wedge users 1256 sep 15 2006 const.h -rw-r--r-- 1 wedge users 17982 sep 15 2006 COPYING ... -rw-r--r-- 1 wedge users 611 sep 15 2006 main.cpp -rw-r--r-- 1 wedge users 2009 sep 15 2006 Makefile -rw-r--r-- 1 wedge users 2222 sep 15 2006 Makefile.freebsd -rw-r--r-- 1 wedge users 2181 sep 15 2006 Makefile.netbsd -rw-r--r-- 1 wedge users 2718 sep 15 2006 Makefile.openbsd ... -rw-r--r-- 1 wedge users 0 sep 15 2006 xidle.cpp -rw-r--r-- 1 wedge users 0 sep 15 2006 xidle.h -rw-r--r-- 1 wedge users 162 sep 15 2006 xinitrc.sample [wedge@chimaera slim-1.2.6]$ On apprend qu'il n'y a pas de script **configure**, ce script est bien souvent utilisé pour vérifier les dépendances, préparer le **Makefile** et faire certains tests sur le système. Qu'à cela ne tienne, nous disposons d'un fichier **Makefile** déjà tout prêt (on constate d'ailleurs que les systèmes *BSD n'ont pas été oubliés). C'est donc le moment de faire chauffer le processeur: [wedge@chimaera slim-1.2.6]$ make La compilation est très rapide et ne présente logiquement aucune difficulté, si jamais elle se passe mal, pensez à lire les fichiers **README** et **INSTALL**, ainsi qu'à vérifier les dépendances principales: **libpng**, **libjpeg**, **Xorg** Une fois la compilation terminée correctement, on peut passer à l'installation: [wedge@chimaera slim-1.2.6]$ su mot de passe: [root@chimaera slim-1.2.6]# make install ... [root@chimaera slim-1.2.6]# exit Vous n'oublierez pas, bien entendu, de vous créer un zoli package Slackware pour tout réinstaller d'un seul coup en cas de besoin. Pour ça, je vous oriente donc vers le très bon [[articles:administration:Manuel empaquetage Slackware]] mis en place par [[contributeurs:Mushroom|Mushroom]] :-) ===== Configurer et utiliser Slim ===== Cette étape consiste à appeler Slim comme login manager à la place de celui que vous utilisez actuellement: kdm, gdm, xdm etc ... Sur une Slackware, ça se passe dans le fichier ''/etc/rc.d/rc.4''. Voyons un peu ce qu'il contient: #! /bin/sh # # rc.4 This file is executed by init(8) when the system is being # initialized for run level 4 (XDM) # # Version: @(#)/etc/rc.d/rc.4 2.00 02/17/93 # # Author: Fred N. van Kempen, # At least 47% rewritten by: Patrick J. Volkerding # # Tell the viewers what's going to happen... echo "Starting up X11 session manager..." [...] # error echo echo "Hey, you don't have KDM, GDM, or XDM. Can't use runlevel 4 without" echo "one of those installed." sleep 30 # All done. A la place des "**[...]**" se trouvent les différents appels aux différents logins managers. Le principe consiste à vérifier la présence de l'exécutable correspondant, puis à l'exécuter si on l'a trouvé. Patrick Volkerding a configuré ce fichier dans l'ordre qui suit: gdm, kdm puis xdm. Pour prendre en compte Slim, nous allons donc ajouter un appel au programme juste avant celui à gdm, pour être bien sur que c'est celui-ci qui passera en premier. Il faut donc ajouter, après la ligne echo "**Starting up X11 session manager...**", les lignes suivantes: if [ -x /usr/bin/slim ]; then exec /usr/bin/slim -d fi L'option ''-d'' permet de lancer Slim en tant que //démon//, c'est à dire détaché de toute console. Cette option est recommandée par l'équipe de développement de Slim.\\ A partir de ce moment, vous pouvez voir si tout s'est bien passé en rebootant (l'autre moyen consiste à passer en mode console, puis à revenir en mode X, via ''init 3'' et ''init 4'' ...).\\ Slim devrait alors se charger avec l'écran de connexion par défaut, il ne reste plus qu'à entrer votre **login** et votre **mot de passe**. Slim chargera automatiquement le WM que vous utilisez par défaut. Vous pouvez néanmoins jeter un oeil au fichier de configuration ''/etc/slim.conf'', et modifier au besoin certaines options: * **default_path**: vous pouvez retirer ''/usr/X11R6/bin'' de la liste si vous êtes en **-current** ou en **12.0** * **default_xserver**: vous devez remplacer ''/usr/X11R6/bin/X'' par ''/usr/bin/X'' si vous êtes en **-current** ou en **12.0** * **console_cmd**: vous devez remplacer ''/usr/X11R6/bin/xterm'' par ''/usr/bin/xterm'' si vous êtes en **-current** ou en **12.0** * **numlock**: vous pouvez décommenter la ligne correpondante si vous souhaitez activer le numlock de votre clavier automatiquement avec Slim * **sessions**: vous pouvez lister ici les différents WM que vous souhaiterez utiliser, séparés par des virgules. Il faudra par la suite modifier le fichier caché ''.xinitrc'' qui se trouve dans votre répertoire personnel pour prendre en compte ces modifications Par défaut, tous les messages affichés par Slim sont en anglais, mais libre à vous de les traduire, ou bien de mettre ce que vous voulez au niveau des messages: * **welcome_msg**: message affiché sur la fenêtre de connexion de Slim * **shutdown_msg**: message lors de l'arrêt de l'ordinateur * **reboot_msg**: message lors du redémarrage de l'ordinateur Nous venons de voir plus haut que la modification de l'option **sessions** demande par la suite de modifier le fichier ''~/.xinitrc'' (fichier caché à la racine de votre répertoire personnel). Ce fichier contient les commandes nécessaires au lancement de votre WM par défaut. Ainsi pour une ligne de sessions comme ceci: sessions fluxbox,xfce4,kde Il faut un fichier ''.xinitrc'' comme ceci: case $1 in fluxbox) exec startfluxbox ;; xfce4) exec startxfce4 ;; kde) exec startkde ;; *) exec twm ;; esac On voit que chaque WM dispose d'un script de lancement ''start(bidule)'', mais si jamais ce n'est pas le cas pour votre WM, il vous suffit d'appeler simplement l'exécutable principal correspondant (''fvwm2'', ''blackbox'', ''ion'' etc ...). Et au cas où l'option choisie par l'utilisateur ne se trouverait pas dans la liste, l'option par défaut charge le WM nommé ''twm'' qui est vraiment minimaliste et spartiate, mais qui permet d'avoir quelque chose de graphique ... bien entendu, il peut être remplacé par quelque chose de plus élaboré ;-) La liste des WM correspondant à la ligne ''sessions'' est ensuite accessible sous Slim en appuyant sur la touche **F1** ===== Customiser Slim ===== C'est ici que l'on se rend compte de la relative puissance de Slim !\\ En effet, tout (ou presque ^_^) est modifiable: * L'image de fond * L'emplacement des cellules ''login'' et ''password'' * La possibilité d'avoir ces deux cellules présentes dès le départ, ou bien que ''password'' n'apparaisse qu'après que ''login'' ait été validée Pour ça, il suffit de se créer un **thème** Slim ! :-) Un thème est composé de 3 fichiers: * Un fichier texte: ''slim.theme'' * Une image de fond: ''background.jpg'' ou ''background.png'' * Une image dessinant les cadres des cellules login et password: ''panel.jpg'' ou ''panel.png'' Commençons par le plus simple, l'image de fond, vous pouvez choisir ce que vous voulez ! :-D Pour ce que j'appelerais le //panel//, qui contient les cadres pour ''login'' et ''password'', il faut faire attention à la transparence de ce fichier car il est superposé sur l'image de fond. Le panel du thème par défaut ne propose qu'un seul cadre qui sert tout d'abord à entrer son login, puis son mot de passe, mais on peut choisir d'en mettre deux: | Un seul cadre | {{articles:xwindow:slim:panel1.png}} | | Deux cadres | {{articles:xwindow:slim:panel2.png}} | Finalement, le fichier ''slim.theme'' qui va agencer le tout et faire en sorte que vous disposiez d'un joli login manager. Prenons l'exemple d'un login manager vous proposant deux cadres alignés au centre de manière horizontale, en bas de l'écran de manière verticale, et vous souhaitant la bienvenue sur votre machine ;-). Les options sont assez claires généralement, mais j'ai ajouté des commentaires dans le fichier: # Messages (affichage du reboot, de l'extinction etc ...) msg_color #f4f5cb msg_font Verdana:size=16:bold:dpi=75 msg_shadow_xoffset 2 msg_shadow_yoffset 2 msg_shadow_color #333333 # Affichage de l'image de fond: "stretch" (image étirée) ou "tile" (image tuilée) background_style stretch # Positionnement du panel et des entrées utilisateur (login et password) # x à 50% -> panel centré horizontalement input_panel_x 50% # y à 75% -> panel vers le bas de l'écran input_panel_y 75% # positionnement des cadres dans l'image, en pixels, coin haut-gauche input_name_x 146 input_name_y 65 input_pass_x 146 input_pass_y 110 input_font Verdana:size=12:dpi=75 input_color #f4f5cb # Message de bienvenue welcome_font Verdana:size=20:bold:outline:dpi=75 welcome_color #f4f5cb welcome_x 80 welcome_y 20 welcome_msg Bienvenue sur %host ! welcome_shadow_xoffset 2 welcome_shadow_yoffset 2 welcome_shadow_color #333333 # Messages affichés à côté des cellules "login" et "password" du panel username_color #e3d6aa username_msg Login username_font Verdana:size=14:bold:dpi=75 username_x 46 username_y 65 username_shadow_xoffset 1 username_shadow_yoffset 1 username_shadow_color #333333 password_msg Password password_x 46 password_y 110 Il ne vous reste plus qu'à créer un sous-répertoire portant le nom de votre choix dans le répertoire ''/usr/share/slim/themes'', à y copier vos fichiers ''background.*'' ''panel.*'' et ''slim.theme''.\\ Vous devrez ensuite éditer le fichier ''/etc/slim.conf'' et modifier la ligne: current_theme default en mettant à la place de ''default'', le nom de votre sous-répertoire :-) ===== Capture d'écran ===== En cadeau, voici une capture d'écran du Slim que j'utilise actuellement :-P {{ articles:xwindow:slim:background.jpg }} ===== Conclusion ===== Voila c'est fini !\\ J'espère que cet article vous aura été utile et que vous utiliserez Slim désormais ;-) A bientôt sur [[http://slackfr.org|slackfr.org]] :-D