Page suivantePage précédenteTable des matières

3. Mise en place d'un environnement de type borne

3.1 FVWM2

FVWM2 (FVWM, version 2 -- www.fvwm.org) fournit un gestionnaire de fenêtres pour X souple, fiable et léger qui s'avère très pratique à configurer pour un environnement de borne. On modifiera certaines options par défaut dans le system.fvwm2rc tels les écrans virtuels, les barres de menu, les menus de sortie, etc. pour ne conserver qu'un cadre FVWM minimal. La borne étant autonome, la modification des préférences globales ne gênera en rien.

On profite également des propriétés d'objets positionnables pour mettre en place des bitmaps X Window (fichiers xpm) qui vont recouvrir les parties de Netscape auxquelles vous souhaitez interdire l'accès.

Le fichier à modifier se trouve en /etc/X11/fvwm2/system.fvwm2rc (du moins si vous avez installé une distribution Red Hat). Vous devrez partir à la recherche des sections décrites ci-dessous dans ce fichier.

/etc/X11/fvwm2/system.fvwm2rc

Dans le fichier /etc/X11/fvwm2/system.fvwm2rc changez :

DeskTopSize 2X2

en

DeskTopSize 1X1

Les bureaux virtuels disparaissent.

Dans la section Default Styles, changez ensuite :

Style "*"           BorderWidth 7, HandleWidth 7

en

Style "*"           BorderWidth 0, HandleWidth 0, notitle, nohandles

La plupart des contrôles usuels des fenêtres sont désactivés.

Ajoutez les deux lignes suivantes à la section Default Styles :

Style "xdaliclock"  StaysOnTop
Style "sxpm"        StaysOnTop

La section Default Styles devrait prendre l'allure suivante :

# default Styles:
#Style "*"           BorderWidth 7, HandleWidth 7
Style "*"           BorderWidth 0, HandleWidth 0, notitle, nohandles
Style "*"           Icon unknown1.xpm, Color lightgrey/dimgrey
Style "*"           MWMFunctions, MWMDecor, HintOverride
Style "*"           DecorateTransient, NoPPosition
Style "*"           IconBox 0 -10 -280 -1
Style "*"           FocusFollowsMouse
Style "*"           RandomPlacement, SmartPlacement
Style "xdaliclock"  StaysOnTop
Style "sxpm"        StaysOnTop

Vous pouvez recouvrir certaines parties de Netscape Navigator avec les programmes xdaliclock et sxpm. La formule magique réside dans l'attribut ``StaysOnTop''.

Cherchez ensuite les quatre lignes suivantes et commentez-les :

#AddToFunc InitFunction         "I" Module FvwmButtons
#+                      "I" exec xsetroot -mod 2 2 -fg \#554055 -bg \#705070
#AddToFunc RestartFunction "I" Module FvwmButtons
#+                      "I" exec xsetroot -mod 2 2 -fg \#554055 -bg \#705070

La mise en commentaire élimine l'exécuteur de tâches de Fvwm2, en accord avec le souhait d'un environnement aussi simple que possible.

3.2 Netscape Navigator

Netscape Navigator est un meilleur choix pour une borne interactive que Netscape Communicator. Il est plus simple, il y a moins d'objets à cacher.

Sous Windows(R) de Microsoft(TM), Netscape Navigator offre un mode de fonctionnement de type borne qui élimine la plupart des options de contrôle mais il n'existe à notre connaissance aucune possibilité de ce genre pour la version Unix à l'instant où nous écrivons ces lignes.

La version Unix peut cependant être invoquée avec un argument -geometry qui nous permet de toujours l'afficher en plein écran. Cela fait partie de notre stratégie pour une borne reposant sur Netscape.

À vous de décider de la résolution de la borne. Pour des moniteurs de 19 à 20 pouces, 640x480 nous paraît trop gros, 1024x768 trop petit et 800x600 correct pour le public (vous en jugerez peut-être différemment). Une fois la résolution fixée, vous êtes prêt à configurer Navigator. Par la suite, nous travaillerons en 800 par 600. À vous de procéder aux ajustements nécessaires si votre résolution diffère.

Note: Navigator sera exécuté par root pendant le démarrage. Il faut donc procéder à toutes les opérations depuis le compte root dans le répertoire /root/.netscape.

Exécutez Netscape et cliquez sur le menu Edit, Preferences. Dans la rubrique Appearance, activez ``Show Toolbar as Text Only''. Dans Appearance, Fonts, réglez la taille des polices fixed- et variable-width à au moins 14pt sans quoi la zone d'affichage sera trop petite pour une lecture agréable.

