# [truc & c zastuces :)] utiliser xlaunch

## truc

08/08/2006--> version 20060808, chanlog ici

cf post anglophone pour changelog détaillé, cependant, le lien pour télécharger xlaunch sur ce post pointe toujours vers la version la p lus récente.

30/07/2006 -> nettoyage dans le code, on désaffecte maintenant 2 variables créé par xlaunch qui auraient pu, dans certaines conditions géner son utilisation, ajout d'un lien pour télécharger le script dans ce post -- plus d'info ici

27/07/2006 -> gros changements dans xlaunch pour plus de détails voir ce post. modification de ce tip pour être en accord avec la nouvelle version

salut, le véritable post est ici, on m'a laissé entendre qu'il pourrait y avoir des interessés du coté françophone. Je me lance donc dans un travail de traduction.

I  - En quoi cela pourrait vous interesser?

II  - Le script  xlaunch

a) Préparation

b) Le script xlaunch

c) Comment l'utiliser - l'astuce du lien

d) Faire fonctionner vos touches multimédias

e) Utiliser XPLAYER

III - Pourquoi c'est trooop bien?

a) wine

b) xqf

c) A vous de me le dire?  :Wink:  

I  - En quoi cela pourrait vous interesser?

J'ai écris un petit script, xlaunch, qui permet, entre autre, de lancer un programme sur un autre DISPLAY. Pour ce qui ne connaissent pas encore ce petit trick, voici quelques une des raisons pour lesquelles vous pourriez êtres interessés:

* Vous pouvez avoir un équivalent de alt+tab, en  changeant de DISPLAY par CTRL+ALF+F$. C'était en fait ma première motivation pour faire ce script.

* Pour les utilisateurs d'XGL, il sera maintenant possible de facilement lancer n'importe quel programme sur un autre DISPLAY, ce qu'il est le bienvenu, car je crois que pour lancer un programme opengl (à l'époque où j'avais essayé, lancer un tel programme dans XGL ne marchait pas ou très mal) il fallait le lancer sur un autre serveur X. Sachez qu'il est également possible de lancer une application n'est normalement pas en plein écran, puisque vous verrez qu'on peut choisir de lancer un gestionnaire de fenêtre (WM) sur cet autre X.

* Vous pourrez utiliser vos touches mutlimédias même depuis une application plein écran qui habituelement s'accapare tout les évenements provenant des claviers/souris.. C'est très pratique, car il n'est ainsi plus nécessaire de rebasculer sur le bureau pour pouvoir, par exemple, changer sa music, controler le volume,etc.

* Si vous le voulez vous pouvez activer XPLAYER, utilisateur qui sera utiliser lorsque vous lancerez un jeu. Cela peut surprendre mais j'y vois principalement trois avantage et un inconvénient:

* Beaucoup de jeu savent désormait gérer plusieurs profile, et en utilisant un seul utilisateur, cela peut entre autre éviter, si plusieurs utilisateurs peuvent jouer sur l'ordinateur , de créer vingt milliard de repertoires ~/.nom_du_jeu, chacun dans l'home de l'utilisateur, ça évitera également à ces joureurs de retélécharger un fichier (une map ou je ne sais quoi) déjà téléchargé par un autre. Pour activer cette fonctionnalité reportez vous au II - c)

* Il se passe à peu près la même chose avec wine, un dossier ~/.wine est créé dans chaque home, et il faut réinstaller les jeu pour chaque utilisateur, ce qui peut vite être pénible.

* J'aime a croire que, si il y a de bugs dans mes jeux (comme ceux-là ), ça ajoute un chouilla de sécurité.. puisque c'est lancé en tant qu'un utilisateur qui n'appartient qu'à quelques groups. (même si il serait sans doute mieux de se faire un chmod 0750 /bin/su et un chown root:wheel /bin/su (je me demande d'ailleurs comment avoir ce comportement sans avoir à faire ce truc légèrement crade..)). 

