Xfce 4.8 Gérer les espaces de travail en ligne de commande

Bonjour tout le monde,

J’essaie de trouver une solution simple afin de lancer, en ligne de commande, une application graphique dans un espace de travail existant au choix.
L’idée étant de créer un script permettant de configurer mes espaces de travail automatiquement (sur le bureau 1 lancer telles application, sur le bureau 2 lancer telles applications).

J’ai pas mal cherché sur internet… , mais je pense que je ne trouve pas les mots-clé pertinents !

Je suis sur Debian 7 avec XFCE 4.8.6

Edit : j’ai trouvé ce bout de script sur le forum d’ubuntu. (http://forum.ubuntu-fr.org/viewtopic.php?id=421116#p3769260)
qui s’utilise de cette manière

qui fonctionne avec Python et python-wnck. Mais je n’ai pas les connaissances pour l’adapter à Debian 7 et xfce… je continue les recherches

#!/usr/bin/python
# vim:fileencoding=utf-8
import sys
import signal
import subprocess
import gtk
import wnck

def on_new_application(screen, app, pid, wspace):
    if app.get_pid() == pid:
        xid = app.get_xid()
        window = wnck.window_get(xid)
        window.move_to_workspace(wspace)
        sys.exit(0)

def on_command_end(signum, frame):
    print "La commande", " ".join(sys.argv[2:]), "a terminé sans ouvrir de fenêtre."
    gtk.main_quit()

def main():
    if len(sys.argv) < 3:
        print "Utilisation:", sys.argv[0], " <numéro de espace de travail> <commande>"
        sys.exit(1)
    # Controle du premier parametre
    wspace_count = int(sys.argv[1])
    screen = wnck.screen_get_default()
    while gtk.events_pending():
        gtk.main_iteration()
    if wspace_count < 1 or wspace_count > screen.get_workspace_count():
        print "L'espace de travail numéro", wspace_count, "n'existe pas."
        sys.exit(1)
    # Lancer la commande
    commande = subprocess.Popen(sys.argv[2:])
    signal.signal(signal.SIGCHLD, on_command_end)
    screen.connect("application-opened", on_new_application,
            commande.pid, screen.get_workspace(wspace_count - 1))
    gtk.main()

if __name__ == '__main__':
    main()

Edit 2 :

Apparemment il existe pyxfce (lien en anglais)http://pyxfce.xfce.org/index.php?page=download&lang=en
Je continue à chercher…

Merci de m’indiquer des pistes :slightly_smiling: !
A plus

Salut,

Pas testé mais d’après le man,
swoolley.org/man.cgi/1/xfwm

[code]Some applications that understand standard Xt command line arguments
and X resources, like xterm and xfontsel, allow the user to specify the
start-up desk on the command line:

        xterm -xrm "*Desk:1"

   will start an xterm on desk number 1. Not all  applications  understand
   this option, however.[/code]

Ca ne fera pas tout mais c’est peut-être suffisant dans ta situation.

Hm… même xterm ne s’ouvre pas dans un autre espace de travail,

Dès que j’aurai un peu de temps je tenterai d’utiliser pyxfce dans un script

Merci pour l’essai :stuck_out_tongue:

Et avec la variable d’env [mono]DISPLAY[/mono] ? Il me semble que tu peut tout a fait controle sur quel écran ton appli s’affiche avec ça … a moins que :whistle:

La variable d’environnement DISPLAY permet d’interagir sur l’écran ou afficher l’application, mais pas l’espace de travail ? (oui j’ai qu’un seul écran mais j’utilise plusieurs espace de travail malgré tout …) , ou j’ai raté une info cruciale xD ?