Entrez dans Preferences, Navigator l'URL de la page d'accueil de votre borne. Si vous utilisez Apache ou un autre serveur web en local, http://localhost/ donne accès au sommet de l'arborescence. Vous pouvez compléter afin de démarrer plus profondément.

Sauvegardez ces choix puis cliquez sur View dans la barre de menu de Navigator. Désactivez Personal Toolbar et Location Bar.

L'interface ressemble nettement plus à celle d'une borne, non ? Vos choix seront sauvegardés à la sortie de Navigator.

3.3 Recouvrement de Navigator

Examinez de près votre écran Navigator et vous remarquerez quatre zones qui doivent être recouvertes et protégées des sélection à la souris ou à la boule :

  1. la barre de menu en haut ;
  2. le sélectionneur sur le côté gauche de la barre de navigation ;
  3. tout ce qui figure à droite de Home dans la barre de navigation ;
  4. le contrôle de sécurité dans le coin inférieur gauche de Navigator.

Voici un schéma des zones à masquer :

+---------------------------------------+
|            # 1 Toolbar                |
+--+------------+-----------------------+
|#2|            |  #3 Navbar            |
+--+            +-----------------------+
|                                       |
|                                       |
|                                       |
|                                       |
|                                       |
|                                       |
|                                       |
|                                       |
|                                       |
|                                       |
+--------+                              |
|#4 Key  |                              |
+---------------------------------------+

Pour les zones supérieures (#1-3), on aura recours à trois images. Pour le contrôle de sécurité (#4), on emploiera xdaliclock.

Création des masques

L'approche la plus facile pour les zones #1-3 consiste à récupérer une copie d'écran de Navigator en 800 par 600 et à découper les parties adéquates. Je me suis servi de GIMP.

Vous pouvez reprendre le graphisme d'origine, changer les couleurs ou mettre votre propre logo. Sauvegardez les images en tant que :

  1. topbar.xpm
  2. navleft.xpm
  3. navright.xpm

Le système X Window utilise xpm comme format natif. Servez-vous du programme sxpm pour les placer sur l'écran.

La mise au point des masques avec le nombre exact de pixels au bon endroit nécessitera plusieurs essais. Afin de vous aider, les fichiers xpm que nous avons créés et nos fichiers de configuration sont disponibles sur le site suivant : http://www.rom.on.ca/kiosk/HOWTO/. Télécharger nos fichiers et vous en servir comme point de départ sera sûrement le plus simple.

3.4 /root/kiosk.xinitrc

De même que vous créeriez normalement un fichier .xinitrc pour votre usage personnel, vous devez mettre en place un fichier d'initialisation de session X pour votre application. Le script suivant offre différentes fonctionnalités :

Il s'agit du fichier principal de fonctionnement de la borne.


#!/bin/sh
# kiosk.xinitrc -- Script d'initialisation de session X (borne interactive)
# Demarrage de l'economiseur d'ecran
/usr/X11R6/bin/xscreensaver-command -exit
/usr/X11R6/bin/xscreensaver &
# Recouvrement de Navigator (#1)
sxpm /root/navtop.xpm &
# Recouvrement des petites zones dans le selecteur de la barre d'outils (#2)
sxpm -g +0+23 /root/navleft.xpm &
# Recouvrement de la zone a gauche du bouton Home (#3) ####### ce n'est pas a _droite_ du bouton Home ? #####
sxpm -g +275+23 /root/navright.xpm &
# xdaliclock sur le cadenas de securite (#4)
/usr/X11R6/bin/xdaliclock -g 38x20+0+578 -font fixed -noseconds \
-bg gray -fg black &
sleep 2
# Demarrage de fvwm2
fvwm2 &
# Redemarrage de Netscape s'il s'arrete
while true ; do
 if [ -f /.netscape/lock] ; then
 rm /.netscape/lock
 fi
 /usr/bin/netscape -geometry 800x600
done
# On ne passera jamais ici

3.5 /root/xkiosk

Vous pouvez à présent tester la configuration de votre borne. Puisque vous allez le faire à répétition, ainsi que depuis un script d'initialisation, créez le script /root/xkiosk suivant :


/usr/X11R6/bin/xinit /root/kiosk.xinitrc -- /usr/X11R6/bin/X \
-xf86config /root/kiosk.XF86Config bc

N'oubliez pas le chmod ug+x.


Page suivantePage précédenteTable des matières