Graças a Marco, descobri uma maneira de usar wmctrl
.
Como os espaços de trabalho compiz são, na verdade, uma janela de visualização de uma única área de trabalho, a solução é mover a viewport atual para cobrir a região central da área de trabalho.
Primeiro, chame 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 de visualização 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 viewport para lá:
wmctrl -o $center_viewport