* Les seuls points négatifs auxquels je pense sont:  qu'il doit y avoir un minimum de confiance entre ces utilisateurs (ils pourrait s'éffecer les profiles entre eux.. ) et.. que les utilisateurs pourraient avoir des bindings différents (même si la tendance générale quand on a un bouton next sur le clavier, est de lui attribuer la fonction 'prochaine chanson' (y'en a vraiment qui utilisent ça pour naviguer?

* Si vous utilisez xlaunch, vous n'avez pas ç vous poser de question sur quels DISPLAY utiliser, ça trouvera et utilisera le premier disponible.

* De même, après avoir trouvé un DISPLAY disponible si vous n'avez pas les droit nécessaires (dans ~/.Xauthority file (ou celui de XPLAYER)), le script se charge (à l'instar de startx) de créer le cookie requis, et le garde(toujours dans ~/.Xauthority) pour une éventuelle prochaine fois.

Pour les impatients, lancer simplement xlaunch votre_programme [arguments_du_programme] et c'est bon, pour plus d'info, vous avez xlaunch --help, et pour encore plus d'info, continuez à lire ce qui suit.  :Smile: 

II  - Le script  xlaunch

a) Préparation

[La seulle chose vraimenet nécessaire pour utiliser ce script est que l'application que vous voulez lancer avec apparaisse bien dans votre PATH]. Ca n'est plus nécessaire depuis la version 20060727, mais je vous conseille encore de les mettre dedans. Vous trouverez tout le reste tellement plus facile si vous avez un repertoire, apparaissant dans votre PATH, dans lequel vous placez tout vos scripts. Si vous n'avez pas encore d'un tel répertoire, créons-le:

En root:

```
mkdir /home/scripts
```

 (n'oubliez pas de le chmod'ed and chown'er selon vos besoins, par exemple: chown your_user_name_here:users /home/scripts , and chmod 755 /home/scripts )

On l'ajoute maintenant à votre PATH, pour cela nous avons deux manières de le faire:

Soit vous le faites manuellement pour chacun de vos utilisateurs avec echo PATH=\"\$PATH:/home/scripts\" >> ~/.bashrc

Soit (méthode à privilégier car moins lourde, et parce que le fichier /etc/profile est fait pour ça) 

```
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then

        PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"

else    

        PATH="/usr/local/bin:/usr/bin:/bin:${PATH}"

fi

```

```
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then

        PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"

else    

        PATH="/usr/local/bin:/usr/bin:/bin:/home/scripts:${PATH}"

fi

```

Ce qui ajoutera /home/scripts  dans le PATH de tous les utilisateurs sauf ROOT.

On le 'source' $PATH pour avoir le nouvel environnement:

```
source /etc/profile
```

b) Le script xlaunch 

Télécharger le *ICI* at sauvegarder le en tant que /home/scripts/xlaunch

```
chmod 755 /home/scripts/xlaunch

chown your_name_here:users /home/scripts/xlaunch
```

c) Comment l'utiliser - les trucs nouveaux - l'astuce du lien 

Alors, déjà, le script est, à mon avis,  pas mal commenté, donc si vous voulez le modifer, ça ne devrait pas être trop difficile.

ce qui est nouveau:ça a bien bougé à ce niveau là, pour plus d'info regardez xlaunch --help. Pour résumé rapidement, voici ce que vous pouvez faire:

Pour lancer un programme avec xlaunch, vous pouvez désormais vous contenter de

```
xlaunch program [arguments_du_program]
```

Fonctionne si program est peut être trouvé dans votre PATH, sinon

```
xlaunch -p chemin/vers/programme [arguments_du_programme]
```

Personnellement, je préfère toujours taper par exemple 

```
xquake3-bin  +connect 213.246.38.167:27019
```

 que

```
xlaunch quake3-bin +connect 213.246.38.167:27019
```

Mais tout est question de choix;) Et le choix vous l'avez là. Vous pouvez même utiliser xlaunch pour créer ces liens magiques   :Cool:  :

* Pour les applications plein écran(Fullscreen):

Comme exemple, je prendrais le bon vieux (mais toujours bon hein  :Wink:  ) quake3, je prends la version binaire, qui vient avec l'executable(le wrapper ?)quake3-bin, alors, La seule chose que vous ayez à faire c'est:

```
xlaunch --addlink quake3-bin quake3-cpma 

Created link for quake3-bin : xquake3-bin --> xlaunch in /home/scripts 

Created link for quake3-cpma : xquake3-cpma --> xlaunch in /home/scripts
```

