Une opération aussi banale la modification de l'écran de connexion (login screen wallpaper ou background) peut virer au casse-tête.
L'écran de connexion de KDM peut être contrôlé par un thème ou pas.
Si l'on souhaite que notre connexion soit contrôlée par un thème (themed), changer le fond d'écran nécessite de créer un nouveau thème. Rien que ça ! En effet, le choix d'une image de fond parmi plusieurs n'est pas une option de configuration d'un thème de connexion
La manière la plus simple d'imposer un fond d'écran de connexion est donc de désactiver le thème de connexion. Cette désactivation redonne le contrôle à l'utilisatrice sur les onglets “Boîte de dialogue” et “Fond d'écran”.
L'avantage est qu'on impose facilement le fond d'écran souhaité. L'inconvénient est qu'on est limitée aux paramètres proposés par l'interface de configuration. Les thèmes offrent plus de possibilités de configuration.
Si l'on a choisi une connexion à thème, l'onglet “Thème” permet de sélectionner le thème voulu parmi ceux qui sont installé sur son système. On peut également en télécharger de nouveaux, depuis ce même onglet. C'est bien gentil, mais cela ne résout pas notre problème initial : imposer un fond d'écran de connexion…
Les thèmes KDM disponible sur votre système se trouvent dans le répertoire “/usr/share/kde4/apps/kdm/themes/”.
Chaque thème se présente comme un répertoire. Attention : le nom du répertoire n'est pas toujours celui qui apparaît dans l'interface graphique de sélection des thèmes !
En première approximation, un thème se compose de :
Puisqu'on souhaite imposer une image de fond, on choisira un thème qui en contient une (généralement background.xxx). En effet, certains thèmes utilisent d'autres techniques pour générer le fond d'écran.
Le contrôle de connexion étant global au système, il faut intervenir avec les droits de super-utilisatrice (ou tout simplement en root). Il faut :
La duplication doit respecter précisément les droits sur les fichiers. On utilisera donc une commande qui les respecte :
# cp -a <répertoire du thème à copier> <répertoire du nouveau thème>
Si on veut limiter les risques, fera en sorte que l'image que l'on veut imposer en fond d'écran de connexion ait les mêmes caractéristiques techniques que l'image originale. Si on respecte cette contrainte, on conservera le nom du fichier original.
Au minimum, on renommera le fichier .xml pour qu'il reflète le nom de notre nouveau thème.
Ce fichier étant le cœur du thème, c'est là que l'on effectuera les adaptations les plus importantes. Mais c'est également le plus “fragile”. Si l'on a remplacé l'image de fond par une image techniquement équivalente et que l'on a conservé le nom du fichier image, on garde le contenu du fichier xml en l'état
C'est dans ce fichier que l'on indiquera le nouveau que l'on a donnée au fichier xml (paramètre Greeter) et que l'on indiquera le nom sous lequel notre thème sera présenté dans l'interface graphique de sélection des thèmes de connexion.
Le nom donné au répertoire contenant le thème est indifférent mais on s'emploiera à garder une unité entre le nom du réperrtoire, le nom usuel (paramètre Name) et le nom du fichier xml,
Ce fichier donne un aperçu votre écran de connexion. La création de ce fichier soulève le problème classique de “la poule et l'œuf”. On devrai le fournir alors que l'on est en train de créer le thème, mais on ne peut pas faire de capture d'image de l'écran de connexion (screenshot) tant qu'on n'a pas activé ce thème !
On commence donc pas laisser tel quel le fichier screenshot du thème que l'on a cloné. On viendra le modifier dès qu'on aura activé le thème et fait une capture d'écran.
Deuxième problème, lorsque l'ordi affiche l'écran de connexion, on n'est pas connectée! On n'a donc accès à aucune application permettant de faire la capture d'écran… Il faut donc ruser…
Si la suite vous semble trop compliquée, vous pouvez en rester là. L'image d'aperçu de ne sera pas fidèle à votre thème mais ça ne l'empêchera pas de fonctionner.
Source : How To Take A Screenshot Of Your Login Screen (en), (howtoforge.com)
Pour pouvoir utiliser cette procédure vous devez avoir préalablement installé certains paquetages. Le plus simple et d'ouvrir un terminal et de lancer les commandes :
$ sudo apt-get update $ sudo apt-get install imagemagick xnest
La procédure utilise les terminaux virtuels :
La commande permettant d'effectuer la capture d'écran reprend la structure suivante :
chvt 7; sleep 5; XAUTHORITY=/var/gdm/:0.Xauth DISPLAY=:0.0 import -window root /tmp/my_login_screenshot.png
Il faudra remplacer :
Vous disposez alors d'un fichier de capture d'écran que vous pourrez copier dans le répertoire de votre thème en remplacement de la capture d'écran du thème cloné. Conserver l'ancien nom du screenshot, généralement screenshop.png, sans aucune référence au nom du thème.
Sources : Création de thèmes pour l'écran de bienvenue kdm (kde.org)
Les contraintes à respecter pour la création d'un thème KDM sont décrites dans la documentation.
La création à partir de rien d'un thème est un exercice moyennement compliqué de programmation déclarative. Si cela vous tente, la source citée contient toutes les informations nécessaire. À lire tranquillement, à tête reposée, puis à relire. Les principes sont simples même si la syntaxe est lourde. La consultation de fichiers xml de thèmes existants n'est pas inutile
On regrettera l'absence d'un outil de génération de thème. C'est la vie…
Les utilisatrice d'éditeurs XML s'affranchiront de cette lourdeur et bénéficieront d'une validation grâce à la dtd.