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.
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.
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.
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 :
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.
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 :
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.
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
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
.