```
xlaunch --addlink ~/tmp quake3-bin quake3-cpma 

Created link for quake3-bin : /home/truc/tmp/xquake3-bin --> /home/scripts/xlaunch 

Created link for quake3-cpma : /home/truc/tmp/xquake3-cpma --> /home/scripts/xlaunch
```

Maintenant si vous lancez xquake3-bin, ça vous lanvera quake3-bin sur un autre DISPLAY. Si vous le voulez vous pouvez même configurer automatiquement votre souris avec xset (modifier la variable XSET_ARGS dans xlaunch), votre keymaps, et même vos bindings (indépendant de votre WM (avec par exemple keybindings).

* Pour une application en mode fenètre:

Vous pouver également pouvoir lancer une application, qui n'est pas forécement prévue pour être en plein écran (par exemple certains jeu de stratégie sont en plusieurs fenètres). Pour ce faire, vous pouvez modifier xlaunch. Disons par exemple que je veuille lancer THE Gimp, (qui vient avec (entre autres) l'executable gimp, sur un autre DISPLAY.

[code="essayez de lancer]xlaunch gimp[/code]

Vous vous rendrez vite compte qu'il vous manque un gestionnaire de fenètre (WM) (Pour au moins pouvoir bouger et/ou redimensionner les fenètres). 

Donc, dans xlaunch, dans la boucle case : 

```
case "${FULL_PROG_NAME##*/}" in

    

    xlaunch) echo "The program can't call itself. Exiting!" 

            # Well, actually it can, but it will exit later, so exiting now..

       exit 2

            ;;

    *)      xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs & 

            ;;

esac
```

Vous devez ajouter le cas gimp

```
case "${FULL_PROG_NAME##*/}" in

    gimp)   xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

            DISPLAY:$DISPLAY_TO_USE WindowManager &

    

    xlaunch) echo "The program can't call itself. Exiting!" 

            # Well, actually it can, but it will exit later, so exiting now..

       exit 2

            ;;

    *)      xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs & 

            ;;

esac
```

Où vous remplacer 'WindowManager' avec le WM de votre choix. Remarqué que si vous avez plusieurs applications de ce genre et voulez les lancer avec le même WM, au lieu de créer un cas pour chacunes, vous pouvez ajouter gimp|nom_autre_appli|nom_encore_une_autre_appli). 

d) Faire fonctionner vos touches multimédias

J'utilise personnellement xmodmap et xbindkeys (HOWTO Use Multimedia Keys). Mais si vous utilisez un autre démon que xbindkeys, xlaunch ne devrait pas être trop dur à modifier.

Avant toute chose, vous devez savoir que les programmes en plein écran (et tout particulièrement les jeux)  recoivent et gardent tous les 'evenements' de vos clavier/souris, ce qui rends l'utilisation de daemon comme xbindkeys vénale..Heureusement, si vous ne la connaissez pas encore, voici l'astuce:

Dans les paramètre de configuration de l'application/jeu, mettez fullscreen sur off pour pouvoir lancer le jeu en mode fenêtre. Rassurez vous, comme nous lançons l'application directement sur un autre display, sans WM, il n'y a pas de bordure, et pour peu que vous choisissiez la bonne résolution (la même que votre server X si je n'm'abuse) cela vous donnera tout de même du plein écran; à la différence près que maintenant il vous sera possible d'utiliser des daemons tels xbindkeys.

Note: Pour des jeux utilisant le moteur graphique de quake3(quake3 !, enemy-territory, tremulous etc), Il vous faudra descendre la console pour pouvoir vous servir de vos touche, et ce même en mode fenètre. (mais une fois la console baissée, vous pouvez faire ce que vous voulez.

e) Utiliser XPLAYER 

Comme j'essayais de le dire dans la Première partie I, Il y a , à mon avis, plusieurs avantages à utiliser la fonctionnalité XPLAYER. Si vous êtes conquis, ou simplement si voulez essayer, voici la démarche à suivre:

Pour cela, la première chose à faire est de décommenter la variable XPLAYER dans xlaunch.

Ensuite, il vous faut créer l'utilisateur, xplayer, vous pouvez choisir autre chose mais modifier ce qui suit et la variable XPLAYER dans xlaunch en consequance.

En root:

