Tips and Tricks | Trucs et Astuces
Subscription date : 21 October 2009
Messages : 1575
|
Allo!
Non je n'ai pas la réponse. Je la cherche! lolll
Est-ce possible de lancer le dock avec une commande DBus ou avec une commande Python?
Le Wiki ne donne pas d'indication là-dessus et une recheche sur google je n'ai pas trouvé comment lancer un programme avec Python. AVec DBus il semble que c'est "dbus-launch cairo-dock"?
Merci! |
matttbe, Monday 13 January 2014 à 13:23
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Mais allô quoi?
Euh, je ne comprends pas trop l'intérêt. Si tu veux lancer le dock avec une commande, il y a celle-ci, un peu magique oui je sais
Pour Python, il y a plusieurs manières (au-moins avec os.Popen, subprocess.Popen, os.system, subprocess.call, etc.)from subprocess import call
call("cairo-dock")
import os
os.system("cairo-dock")
|
Subscription date : 21 October 2009
Messages : 1575
|
Pcq la commande ne fonctionne pas bien lors d'un resume, elle ne démarre pas systray et bloque ma poubelle (3 petits points au lieu du poids sur la poubelle). Que je lance un script user par un hook sleep.d du style "su -c - username /script.sh" ou carrément la commande dans le hook "su -c -username 'cairo-dock'", ça fait la même chose.
Plus bizarre encore, si je décide, après le resume, de lancer un script à partir de CD qui va faire un pkill de CD et un cairo-dock pour le lancer, ça ne corrige pas le problème. Les commandes Dbus ne fonctionnent pas du tout non plus. Alors je dois faire un QUIT manuel par le right-click dans CD et lancer CD par klauncher ou d'une session shell. J'ai même été plus loin, dans mon hook sleep.d j'ai mis 4 commandes de pkill CD, sleep 3 et cairo-dock et à chaque démarrage de CD le systray n'y était pas et la poubelle était brisée.
Du style pkill -TERM (le -HUP ne kill pas CD) cairo-dock
sleep 3
nohup cairo-dock > /dev/null 2>&1 &
sleep 3
pkill -TERM cairo-dock
sleep 3
nohup cairo...etc.
Certe pe que ça se corrige, mais je tentais de voir s'il y avait un autre moyen de lancer CD que la commande normale "cairo-dock", au cas où cet autre moyen ne cause pas le soucis ci-haut mentionné.
Je vais voir si avec Python ça fait la même chose, merci! |
Subscription date : 21 October 2009
Messages : 1575
|
Ok les commandes python ci-haut fonctionnent bien.
Bon truc!
Dans mon cas, restera à voir si au resume ça va régler mon petit soucis, mais j'ai espoir.
N.B.: La réponse est non, mon soucis est tjrs là, mais rien à voir avec la commande python.  |
matttbe, Monday 13 January 2014 à 15:32
|
|
Subscription date : 21 October 2009
Messages : 1575
|
Matttbe, j'ai effectué plusieurs corrections sur la page http://www.glx-dock.org/ww_page.php?p=First%20Steps&lang=en#3-Running%20cairo-dock%20at%20startup
CAIRO-dock était écrit CARIO-dock à plusieurs endroits. J'ai également modifié la procédure KDE car avec KDE4 c'est différent de ce qu'y était écrit.
Cette procédure indique de lancer le python script au "startup", le resume n'est pas le même status, donc lancer CD par cette procédure ne fonctionne pas.
Par contre peut-être que lancer le script XML au resume par un hook script fonctionnerait. Mais là je viens de m'en créer un tout simple de 3-4 lignes avec les commandes que tu m'as fournies, si ça fonctionne je vais garder ça. |
matttbe, Monday 13 January 2014 à 16:30
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Merci pour les modif
Cette procédure indique de lancer le python script au "startup", le resume n'est pas le même status, donc lancer CD par cette procédure ne fonctionne pas. Le script écoute les signaux de "resume": lorsque l'on revient d'une mise en veille, le script est averti et réagit et relance le dock (via DBus avec reboot). |
Subscription date : 21 October 2009
Messages : 1575
|
Ah ok je comprends.
Via Dbus avec reboot? Bon cette commande fonctionne que très rarement chez moi, c'est pe un autre issue ça.
Je vais tester le script XML et les commandes python que tu m'as remises.
Mais comme j'ai un prob avec le dbus, je ne suis pas sûr que le XML va fonctionner, en fait il fonctionnera probablement, mais mon dbus va lui pèter dedans alors CD ne redémarrera pas si ça arrive.  |
matttbe, Monday 13 January 2014 à 16:44
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Via Dbus avec reboot? Bon cette commande fonctionne que très rarement chez moi, c'est pe un autre issue ça Tu peux remplacer le méthode restart_dock() dans le script par ce que tu veux ex: juste remplacer par et ajouter en dessous:(voir ajouter un sleep dans le script) |
Subscription date : 21 October 2009
Messages : 1575
|
Le dbus.Quit ne fonctionnera pas si mon Dbus ne veut pas rouler les commandes dbus comme c'est régulièrement le cas.
Je vais pkill cairo-dock au s2ram et remplacer ta commande par python, mais je dois voir si python démarre correctement le systray et la poubelle après un resume du s2ram. Donc plusieurs petites choses à vérifier de mon côté. Tout ça à cause de mon dbus qui est vrm bizarre... Non c pas la faute à KDE!!! J'espère...  |
matttbe, Monday 13 January 2014 à 19:07
|
|
Subscription date : 21 October 2009
Messages : 1575
|
L'astuce avec python fonctionne bien. J'ai d'autres soucis dans d'autres threads mais pour l'astuce, python lance bien CD, merci.  |
Subscription date : 21 October 2009
Messages : 1575
|
matttbe : Via Dbus avec reboot? Bon cette commande fonctionne que très rarement chez moi, c'est pe un autre issue ça Tu peux remplacer le méthode restart_dock() dans le script par ce que tu veux  ex: juste remplacer par et ajouter en dessous: (voir ajouter un sleep dans le script)
Hum, dans le script .py, n'existe pas. cd_dbus_iface oui, mais pas .Reboot. Comme s'il fallait le compléter nous-mêmes? |
matttbe, Wednesday 15 January 2014 à 22:53
|
|
Subscription date : 21 October 2009
Messages : 1575
|
Ah j'ai trouvé quelque chose, mais c'est pas facile lire et éditer du XML direct dans le code quand on n'est pas habitué.
<span class="pyg-n">cd_dbus_iface</span><span class="pyg-o">.</span><span class="pyg-n">Reboot</span> <span class="pyg-p">()</span>
<span class="pyg-k">except</span><span class="pyg-p">:</span>
<span class="pyg-k">pass</span>
Ici il y a un Reboot. Donc si je veux remplacer le Reboot par du python, j'inscrirais "system("cairo-dock")" car à la place de "cd_dbus_iface" j'inscrirais "os"? |
Subscription date : 21 October 2009
Messages : 1575
|
Ligne 51?? On doit pas avoir le même fichier, moi j'ai
lolll |
Subscription date : 21 October 2009
Messages : 1575
|
T'as juste 90 lignes là-dedans? Moi j'en ai 286 une fois ouvert dans Kate. |
matttbe, Wednesday 15 January 2014 à 22:57
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Attends, aurais-tu fait un clic droit sur le lien / Enregistrer la cible du lien sous...?
Voilà ce qu'il arrive quand on ne lit pas correctement les instructions du wiki  |
Subscription date : 21 October 2009
Messages : 1575
|
Oui exactement. Cette page du wiki ne mentionne rien sur le "right-click" ou "right click". Ça devait être indiqué dans une autre page que je n'ai pas lue, effectivement.
http://glx-dock.org/ww_page.php?p=Recurrents%20problems&lang=en#0-Recurring%20Problems
Bon anyway j'ai copié-collé dans .py et je l'ai setté dans mon autostart, je vais voir demain soir le résultat.  |
Subscription date : 21 October 2009
Messages : 1575
|
Alors le script ne fonctionne pas. Un simple os.system("pkill cairo-dock") à la ligne 51 ne kill pas CD.
Je vais donc essayer autres choses et ton autre méthode dans l'autre thread. |
Tips and Tricks | Trucs et Astuces
|