Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/05/2012, à 22:18

spacm

Personnaliser xsession lightdm application unique

Bonjour,

Je souhaite personnaliser mon système de façon à démarrer une application graphique unique.
Démarrage-> session X autologin -> mon appli en plein écran -> si je quitte l'appli, extinction du système.
Ceci sur une ubuntu 12.04.

J'ai bien réussi à bidouiller quelque chose du genre, mais pense qu'il y a forcément de meilleures façons de faire.

Voici donc comment j'ai fait, et merci aux remarques éventuelles.
Je me suis inspiré de ces deux posts (surtout le duexième au final):

http://doc.ubuntu-fr.org/lightdm

http://askubuntu.com/questions/142307/h … -autologin

J'ai édité

/usr/share/xsessions/ubuntu.desktop

de la sorte:

[Desktop Entry]
Name=ubuntu
Comment=This logs you into a Customized session
Exec=/blabla/monprog
Icon=
Type=Application

Pour l'histoire de l'arrêt, j'ai modifié /etc/sudoers pour permettre à l'utilisateur automatique d'utiliser la commande shutdown, et j'ai fait un appel à shutdown depuis mon programme au moment où on le quitte.

Ce qui ne me satisfait pas:
-en faisant ceci, je bidouille un des scripts de démarrage normal, et du coup je perd la possibilité de choisir entre plusieurs sessions, chacune proprement configurée. Il m'aurait paru logique, suivant le 1er post cité, de presonnaliser un raccourci de session (genre /usr/share/xsession/monprog.desktop),  et d'y faire référence dans /etc/lightdm/lightdm.conf
J'ai essayé, mais au final, le seul truc qui ait marché est ce que je viens de décrire ci-dessus.

-J'aurai bien aimé faire une sorte de runlevel personnalisé, permettant un choix de boot vers tel ou tel environnement, mais je n'ai pas encore compris la logique upstart, et la chaine allant jusqu'à la session X.

-Pour la partie arrêt si je quitte mon appli, il y a peut être une bonne façon de faire à travers l'écriture d'une sorte de xinitrc personnalisé, avec une sorte de shutdown à la place du traditionnel respawn.

Hors ligne

#2 Le 31/05/2012, à 10:52

abelthorne

Re : Personnaliser xsession lightdm application unique

J'ai bien une idée mais je ne sais pas si ça peut correspondre à tes besoins :
- session Openbox en autologin
- dans le fichier autorun tu lances ton appli suivie de la commande d'extinction (monappli && script_shutdown.sh)

Ça ne fonctionnerait que si l'appli garde la main dans le shell (si elle se lance dans un processus séparé, ça va lancer le shutdown immédiatement).
Pour le script shutdown, il contiendrait la commande d'extinction via consolekit :
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
(pas besoin d'être dans les sudoers avec ça).

Si les conditions sont réunies, ça devrait marcher. Si ton appli rend la main au shell, il faudrait soit faire un script qui tourne en tâche de fond, soit trouver un démon qui surveille si une appli tourne et lance une commande quand ce n'est pas le cas.

Cela dit, il reste un problème que tu n'as peut-être pas pris en compte dans ta demande : même si ton appli se lance en plein écran, il reste vraisemblablement possible de la basculer en fenêtré et à partir de là, la réduire pour avoir accès au reste du système. Mais bon, avec Openbox, tu peux customiser (peut-être même supprimer) le menu contextuel pour qu'un utilisateur ne puisse pas faire grand chose d'autre...

Dernière modification par abelthorne (Le 31/05/2012, à 10:53)

Hors ligne

#3 Le 04/06/2012, à 07:49

spacm

Re : Personnaliser xsession lightdm application unique

Merci Abelthorne pour ta réponse. Je garde toutes ces suggestions dans ma manche, n'ayant pas encore arrêté la façon dont je vais procéder. J'aime bien le coup du && script_shutdown.sh, je vais tester ça.
Je crois que la méthode que j'utilise ne lance pas de window manager (en fait, je lance mon appli à la place d'un éventuel window manager). Par exemple, alt-tab ou alf-f4 ne font rien. Un ctrl-alt-f1 permet d'accéder à un invite de login en console, mais ça ne m'ennuie pas vraiment.

Hors ligne