```
adduser -m -g games -G audio,video,cdrom xplayer

# puis on *su* vers XPLAYER, pour copier les fichiers dont nous aurons besoin

su - xplayer
```

(Si vous avez, comme indiqué précedemment, modifié /etc/profile alors, xplayer a déjà /homs/scripts dans son PATH sinon faites echo "PATH=\"$PATH:/home/scripts\"" >> /home/xplayer/.bashrc

Si vous avez un ou plusieurs de ces fichiers: ~/.Xresources ~/.Xdefaults ~/.Xmodmap ~/.xbindkeysrc dans le HOME de votre utilisateur principale, copiez les dans l'HOME d'XPLAYER, !!!Veillez bien à être xplayer lors de la copie de ces fichiers pour éviter tout problème de droits par la suite... La même remarque s'applique à ce qui suit.!!!

Si ça n'est pas la première fois que vous jouez, (ça ne l'est pas n'est ce pas?  :Shocked:  ), vous devriez déjà avoir certains repertoires dans votre home, créés par les jeux ( par exemple ~/.q3a ~./etwolf ou même ~/.wine (ok c'est pas un jeu mais ça sera util )

=> Copiez-les ( ou déplacez-les..). de votre Home vers l'HOME de XPLAYER. (notez qu'une fois avoir copié ~/.wine, j'ai également lancé (en tant que xplayer) winecfg, je ne saurai dire si c'est indispensable, mais ça a en tout cas marché  :Smile:  )

Nous allons maintenant configurer sudo (app-admin/sudo):

Loggez vous en root, puis 

```
visudo
```

et,

cette ligne à changé avec la version 20069727, vérifiez si vous avez la bonne

```
%games          ALL=(root)             NOPASSWD: /bin/su - xplayer -l -c FULL_PROG_NAME=* /home/scripts/*
```

Vous pouvez également vouloir ajouter cette ligne your_main_user_name                  ALL=(root)              NOPASSWD: /bin/su - xplayer (de telle sorte à pouvoir vous logger en tant que xplayer, et aller dans son HOME, sans mot de passe(depuis votre utilisateur principal.))

III - Pourquoi c'est trooop bien? 

a) wine 

Une des chose que j'apprécie tout particulièrement, c'est la facilité à utiliser xlaunch, avec n'importe quel scripts, sans distinction. J'ai par exemple warcraft3 et The Frozen Throne, Si vous aussi, voici ce qu'il vous faut pour pouvoir les lancers avec xlaunch:

Créez ces deux scripts

```
#!/bin/sh

cd ~/.wine/drive_c/Program\ Files/Warcraft\ III

exec `wine Warcraft\ III.exe -opengl`

exit 0
```

and 

```
#!/bin/sh

cd ~/.wine/drive_c/Program\ Files/Warcraft\ III

exec `wine Frozen\ Throne.exe -opengl`

exit 0
```

Et puisque ce sont des jeux:

```
chgrp games /home/scripts/{warcraft3,frozenthrone}

chmod 0750 /home/scripts/{warcraft3,frozenthrone}
```

Comme je vous l'ai déjà dit, la seule chose vraiment nécessaire, est que les programmes que vous voulez lancer apparaissent effectivement dans votre PATH, comme on a mis frozenthrone, et warcraft3 dans /home/scripts, et que ce repertoire est dans notre PATH(ok vous n'étiez pas obligés, mais bon.. c'est mieu..) alors c'est deux scripts apparaissent bien dans le PATH:). 

Il nous reste maintenant à faire les liens conformément au  II ) b) Comment l'utiliser - l'astuce du lien :

```
cd /home/scripts

xlaunch -a warcraft3

xlaunch -a frozenthrone
```

(Notez bien la présence du 'x' devant le nom du programme à lancer ) (car warcraft3 et frozenthrone apparaissent dans votre PATH)

Ainsi, dès que vous voulez jouer à ces jeux (sur un autre display, sinon exécuter warcraft3 ou frozenthrone suffit), vous n'avez qu'à lancer la commande xwarcraft3 ou xfrozenthrone. (rien ne vous empèche ensuite de binder tout ça à un bouton sur votre bureau etc..

b) xqf 

