tshirtman
@cat_loic: ben j'ai pas 50 jeux et j'ai pas trouvé mieux..
l'idéal serait que copiz/beryl détecte le plein écran ou l'utilisation d'opengl et se coupe tout seul en réaction, mais la je me sent pas de fouiller le code des deux pour patcher un truc pareil ^^"
cat_loic
ou encore, l'idéal serait un script qui détecte le lancement de jeux 3D en faisant la commande top, par exemple, et qui coupe Beryl/Compiz si le % du CPU dépasse, je sais pas moi, 70% ?
C'est possible à faire ? Je suis prêt à tenter le coup si oui 🙂, par contre, il faudrait que le script tourne en fond de tâche...
tshirtman
tu peut faire un script et un fichier qui contient une liste de programmes, si un ps |grep attrape l'un de ces programmes, tu lance la partie qu'il faut de mon scripte, et tu lance la deuxième partie quand tu ne détecte plus aucuns programmes de la liste... Je ne sais pas si le temps de réaction du script seras suffisant (couper beryl, après le lancement du jeu est peut être génant. Mais ça peut sans doutes se faire... ou du moins "se tenter" 😉
cat_loic
tshirtman a écrittu peut faire un script et un fichier qui contient une liste de programmes, si un ps |grep attrape l'un de ces programmes, tu lance la partie qu'il faut de mon scripte, et tu lance la deuxième partie quand tu ne détecte plus aucuns programmes de la liste... Je ne sais pas si le temps de réaction du script seras suffisant (couper beryl, après le lancement du jeu est peut être génant. Mais ça peut sans doutes se faire... ou du moins "se tenter" 😉
... Comment on fait pour détécter le lancement du jeu, pour lancer ton programme, pour lire dans un fichier, pour faire tourner un script en fond de tâche ? et c'est quoi un ps l grep ?Pour le retardement avant de couper beryl : ça doit pas être bien grave non ? Si un jeu est lancé, un autre script peut tourner non ?
Je suis un débutant moi, je ne connais que les bases :p je proposais juste 😉
tshirtman
Alors dans le désordre:
ps liste les processus il faut mettre l'option -e pour voir tous les processus du systeme ou -U$USER pour voir tous ceux de $USER
| c'est un "pipe" ça permet d'envoyer la sortie de la commande avant dans l'entré de la commande après, c'est très puissant.
grep comme son nom l'indique, permet d'attraper, des chaines de caractères bien sur, en gros seul les lignes contenant le mot que tu lui donne seront gardés.
j'utilise une combinaison de ps et grep dans mon script (avec un ruse pour eviter que le grep ne s'attrape lui même 😉).
ça permet donc de savoir si un programme qui nous interesse tourne actuellement ou pas, avec man grep tu devrait trouver comment attraper plusieurs mots d'un coup afin de n'avoir pas a répeter l'opération pour chaque programme que tu vérifie.
le problème de couper beryl après le lancement du jeu, je ne suis pas sur, mais le jeu pouvant avoir changé la résolution de l'écran, et ayant en tout cas pris le controle de celui çi, je ne suis pas sur qu'un changement de proprio en dessous lui plaise, mais si ça se trouve ça ne pose aucuns problèmes (la fleme de vérifier je suis sous fluxbox là donc pas de beryl 😛).
Sinon bien sur qu'un autre script peut tourner pendant un jeu, linux est un systeme multitache 😉 (enfin bon depuis dos, j'en ais pas vu beaucoup des systemes monotache ^^).
Pour qu'un script tourne en arrière plan tu peut le lancer au début de ta session automatiquement, avec l'outil de sessions de gnome par exemple... c'est sans doutes le plus simple pour ce genre de script a utilité uniquement graphique.
voila si tu as d'autres questions n'hésite pas.
edit: oh pour lire un fichier? cat évidement ^^. sache que tu as des for en bash aussi, et que tu peut regrouper tous éparpillés sur plusieurs lignes en une seule avec xargs, rassemble tout ça avec des | et tu devrait pouvoir faire ça 😉
sinon; si ça passe un certains stade de complexitée, tu as le droit de faire du python et de faire les quelques commandes indispensable a l'aide de popen (comme dans mon script couche tard).
cat_loic
Hum... Ok, je vais essayer.
Merci pour toutes ses précisions 🙂
tshirtman
j'ai l'impression d'être un prof qui donne un exo :lol:
cat_loic
tshirtman a écritj'ai l'impression d'être un prof qui donne un exo :lol:
Ben quoi, c'est pas ça ? :lol:
ms_nero
pour le probleme de plantage a la sortie des jeux et en utilisant beryl, j'ai juste desactivé "synchronisation avec le vblank" dans le menu general du gestionnaire de préférence beryl,depuis aucun plantage dés que je sors du jeu et en restant avec beryl actif
geek85
tshirtman a écritkillall compiz.real
je ne connait pas trop la commande killall (et je n'ai pas compiz mais beryl) mais en faisant un killal compiz* ça ne marcherai pas non plus? (je me base sur apt-get remove compiz* que j'ai testé et qui fonctionne, lui, mais je ne sais pas si c'est transposable a killall)
tshirtman
quand tu lance "compiz" il appèle "compiz.real" avec divers paramètres puis se ferme, le processus qui reste est donc "compiz.real", même si le nom du paquet est compiz 😉
geek85
tshirtman a écritquand tu lance "compiz" il appèle "compiz.real" avec divers paramètres puis se ferme, le processus qui reste est donc "compiz.real", même si le nom du paquet est compiz 😉
bon je viens de tester et effectivement l'étoile * est reconnu comme un caractère à part entière et pas un joker. c'était une idée.
sinon ton script ne marche pas s'il y a des guillemets dans le chemin (presque obligatoire pour wine)
par exemple: wine "C:\Program Files\Jeux\Oblivion\OblivionLauncher.exe"-> "wine: c:\program chemin introuvable" (guilemets obligatoire parce qu'il y a un espace entre program et files, tu me diras-> tu n'as qu'as mettre un \ !!! tu aurais raison mais bon déjà qu'il faut changer le lanceur, si en plus il faut faire la chasse aux espaces dans le path...)
tshirtman
j'ai tendance a faire sans guillemet, avec des tab, je n'avais pas pensé a ça pour wine... je vais voir si je pense a une solution.
nazca
juste pour info :
ton script marche trés bien sous gutsy (beta) avec compiz fusion, rien besoin de changer !!!
trop fort !!
tshirtman
🙂
nochka85
C'est exactement ce que je recherchais, mais il y avait un petit soucis chez moi:
les bords de fenêtres n'apparaissaient plus le temps de l'execution du programme (je m'en sert surtout pour Google earth !).
De plus, j'ai viré AWN pour mettre Cairo-dock ! 😉
Aussi, voici ma modification qui marche aux petits oignons chez moi:
#!/bin/bash
if [ "`ps -ef |grep 'compiz' |grep -v grep`" != "" ]; then
metacity --replace&
killall cairo-dock
$@
#décommentez la ligne suivante si compiz se relance avant le début du jeux.
#zenity --info --text='cliquez moi quand le jeu est fini'
compiz --replace&
cairo-dock
else
$@
fi
tshirtman
😃
pour ma part je ne m'en sert plus trop j'arrive a jouer sans couper compiz sous gutsy, et puis je ne joue pas trop ces jours çi. mais content de voir que ça sert encore ^^
nazca
idem, mon ordi est assez puissant pour faire les 2 (bureau 3d + jeux 3d !!) :
AMD Athlon 64 X2 4200+
2Go DDR2
Geforce 7600 GS 512Mo
Mais je m'en sert toujours sur mon portable, sous gutsy aussi :
Intel celeron 1.7 Ghz
1 Go DDR2
Geforce 6600 (mémoire partagé....)
Donc ce petit script servira toujours surtout pour les petite config !!
@++
tshirtman
moi je tourne avec un "simple" 3000+ et 1G de ram, gforce4 TI4200
ça marche, j'ai quelques problèmes quand je change d'applications avec alt-tab en cour de jeu, mais sinon tout vas bien 🙂
yurek
oui super mais moi pas comprendre pourquoi vous pas faire script qui se lance automatiquement dès que le plein ecrant est activé?? ca éviterai de modifié les lanceur des jeux!!!!