Bonjour,
Je fait tourner Warcraft 3 sur Hardy. Essentiellement le jeu fonctionne parfaitement, mais lorsque que je fait tourner le jeu avec compiz activé j'ai le désagrément suivant: faire passer le curseur de la souris sur le bord de l'écran ne permet pas toujours d'effectuer un
scrolling; il arrive que je perde le
focus sur le jeu. C'est pourquoi j'essaie de mettre au point un script permettant de lancer metacity, puis le jeu, puis remettre compiz une fois le jeu terminé.
J'ai essayé
wine jeu.exe && action 2
qui me rend le prompt sans effectuer
action2. À contrario,
#!/bin/bash
wine jeu.exe
action 2
m'execute
action2 puis me rend le prompt même si le jeu n'est pas terminé.
C'est pourquoi tes scripts m'intéressent mais j'aimerai quelques précisions pour mieux les comprendre. Si je comprends bien,
while [ "`ps -ef |grep 'wineserver' |grep -v grep`" != "" ]
do
sleep 1
done
permet de laisser le script actif tant qu'un processus wineserver existe, ce qui résoud les problèmes que j'ai rencontrés.
Cette solution m'intéresse aussi.
Mais bon pour les jeux le mieux est de lancer un second serveur X, ce qui permet un retour au bureau aisé (ctrl+F7/ctrl+F9), et plus besoin d'arrêter compiz dans ce cas...
Mais j'aimerai un peu plus de documentation. Si je comprend bien (je n'y connais pas grand chose en script shell).
#!/bin/bash
# Lance un serveur X sur le second affichage puis rend la main au script.
# Mais "man X" rend "No manual entry for X"
X :1 -ac &
# Pause de 2 seconde. Est-ce le temps que le serveur X se lance?
sleep 2
# Définit la variable DISPLAY dont se sert wine pour choisir sur quel affichage se lancer.
# Quel est le rôle de $@ ?
DISPLAY=:1 $@
# Quel est le rôle de sleep 1?
sleep 1
# voir plus haut dans ce billet.
while [ "`ps -ef |grep 'wineserver' |grep -v grep`" != "" ]
do
sleep 1
done
# Détruit le serveur X lancé plus haut une fois que le processus disparaît.
kill $(ps ax|grep "X :1")
Ou peut-on se documenter sur les risque d'une telle manipulation?
Ensuite il faut permettre l'exécution d'un second serveur X taper dans un terminal
sudo dpkg-reconfigure x11-common
et choisir "n'importe qui" pour avoir le droit de lancer un second serveurX
Est-ce possible de lancer le script avec root comme propriétaire (chown), mais executable par l'utilisateur (chmod +ux).
Concernant
Pour lancer le jeu monJeu, il ne reste plus qu'à faire:
nomFich monJeu
comment l'argument monJeu est-il utilisé dans le script. Est-ce le « $@ » ? Dans ce cas faut-il lancer nomFich commande _wine ?
edit: conjugaison