Respostas:
Graças a Marco, eu descobri uma maneira de usar wmctrl
.
Como os espaços de trabalho do compiz são, na verdade, a janela de visualização de uma única área de trabalho, a solução é mover a janela de visualização atual para cobrir a região central da área de trabalho.
Primeiro, ligue wmctrl -d
para obter as informações da área de trabalho atual:
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))
Em seguida, calcule a origem da janela 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
E mova a janela de exibição para lá:
wmctrl -o $center_viewport
compiz-send.py
na sua pasta pessoal.python compiz-send.py vpswitch switch_to_5_key
para garantir que ele funcione corretamente. Ele deve alternar para o espaço de trabalho central.Se funcionar, crie um arquivo chamado .switch_to_center_workspace.sh
na sua pasta pessoal e cole o seguinte dentro dela:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
substituindo user
pelo seu nome de usuário.
Abra Aplicativos de Inicialização, Sistema -> Preferências -> Aplicativos de Inicialização .
Clique em Adicionar e na entrada Comando: colocar /home/user/.switch_to_center_workspace.sh
. Coloque o que quiser nas entradas Nome: e Comentário:
Faça logoff e logon novamente e verifique se ele funciona.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5
parte do script para um número maior, como sleep 10
para garantir que o compiz já esteja sendo executado quando o script for executado. Você está usando o compiz, certo?
Eu ia fazer a pergunta semelhante, mas para três espaços de trabalho horizontais e também estou executando o compiz, e a wmctrl -d
saída (por espaço de trabalho) fica assim:
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
Do que simplesmente usei wmctrl -o 1366,0
( valores VP ) para tornar o centro o meu espaço de trabalho padrão na inicialização. Pode não funcionar para todos, mas apenas no caso;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Apenas uma breve observação - estou usando Natty e, graças à resposta de @ 谢 继 雷, notei que o seguinte é relatado movendo o terminal em cada um dos quatro 'espaços de trabalho' no 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
... ou seja, não são áreas de trabalho separadas nem espaços de trabalho - simplesmente a janela de visualização muda!
Portanto, para alternar entre essas quatro viewports, basta chamar o wmctrl -o
comando diretamente com os VP
valores listados acima, ou seja:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
EDIT: Ups, desculpe, só vi isso é o mesmo que a resposta da @ wik - mesclar / excluir conforme apropriado ..
wmctrl
pode mudar a janela de visualização na área de trabalho de qualquer maneira. Veja minha resposta abaixo.