web-dev-qa-db-fra.com

Existe-t-il un moyen de spécifier l’espace de travail et / ou la fenêtre dans lesquels lancer un programme?

J'ai posé une question connexe, mais plus spécifique, ici . Je veux savoir s’il existe un moyen de spécifier où vous voulez qu’un programme soit lancé. Je veux fondamentalement écrire un script Shell qui est lancé à chaque fois que je me connecte, comme si

google-chrome www.gmail.com    -workspace=1 -monitor=1
google-chrome www.facebook.com -workspace=1 -monitor=2
google-chrome www.youtube.com  -workspace=1 -monitor=3

gedit a.txt b.txt c.txt        -workspace=2 -monitor=1
gedit d.txt e.txt f.txt        -workspace=2 -monitor=2
gedit g.txt h.txt i.txt        -workspace=2 -monitor=3

mplayer Terminator1.mkv        -workspace=3 -monitor=1
mplayer Terminator2.mkv        -workspace=3 -monitor=2
mplayer Terminator3.mkv        -workspace=3 -monitor=3

il existe un programme appelé wmctrl mais il échoue de tant de façons que je ne sais même pas par où commencer. En principe, il est simple, spécifiez la fenêtre et déplacez-la. Mais spécifier des fenêtres n’est pas chose facile, deux navigateurs portent le même nom, "Google Chrome". On peut utiliser leurs identifiants de fenêtre uniques, mais obtenir ces informations n’est pas trivial (autant que je sache, cela n’est pas renvoyé lors de l’exécution). Il existe ensuite une option :ACTIVE: qui est le dernier programme lancé, mais rien ne garantit que la fenêtre est lancée lorsque le contrôle est rendu à la ligne de commande. Pour aggraver les choses, il faut spécifier les coordonnées globales, par opposition aux coordonnées facultatives dans un espace de travail/moniteur.


Voici l'approche que je suis en train de prendre. J'ai téléchargé des scripts sur GitHub (voir ici ou ici ) qui utilisent wmctrl pour déplacer les fenêtres.

2
puk

Vous pouvez déterminer quel écran lancer un programme en utilisant les éléments suivants:

$ DISPLAY=":0.1" program_name

Certains programmes vous permettent de définir leur affichage par défaut dans un fichier de configuration. mplayer est l'un de ces programmes. Ajoutez ce qui suit à ~/.mplayer/config

display = ": 0.1"

Votre premier affichage est 0.0. Votre deuxième affichage est 0.1. Votre troisième affichage est 0.2.

2
earthmeLon

Vous pouvez définir l’espace de travail d’un programme lancé par l’interface graphique en installant CompizConfig Settings Manager à partir du Centre logiciel.

Commencez par ouvrir une instance du programme que vous souhaitez placer.

Exécuter CCSM et aller dans "Gestion de la fenêtre", et actif "Place Windows", cliquez dessus et choisissez le "placement de fenêtre fixe".

Sous "Windows avec fenêtre d'affichage fixe", cliquez sur Nouveau. Dans la boîte de dialogue qui apparaît, cliquez sur le bouton "+". Ensuite, dans la boîte de dialogue suivante, cliquez sur le bouton "Saisir", puis cliquez sur le programme lancé et sur "Ajouter". Puis définissez les valeurs pour les fenêtres: X = 1, Y = 1 est en haut à gauche, X = 1, Y = 2 est en bas à gauche, X = 2, Y = 1 est en haut à droite, X = 2, Y = 2 est en bas droite.

Si vous ne faites rien d'autre, cela le définira pour la classe window, mais il existe d'autres options, telles que ID, Type, etc., mais ID est la seule que vous ne pouvez pas saisir.

2
Rasmus