Une autre chose que j'apprécie, c'est la possibilité de faire utiliser ces scripts à xqf, Il n'y a rien de spécial à faire si ce n'est lui indiquer le nom in Preferences --> Game --> invoking --> dans "command-line" changer la commande_du_jeux_en_question par xcommande_du_jeu_en_question (erm.. et n'oubliez pas de faire les symlinks  :Wink:  ) 

c) A vous de me le dire?  :Wink:  

J'aimerai savoir si:

* Vous avez lu ce post en entier

* Vous êtes interessés par xlaunch

* Vous avez des commentaires à faire(En fait plus que de savoir que vous en ayez, j'aimerai bien aussi les connaitre)

* Si j'ai fait des bashisme dans le script. J'aimerais qu'il fonctionne mais si bash n'est pas le shell utilisé par défaut.

* Si j'ai fait des erreurs, des fautes etc... :Smile: 

Et oui, j'ai entendu parler de xgame, je ne l'ai pas essayé, mais je doute qu'il aie toutes les fonctionnalités qui m'interesse.

Je vous invite grandement à fair eun tour du coté du post anglophone, c'est très pénible de tout traduire, (vous pouvez le faire si vous vous ensentez le courage, ça serait parfait!), mais il y a vraiment plus d'info, le changelog est à jour, le howto également, j'y explique de même comment on peut pousser un peu plus la configuration pour l'adapter à chaque programme, etc.. Last edited by truc on Tue Sep 12, 2006 10:20 am; edited 20 times in total

----------

## yoyo

 *truc wrote:*   

> on m'a laissé entendre qu'il pourrait y avoir des interessés du coté françophone.

 Qui ça ???   :Rolling Eyes: 

Le tips est vraiment très intéressant (pour moi en tout cas). Tu utilises quel overlay pour xgl ?

Enjoy !

----------

## kopp

Oui ça semble pratique, je l'avais justement vu il y a peu en anglais.

Merci pour l'effort de traduction.

Mais ça n'excuse en rien le titre !!!!

kopp, disciple de kernel_sensei

----------

## truc

 *kopp wrote:*   

> Mais ça n'excuse en rien le titre !!!!

 

salut  :Smile: 

oui je sais pour le titre, mais en français c'est trop long  :Embarassed:  "joueurs et utilisateurs d'XGL", j'arrive déjà quasiment au maximum.. 

 *yoyo wrote:*   

> Tu utilises quel overlay pour xgl

 

je n'utilise plus en fait mais avant celui de coffe-buzz, dsl pas le temps je fileeeeee:)

merci commentaires.

----------

## truc

Salut, nouvelle version 20060727 !  :Wink: 

* Vous n'avez désormais plus besoin de créer des liens, avant de pouvoir utiliser xlaunch , xlaunch programme [arguments_programme] lancera programme sur un autre DISPLAY avec la sensibilité choisi, les bindings etc...

* Heureusement, il est toujours possible d'utiliser les liens (plus pratique pour une utilisation fréqeunte je trouve..), il vous est même maintenant possible d'utiliser xlaunch our créer ces liens

* Ajout de la possibilité de lancer des applications n'apparaissant pas dans votre PATH (un truc compilé dans votre HOME ou ce que vous voulez.. :Smile: 

* Ajout de test supplémentaire, dans xlaunch pour éviter de refaire plusieurs fois (autant que possible) la même chose.(étant donnée que xlaunch peut maintenant s'appeller lui même.

* La partie XPLAYER à été un peu remaniée, la ligne dans le fichier sudoers à changé, se référer au premier post si besoin est.

* Ajout d'un message d'aide avec xlaunch --help !!

**Il n'y a plus besoin de configuration préalable pour faire joujou avec xlaunch**

N'oubliez, si vous utilisez x11-apps/xset, de modifier et de décommenter la variable XSET_ARGS au début du script.  :Smile: 

Attention aux lignes (notamment celles de commentaire) qui peuvent être coupées lors du copié-collé.

==bid==(deubeule)

note pour plus tard: blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah,blah

----------

## truc

version=20060730

Pour ceux éventuellement qui utiliseny cette merveille, je vous conseille de mettre cettre dernière version, cf ici

EDIT: pour ce qui suivent ça on en est maintenant à la version=20060801 que vous pouvez télécharger ici, Pour plus d'info, n'hésite pas à faire un tour sur le post anglophone, ou à poser directement vos questions/suggestions ici même.

EDIT2: yipiyé, olé version =20060808 , état des lieux ici: non, là!

----------

## UB|K

salut et merci pour ce script.

pour l'instant je m'en sert pour faire cohabiter le tandem xgl/tvtime et c'est une solution vachement plus élégante que ce que je devait faire avant (xinit + xterm + lancement de tvtime à la mano...).

Il y a une question qui m'interroge: je voudrais lancer tvtime ET irexec (pour la télécommande) sur le nouveau dispay, comment je peux faire ça? en éditant le script pour qu'il lance irexec? si je fais ça, est-ce qu'à la sortie de tvtime, le script killera irexec ?(si il le fait pas ça relancera irexec à chaque nouvelle utilisation et ça va pourrir l'utilisation de la télécommande...)

Merci d'avance.

EDIT: pfff, dans la série "essayes de trouver une réponse tout seul avant de poser une question" je viens de découvrir que j'ai pas besoin de lancer irexec sur le nouveau display: si il tourne déjà sur le display de base ça marche quand même dans le nouveau...  j'ai plus qu'à modifier ma config lirc pour l'utilsation de xlaunch, parfait.

----------

## truc

wow un commentaire!

Merci déjà :Smile: 

alors, pour ta question:

 *UB|K wrote:*   

> Il y a une question qui m'interroge: je voudrais lancer tvtime ET irexec (pour la télécommande) sur le nouveau dispay, comment je peux faire ça? en éditant le script pour qu'il lance irexec? si je fais ça, est-ce qu'à la sortie de tvtime, le script killera irexec ?(si il le fait pas ça relancera irexec à chaque nouvelle utilisation et ça va pourrir l'utilisation de la télécommande...) 

 

