Réponses:
Grâce à Marco, j'ai trouvé un moyen d'utiliser wmctrl
.
Parce que les espaces de travail compiz sont en fait la fenêtre d'un seul bureau, la solution consiste donc à déplacer la fenêtre actuelle pour couvrir la région centrale du bureau.
Tout d'abord, appelez wmctrl -d
pour obtenir les informations du bureau actuel:
read desktop_id _ast \
DG_ geometry \
VP_ viewport \
WA_ wa_off wa_size \
title \
< <(LANG=C wmctrl -d | grep '*')
geom_w=${geometry%x*}
geom_h=${geometry#*x}
# The workarea size isn't accurate, because the top/bottom panel is excluded.
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}
rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))
# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))
Ensuite, calculez l'origine de la fenêtre centrale:
center_row=$((rows / 2))
center_col=$((cols / 2))
center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))
center_viewport=$center_x,$center_y
Et déplacez la fenêtre là-bas:
wmctrl -o $center_viewport
compiz-send.py
dans votre dossier personnel.python compiz-send.py vpswitch switch_to_5_key
pour vous assurer qu'elle fonctionne correctement. Il devrait vous faire basculer vers l'espace de travail central.Si cela fonctionne, créez un fichier appelé .switch_to_center_workspace.sh
dans votre dossier de départ et collez ce qui suit à l'intérieur:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
remplacer user
par votre nom d'utilisateur.
Ouvrez les applications de démarrage, Système -> Préférences -> Applications de démarrage .
Cliquez sur Ajouter et dans l' entrée Command: put /home/user/.switch_to_center_workspace.sh
. Mettez ce que vous voulez dans les entrées Nom: et Commentaire :.
Déconnectez-vous et reconnectez-vous et vérifiez que cela fonctionne.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5
partie du script par un nombre plus élevé, comme sleep 10
pour vous assurer que compiz est déjà en cours d'exécution lorsque le script est exécuté. Vous utilisez compiz non?
J'allais poser la question similaire, mais pour 3 espaces de travail horizontaux et j'exécute également compiz, et la wmctrl -d
sortie (par espace de travail) ressemble à ceci:
0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1
Que j'ai simplement utilisé wmctrl -o 1366,0
( valeurs VP ) pour faire du centre mon espace de travail par défaut au démarrage. Pourrait ne pas fonctionner pour tout le monde, mais juste au cas où;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Juste une brève note - j'utilise Natty, et grâce à la réponse de @ 谢 继 雷, j'ai remarqué que ce qui suit est signalé en déplaçant le terminal dans chacun des quatre 'espaces de travail' dans Unity:
$ wmctrl -d
# top left
0 * DG: 2048x1200 VP: 0,0 WA: 0,24 1024x576 Workspace 1
# bottom left
0 * DG: 2048x1200 VP: 0,600 WA: 0,24 1024x576 Workspace 1
# top right
0 * DG: 2048x1200 VP: 1024,0 WA: 0,24 1024x576 Workspace 1
# bottom right
0 * DG: 2048x1200 VP: 1024,600 WA: 0,24 1024x576 Workspace 1
... c'est-à-dire qu'ils ne sont ni des bureaux séparés, ni des espaces de travail - simplement la fenêtre change!
Ainsi, pour basculer entre ces quatre fenêtres, appelez simplement la wmctrl -o
commande directement avec les VP
valeurs répertoriées ci-dessus, c'est-à-dire:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
EDIT: Ups, désolé, je viens de voir que c'est la même chose que la réponse de @ wik - fusionner / supprimer selon le cas ..
wmctrl
peut changer de fenêtre dans le bureau de toute façon. Voir ma réponse ci-dessous.