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
wmctrl
peut changer de fenêtre dans le bureau de toute façon. Voir ma réponse ci-dessous.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: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.
la source
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é, commesleep 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ù;)la source
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:
... 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 lesVP
valeurs répertoriées ci-dessus, c'est-à-dire: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 ..
la source