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 -d
para 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
compiz-send.py
en su carpeta de inicio.python compiz-send.py vpswitch switch_to_5_key
para asegurarse de que funciona correctamente. Debería cambiarte al espacio de trabajo central.Si funciona, cree un archivo llamado .switch_to_center_workspace.sh
en 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 user
con 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 5
parte de la secuencia de comandos a un número mayor sleep 10
para 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 -d
resultado (por espacio de trabajo) se ve así:
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
De 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 -o
comando directamente con los VP
valores 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.
wmctrl
puede cambiar la vista dentro del escritorio de todos modos. Vea mi respuesta a continuación.