Existe-t-il une commande permettant d'accéder à un espace de travail spécifique?

21

J'essaie de créer une liste rapide sur le lanceur Workspace Switcher qui permet de basculer rapidement vers un certain espace de travail. (Mon ami utilise parfois mon ordinateur et n'apprécie tout simplement pas les raccourcis clavier. Je souhaite donc l'aider.)

Y a-t-il une commande à saisir dans un terminal qui forcerait un certain espace de travail à se concentrer?

    
posée Leron 07.05.2011 - 23:58
la source

4 réponses

31

Vous pouvez utiliser wmctrl .

Commandes de base:
wmctrl -d pour afficher tous vos espaces de travail.
wmctrl -s <workspace_name> pour passer à un espace de travail spécifique.

Si vous utilisez Compiz, vous devrez faire une astuce car les "espaces de travail" Compiz sont en réalité des fenêtres de visualisation d'un seul espace de travail.

Trick Instructions

Vérifiez la sortie de wmctrl -d Par exemple, le mien est:

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

Cela signifie que j’ai un espace de travail de 4098 x 2304 au lieu de ce que je "pense", ce que j’ai (neuf "espaces de travail", 3 x 3).
J'étais dans ce qui était supposé être "l'espace de travail" 2, mais en réalité, j'étais dans la fenêtre d'affichage (VP) 1366,0 (4098/3 = 1366), comme le montre la sortie ci-dessus.

Donc, voici comment cela fonctionne: nous prenons l’espace de travail entier et divisons le nombre d’espaces de travail que nous «pensons» avoir. Dans mon cas: 4098/3 = 1366 et 2304/3 = 768.

Si je souhaite accéder à mon "espace de travail" 1, la commande est la suivante:

wmctrl -o 0,0

Ensuite, si je souhaite accéder à mon "espace de travail" 4, la commande est la suivante:

wmctrl -o 0,768

Si je souhaite accéder à mon "espace de travail" 8, la commande est la suivante:

wmctrl -o 1366,1536

Si je souhaite accéder à mon "espace de travail" 9, la commande est la suivante:

wmctrl -o 2732,1536

Compris? ; -)

Le drapeau -o "tronque" leurs valeurs. En d'autres termes, cela modifie "l'espace de travail" auquel le pixel réel appartient. Les éléments suivants sont équivalents:

wmctrl -o 0,0
wmctrl -o 1365,767
    
réponse donnée desgua 08.05.2011 - 03:34
la source
7

Il est très simple de réaliser ce que vous voulez avec xdotool , qui offre de nombreuses options pour gérer différents espaces de travail (également appelés "bureaux" dans la documentation du programme). Je trouve qu’il peut être très intéressant et créatif de chaîner les commandes de man xdotool ; les commandes que j'ai formulées ci-dessous pourraient être utiles dans les scripts.

Remarque: Avec certains gestionnaires de fenêtres ou si vous utilisez compiz , vous devrez peut-être utiliser des commandes xdotool telles que set_desktop_viewport et get_desktop_viewport . Vous devrez peut-être spécifier les commandes d'une manière différente, comme desgua suggère ci-dessus, mais pour moi les set_desktop et% co_de Le% de commandes s’est avéré le plus utile sur un système autre que Compiz.)

( La solution est particulièrement utile pour les utilisateurs de Xubuntu / Lubuntu, ou ceux qui n'exécutent pas Compiz, etc.. )

Pour répertorier le nombre d'espaces de travail actuels, entrez

xdotool get_num_desktops

Les commandes suivantes ne fonctionneront que si vous avez au moins un autre espace de travail.

Pour modifier le focus sur votre espace de travail 1, entrez simplement

xdotool set_desktop 1 

Ensuite, pour revenir à l'espace de travail par défaut, entrez

.
xdotool set_desktop 0

L'espace de travail doit simplement être spécifié en tant que dernière valeur de la commande (1 ou 2 ou 3, etc.).

Pour trouver le numéro de l'espace de travail sur lequel vous vous trouvez, vous pouvez utiliser

xdotool get_desktop

Ces commandes peuvent être utilisées dans des scripts et elles devraient être très utiles pour obtenir ce que vous voulez.

Pour savoir comment passer d'applications sur un poste de travail particulier, consultez ma réponse ici:

Pour plus d'options utiles disponibles pour la commutation d'espace de travail, consultez set_desktop_for_window .

    
réponse donnée user76204 12.01.2013 - 20:46
la source
1

J'ai implémenté un script qui fait ce que vous voulez. Le voici: link

Cela fonctionne bien comme décrit dans le post de Desgua. Il permet également d’envoyer des fenêtres à d’autres espaces de travail.

    
réponse donnée Norswap 12.01.2013 - 19:21
la source
0

Il existe un script appelé compiz-send.py sur le wiki Compiz qui répond en partie à votre question: ce n'est pas un espace de travail spécifique mais vous pouvez accéder à celui à côté.

Vous pouvez ainsi lancer une commande
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
et faites en sorte que la fenêtre d’affichage se place 1 à gauche ou à droite.

    
réponse donnée Rinzwind 08.05.2011 - 00:14
la source

Lire d'autres questions sur les étiquettes