Respuestas:
Gracias a Marco, he descubierto una forma de usar wmctrl.
Debido a que los espacios de trabajo compiz son en realidad la vista de un solo escritorio, la solución es mover la vista actual para cubrir la región central del escritorio.
Primero, llame wmctrl -dpara obtener la información del escritorio actual:
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))
Luego, calcule el origen de la ventana central:
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
Y mueva la ventana allí:
wmctrl -o $center_viewport
para controlar compiz desde la línea de comandos. Guárdalo comocompiz-send.py en su carpeta de inicio.python compiz-send.py vpswitch switch_to_5_keypara asegurarse de que funciona correctamente. Debería cambiarte al espacio de trabajo central.Si funciona, cree un archivo llamado .switch_to_center_workspace.shen su carpeta de inicio y pegue lo siguiente dentro de él:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
reemplazando usercon su nombre de usuario.
Abra Aplicaciones de inicio, Sistema -> Preferencias -> Aplicaciones de inicio .
Haga clic en Agregar y en el comando: entrada poner /home/user/.switch_to_center_workspace.sh. Ponga lo que quiera en las entradas Nombre: y Comentario:
Cierre sesión y vuelva a iniciar sesión y verifique que funcione.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5parte de la secuencia de comandos a un número mayor sleep 10para asegurarse de que compiz ya se está ejecutando cuando se ejecuta la secuencia de comandos. Estás usando compiz ¿verdad?
Iba a hacer una pregunta similar, pero para 3 espacios de trabajo horizontales y también estoy ejecutando compiz, y el wmctrl -dresultado (por espacio de trabajo) se ve así:
0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 10 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 10 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1De lo que simplemente usé wmctrl -o 1366,0( valores de VP ) para hacer que el centro sea mi espacio de trabajo predeterminado al inicio. Puede que no funcione para todos, pero por las dudas;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Solo una breve nota: estoy usando Natty, y gracias a la respuesta de @ 谢 继 雷, noté que lo siguiente se informa al mover el terminal en cada uno de los cuatro 'espacios de trabajo' en 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
... es decir, no son escritorios separados, ni espacios de trabajo, ¡simplemente cambia la ventana gráfica!
Entonces, para cambiar entre esas cuatro ventanas gráficas, simplemente llame al wmctrl -ocomando directamente con los VPvalores enumerados anteriormente, es decir:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
EDITAR: Ups, lo siento, acabo de ver que esto es lo mismo que la respuesta de @ wik: fusionar / eliminar según corresponda.
wmctrlpuede cambiar la vista dentro del escritorio de todos modos. Vea mi respuesta a continuación.