Afficher des données sur l'écran de connexion

Dernière modification

Modifié(e) :

< Il peut être utile d'afficher sur l'écran de connexion (xdm, km...) des informations supplémentaires. Ainsi, je me suis dit que si j'égarais mon portable, qu'une bonne âme l'allumait avec l'intention de me le restituer (je suis un indécrottable optimiste), elle ne disposerait pas aisément d'informations pour me contacter, faute de mot de passe.
< En dehors de la solution facile et inélégante consistant à afficher une image comprenant du texte, ou pire encore, quoique plus efficace, à coller une étiquette au dos de mon ordinateur, j'ai trouvé deux solutions qui m'ont permis de perdre honorablement deux ou trois soirées.
< La première est '''root-tail'''{{http://oldhome.schmorp.de/marc/root-tail.html}}, un logiciel destiné à afficher du texte sur le fond d'écran, et plus particulièrement à tenir à l'oeil les ''logs'' sans devoir ouvrir un terminal. Comme la commande <tt>tail -f</tt>, il affiche les dernières lignes d'un fichier au fur et à mesure que d'autres s'y ajoutent. Il permet de plus d'afficher plusieurs fichiers en attribuant à chacun une couleur propre.
< Le répertoire de configuration d'xdm comprend les fichiers suivants:
< gv@spirou:~$ ls /etc/X11/xdm
< Xaccess Xresources Xsession Xwilling
< xdm-config xdm.options Xsetup
< Xreset Xservers Xstartup
< Avec kdm:
< gv@fantasio:~$ ls /etc/kde3/kdm
< backgroundrc kdmrc Xreset Xsetup Xwilling

< kdm.options Xaccess Xsession Xstartup
< '''Xsetup''' est exécuté comme root avant que la fenêtre de login soit affichée. C'est l'endroit conventionnel où l'on insère une commande pour modifier la couleur de fond ou y coller une image. En y ajoutant root-tail, on peut ainsi afficher du texte:

à

> Il peut être utile d'afficher des informations supplémentaires sur l'écran de connexion (xdm, km...). Ainsi, je me suis dit que si j'égarais mon portable, qu'une bonne âme l'allumait avec l'intention de me le restituer, faute de mot de passe, elle ne disposerait pas aisément d'informations pour me contacter.
> Pour remédier à cela, on pourrait afficher une image comprenant du texte, ou pire, quoiqu'encore plus efficace, coller une étiquette au dos de l'ordinateur, mais tout ça est assez inélégant. J'ai donc cherché et trouvé deux solutions qui m'ont permis de perdre honorablement deux ou trois soirées.
> La première est '''root-tail'''{{http://oldhome.schmorp.de/marc/root-tail.html}}, un logiciel destiné à afficher du texte sur le fond d'écran, et plus particulièrement à tenir à l'oeil les ''logs'' sans devoir ouvrir un terminal. Comme la commande <tt>tail -f</tt>, il affiche les dernières lignes d'un fichier au fur et à mesure que d'autres s'y ajoutent. Il permet aussi d'afficher plusieurs fichiers en attribuant à chacun une couleur propre.
> Pour l'utiliser au démarrage, '''xdm''' et '''kdm''' comprennent tout deux parmi leurs fichiers de configuration un fichier intitulé '''Xsetup''' qui est exécuté comme root avant que la fenêtre de login soit affichée. C'est l'endroit conventionnel où l'on insère une commande pour modifier la couleur de fond ou y coller une image. En y ajoutant root-tail, on peut ainsi afficher du texte:

Ajouté(e) :

> ----
> Le répertoire de configuration d'xdm comprend les fichiers suivants:
> gv@spirou:~$ ls /etc/X11/xdm
> Xaccess Xresources Xsession Xwilling
> xdm-config xdm.options Xsetup
> Xreset Xservers Xstartup
> Avec kdm:
> gv@fantasio:~$ ls /etc/kde3/kdm
> backgroundrc kdmrc Xreset Xsetup Xwilling
> kdm.options Xaccess Xsession Xstartup


ENTRAVAUX

Il peut être utile d'afficher des informations supplémentaires sur l'écran de connexion (xdm, km...). Ainsi, je me suis dit que si j'égarais mon portable, qu'une bonne âme l'allumait avec l'intention de me le restituer, faute de mot de passe, elle ne disposerait pas aisément d'informations pour me contacter.

Pour remédier à cela, on pourrait afficher une image comprenant du texte, ou pire, quoiqu'encore plus efficace, coller une étiquette au dos de l'ordinateur, mais tout ça est assez inélégant. J'ai donc cherché et trouvé deux solutions qui m'ont permis de perdre honorablement deux ou trois soirées.

La première est root-tail1, un logiciel destiné à afficher du texte sur le fond d'écran, et plus particulièrement à tenir à l'oeil les logs sans devoir ouvrir un terminal. Comme la commande tail -f, il affiche les dernières lignes d'un fichier au fur et à mesure que d'autres s'y ajoutent. Il permet aussi d'afficher plusieurs fichiers en attribuant à chacun une couleur propre.

Pour l'utiliser au démarrage, xdm et kdm comprennent tout deux parmi leurs fichiers de configuration un fichier intitulé Xsetup qui est exécuté comme root avant que la fenêtre de login soit affichée. C'est l'endroit conventionnel où l'on insère une commande pour modifier la couleur de fond ou y coller une image. En y ajoutant root-tail, on peut ainsi afficher du texte:

  #!/bin/sh
  #                                                                          
  # This script is run as root before showing login widget.
  
  export LANG=fr_BE.UTF-8
  fbsetroot -solid "dark slate blue"
  root-tail  -g  500x150+50+400 -font 9x15 --shade /etc/X11/xdm/xdm_message &

Il a été nécessaire de spécifier la langue pour que les caractères accentués s'affichent correctement. Ne pas oublier non plus l'esperluette en fin de ligne, sinon la fenêtre de login reste bloquée.

Mais on rencontre alors une déconvenue, c'est que root-tail reste actif sur le bureau de l'utilisateur une fois la connexion établie. Il faut tuer le processus, et c'est le fichier Xstartup qui le permet:

  #!/bin/sh
  #
  # This script is run as root after the user logs in.  If this script exits with
  # a return code other than 0, the user's session will not be started.
  
  pkill -f xdm_message

pkill2 tue un processus en fonction de son nom ou d'autres propriétés. Avec l'option -f, il examine l'ensemble de la ligne de commande, elle est donc sélectionnée par le nom du message à afficher pour éviter toute ambiguïté.

Comme root-tail peut lire depuis l'entrée standard, on peut lui transmettre la sortie d'un script et afficher des données de manière non statique.

  gv@spirou:~$ cat xdminfo.sh
  #!/bin/bash
  MY_DATE=`date +"%A %e %B %Y"`
  MY_BAT=`acpi -b | cut -d: -f2`
  # (les lignes vides améliorent l'affichage)
  cat <<EoF
  
  
  
  
  
  
  
  $MY_DATE
  Battery: $MY_BAT
  
  Merci de renvoyer à:
  (indiquer ici coordonnées, mail, etc.)
  EoF

et modifier l'entrée de Xsetup en conséquence:

  /usr/local/bin/xdminfo.sh | root-tail  -g  500x150+50+400 -font 9x15 - &

C'est quand même une méthode qui a ses limites, parce que le script n'est lu qu'une fois, et le texte n'est donc pas mis à jour si l'écran de connexion reste affiché.


Le répertoire de configuration d'xdm comprend les fichiers suivants:

  gv@spirou:~$ ls /etc/X11/xdm
  Xaccess      Xresources       Xsession  Xwilling
  xdm-config   xdm.options      Xsetup
  Xreset       Xservers         Xstartup

Avec kdm:

  gv@fantasio:~$ ls  /etc/kde3/kdm
  backgroundrc  kdmrc    Xreset    Xsetup    Xwilling
  kdm.options   Xaccess  Xsession  Xstartup

Footnotes:

2. Fait partie du paquet procpsPackage:procps