Alors, déjà je ne connais pas spécialement irexec, mais il semble que ça soit un simple daemon, qui n'a pas besoin d'être rattaché à un DISPLAY pour fonctionner c'est ça?

Donc, si c'est ça et que tu as comme optique de le lancer à chaque utilisation de tvtime. (je veux dire ici, que tu ne semble pas vouloir le lancer automatiquement quand ton pc démarre, et à laisser le daemon tourner ) c'est bien ça?

Mais peut-être n'ai-je pas compris, irexec a besoin d'un DISPLAY?

Bref, dans tous les cas:

* Si irexec a besoin d'être rattaché à un display alors tu peux modifier xlaunch comme ce qui suit, (en supposant que l'executable pour tvtime est.. tvtime ..:

dans la boucle:

```
case "${FULL_PROG_NAME##*/}" in

    # It's in a case, since you could want to launch other stuffs for a specific program

    # e.g.: you're a XGL user, and want to start googleearth on an other DISPLAY, then

    # you could want to start it with a minimal window manager:

    # googleearth)    xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

    #                 DISPLAY=:$DISPLAY_TO_USE minimal_WM &

    

    xlaunch) 
```

tu peux rajouter le cas tvtime :

```
case "${FULL_PROG_NAME##*/}" in

    # It's in a case, since you could want to launch other stuffs for a specific program

    # e.g.: you're a XGL user, and want to start googleearth on an other DISPLAY, then

    # you could want to start it with a minimal window manager:

    # googleearth)    xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

    #                 DISPLAY=:$DISPLAY_TO_USE minimal_WM &

    

    tvtime)     xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

                      DISPLAY=:$DISPLAY_TO_USE irexec &

    xlaunch) 
```

Ainsi, comme on a supposé ici qu'il devait être rattaché à un DISPLAY, alors en quittant tvtime ça va fermé le serveur X, ce qui va alors provoqué l'arret de irexec

* Au contraire, si irexec n'est rattaché à aucun display pour fonctionner, alors fais les modifications comme suit:

dans la boucle:

```
case "${FULL_PROG_NAME##*/}" in

    # It's in a case, since you could want to launch other stuffs for a specific program

    # e.g.: you're a XGL user, and want to start googleearth on an other DISPLAY, then

    # you could want to start it with a minimal window manager:

    # googleearth)    xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

    #                 DISPLAY=:$DISPLAY_TO_USE minimal_WM &

    

    xlaunch) 
```

tu peux rajouter le cas tvtime :

