Parfois, il peut être nécessaire qu'un utilisateur n'ait accès qu'à une application donnée. L'exécution de l'environnement de bureau peut alors être indésirable, que ce soit pour des raisons de sécurité ou pour améliorer l'accessibilité de l'application donnée.
Dans ces cas, il peut être souhaitable de remplacer le bureau par une application qui s'exécute immédiatement après la connexion.
Les autres utilisateurs doivent avoir un accès normal à leurs ordinateurs de bureau.
Nous devons d’abord définir une session définie par l’utilisateur qui gère le cas particulier dans lequel aucun poste de travail ne doit être chargé. Nous définirons cette session en créant un fichier custom.desktop dans/usr/share/xsessions/avec un contenu similaire à celui-ci:
[Desktop Entry]
Name=Custom
Comment=Custom Session to run ~./.xsession
Exec=/home/<username>/.xsession
X-Ubuntu-Gettext-Domain=<gnome-session-3.0>
Cela indiquera à GDM d’exécuter le script .xsession
situé dans la page d’accueil de l’utilisateur <username>
.
X-Ubuntu-Gettext-Domain
est facultatif pour une traduction correcte de la langue au cas où nous chargerions le bureau Unity/GNOME ultérieurement (remplacez-le par gdm
dans 10.04).
Ce script ~/.xsession peut paraître aussi simple que cela:
#! /bin/bash
xterm
logout
Si nous décidons maintenant de charger notre session "Custom" lors de la connexion de l'utilisateur donné à l'écran gdm, seul le terminal X-Terminal sera démarré et nous serons de retour à la sortie de gdm. Lors de la prochaine connexion en tant qu'utilisateur, ce paramètre sera mémorisé par défaut.
Bien entendu, nous ne sommes pas encore en mesure d’exécuter une application nécessitant un gestionnaire de fenêtres tel que GNOME. Pour ce faire, remplacez le script .xsession par quelque chose comme:
#! /bin/bash
gnome-wm &
firefox
logout
Nous pouvons voir que le gestionnaire de fenêtres GNOME est maintenant chargé mais qu’aucun élément de bureau n’est présent. Cela permet à une application (par exemple, firefox ici) de démarrer.
Mais faites attention à ce que vous faites Si nous minimisons l’application sur un plateau inexistant, nous obtiendrons un beau fond d’écran à regarder. Pour cette raison, il est très important d'inclure logout
à la fin du script pour déconnecter la session une fois l'application terminée. Il n'y a vraiment aucun autre programme en cours d'exécution pour le faire pour vous jusqu'à ce que vous en ajoutiez un à votre script. Vous avez délibérément remplacé votre ordinateur par Firefox uniquement (une mauvaise idée).
Bien sûr, nous pourrions également démarrer gnome-desktop
ou gnome-session
(options respectives) à partir du script, mais c’est ce que nous faisons déjà par défaut.