![Por que não consigo mover uma janela para o canto superior esquerdo com wmctrl no Unity?](https://rvso.com/image/1000898/Por%20que%20n%C3%A3o%20consigo%20mover%20uma%20janela%20para%20o%20canto%20superior%20esquerdo%20com%20wmctrl%20no%20Unity%3F.png)
Tenho brincado wmctrl
para ter mais controle das minhas janelas. Encontrei um comportamento estranho em que o Unity reserva o dobro do espaço.
Veja esta captura de tela:
Abri o terminal e movi a janela usando o comando top. Deve estar no canto superior esquerdo (X=0 Y=0). Mas por algum motivo há alguma margem entre o terminal e as barras do Unity.
Se eu entendi as páginas de manual corretamente, pode ter algo a ver com oWA: 65,24.
Alguém pode me ajudar a consertar isso?
Responder1
Provavelmente não é a resposta que você estava procurando:
Problemas com a combinação de Unidade ewmctrl
A combinação de Unity e wmctrl
infelizmente tem algumas peculiaridades, das quais o comportamento que você descreve é uma delas.
Olhando para sua saída
- O que
65,24
você mencionou, são oslargurado Unity Launcher e doalturado seu painel. Na linha:
0x03400005 0 0 24 65 1111 janw_VirtualBox unity-launcher
na saída de
wmctrl -lG
, você pode ver que o Launcher estáposicionadoatx=0, y=24
, enquanto o tamanho do lançador é65 x 1111
. (1111
é a altura da sua tela menos a altura do seu painel)
Estritamente, o comando para colocar a janela ativa no canto superior esquerdo deveria ser:
wmctrl -r :ACTIVE: -e 0,65,24,1500,550
e não:
wmctrl -r :ACTIVE: -e 0,0,0,1500,550
No entanto, isso não resolverá o problema, é simplesmente um bug. Ainda haverá a margem que você descreve. A propósito, o mesmo acontecerá ao usar xdotool
(não instalado por padrão):
xdotool windowmove "$(xdotool getactivewindow)" 65 24
ou
xdotool windowmove "$(xdotool getactivewindow)" 0 0
Lendo a saída dewmctrl -dG
Olhando para 1792x1111
dentro WA: 65,24 1792x1111
, você pode ver que tem uma resolução de monitor de 1857
( 65
+ 1792
) x 1135
( 1111
+ 24
).
Nesse caso, corresponde exatamente aos valores em DG: 1857x1135
, já que você só tem uma viewport (área de trabalho): DG
representa ototaltamanho da sua área de trabalho (todas as viewports).
Resumindo
Ambos wmctrl
funcionam xdotool
bem se você definir uma janelamaximizado. O efeito que você descreve não ocorrerá.Movendo-seouredimensionarno entanto, as janelas deixarão alguns pixels do inicializador e do painel, conforme descrito emesta resposta.:
"A janela a ser movida/redimensionada precisa ter pelo menos alguns px do inicializador do Unity e do painel superior."
Além do que você descreve, outro problema que você encontrará se começar a brincar wmctrl
e Unity
é odesvio, conforme descrito emEste.