```
case "${FULL_PROG_NAME##*/}" in

    # It's in a case, since you could want to launch other stuffs for a specific program

    # e.g.: you're a XGL user, and want to start googleearth on an other DISPLAY, then

    # you could want to start it with a minimal window manager:

    # googleearth)    xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

    #                 DISPLAY=:$DISPLAY_TO_USE minimal_WM &

    

    tvtime)     xinit "${FULL_PROG_NAME}" $* -- :$DISPLAY_TO_USE $serverargs &

                      DISPLAY=:$DISPLAY_TO_USE irexec 

    xlaunch) 
```

Note l'absence du & à la fin de la ligne pour lancer irexec

Ainsi, si tout se passe comme prévu, en quittant tvtime, cela devrait faire s'arreter irexec

Si je distingue les deux cas, pour juste une différence de &, c'est parce qu'en fait, si tu veux lancer d'autre programme sur le display de tvtime, tu dois le faire avant de lancer irexec, sinon, comme ce dernier ne se mettra pas en arrière plan, rien de ce qui pourrait suivre serait lancé.

Je précise aussi, qu'il est possible que je fabule.. Je ne suis pas chez moi, je ne peux pas tester (pas d'OS qui se réspècte par ici  :Sad:  ) et je ne peux que supposer que ça va fonctionner en faisant comme ça. Si ça n'était pas le cas, on devrait pouvoir s'en tirer avec un très simple script pour lancer tvtime.

Voili-voilou, tiens moi au courant merci:)

EDIT: okok, j'ai été trop stressé là, loul.. bon bah c'est pas grave, je laisse, ça pourra servir, et ça me permettra de vérifier ce que j'avançait pour le second cas.

Donc c'est le premier cas qui te convient:), irexec se lance en simple daemon, et n'ai attaché à aucun DISPLAY, le coté positif, c'est que ça semble logique! puisque ta télécommande infrarouge, n'est à aucun moment gérée par xorg et donc indépendant du serveur X, et donc du DISPLAY etc.. :Wink: 

Mais j'y pense, c'est trop bien en fait! ça veut dire que tu peux même lancer tvtime, d'un clic sur la télécommande! En ignorant les modifs que je proposais ci dessus biensûr!

donc en faisant

```
xlaunch --addlink tvtime
```

 (en supposant que tvtime est dans ton PATH, sinon, sache que depuis la version 20060801, tu peux également faire xlaunch --addlink chemin/vers/tvtime

ce qui te crééra (le lien|la commande) xtvtime (ou un autre nom que tu as pu choisir..)

Et donc en bindant une touche de ta télécommande à xtvtime ça te permettra de lancer tout ça en un clic/pression de bouton!

(je ne connais pas irexec, mais tu dois savoir comment faire non?)

Je ne raconte pas de connerie là?  :Smile: Last edited by truc on Tue Sep 12, 2006 10:16 am; edited 2 times in total

----------

## UB|K

comme tu l'a dit irexec n'a effectivement pas besoin d'être attaché à un display pour fonctionner donc pas besoin de se casser avec ça, il marche même si je le lance via /etc/conf.d/local.start donc bon, cette question était vraiment due à un manque de connaissance et de recherche sur le sujet...

Par contre merci pour cette réponse très détaillée qui m'a permi (et peut être à d'autres) de mieux comprendre comment marche le script. Je vais en profiter pour modifier le script afin de lancer en même temps que tvtime un WM et un browser internet qui pointe sur un page de programme télé. Si c'est pas la classe ça!!

----------

## truc

salut, pour les faineants, sachez que xlaunch est maintenant disponible, directement depuis l'overlay de CoffeeBuzz de nom xgl-coffee  :Smile: 

Ici, pour son annonce

et ici pour l'overlay, ça se trouve dans x11-misc/xlaunch et c'est 'keyword'é -*

Car encore quelques trucs à améliorer/gérer.

Voili-voilou

----------

## truc

re, juste un petit up, pour ceux qui utilisent (ou voudraient utiliser) xlaunch, et qui ne vont que très rarement sur le forum anglophone.

ça a pas mal bougé, certaines choses ont changé d'autres se sont améliorées, bref, nous voila à la version=20060911 de xlaunch, tout à tas d'info  ici et là  :Wink: 

plus plus

----------

