Metacity (Gnome VM) - restringe o posicionamento das janelas para a exibição principal da “Tela 0”?

1

Pergunta

Como posso restringir o posicionamento automático de todas as janelas por metacity ? Restringindo a Monitor0 ou evitando o "espaço morto" da minha exibição?

O problema

Estou executando o CentOS 5.3 com metacity v2.16.0 para um gerenciador de janelas.

Eu tenho dois monitores ligados a uma única placa da nVidia, o maior (0) à esquerda da menor (1), topos alinhados - então o X11 informa meu tamanho de exibição como a soma das larguras pela altura maior. Minha tela mapeia para os dois monitores assim:

000000000000011111111
000000000000011111111
000000000000011111111
000000000000011111111
0000000000000........
0000000000000........

Meu problema é que existe uma área, mostrada por pontos (".") na parte inferior direita que não está mapeada para qualquer monitor, e metacity tenta colocar novas janelas lá, já que não há janelas colocadas lá.

Estou usando o modo "TwinView" e o driver da nVidia.

EDITAR : Depois de uma reinicialização, acho que a funcionalidade mudou:
  • A seção morta (".") da tela não é mais usada - ótima!
  • Se eu maximizar uma janela, ela preenche um dos monitores ("0" ou "1") - bom!

Então, eu ainda gostaria de uma resposta para restringir o posicionamento das janelas, monitorar "0", mas posso viver sem uma resposta.

No entanto ... agora o Gnome Panel irá desenhar os ícones para uma "gaveta" no lugar errado, mas isso soa como uma variação de um bug conhecido - link

    
por NVRAM 11.09.2009 / 23:49

1 resposta

0

Meu problema original de "espaço morto" foi corrigido após a reinicialização. Parece que o Metacity recusa qualquer colocação de janela restrita, então eu posso:

  1. Pare de usar o Metacity ou
  2. Mantenha uma janela aberta no segundo monitor para incentivar a colocação no monitor principal (eu faço isso de qualquer forma).

Aparentemente, os desenvolvedores do Gnome Metacity acharam que colocar janelas em apenas um monitor é " apenas bobo " (veja a citação abaixo).

A partir do desktop-devel-list do Gnome de alguns anos atrás:
Currently metacity works very very hard to do the right thing in window
placement for xinerama.  It works more or less as follows:

1) Try to find a place for the window on the current xinerama
2) Construct a "natural xinerama ordering" which is a breadth-first
   traversal of the xinerama graph from the xinerama containing the mouse
   point, with preference to left, then right, then up, then down.
3) walk the natural xinerama ordering to find a nearby xinerama with an
   empty space that could contain the window
4) if the window is big enough to be maximized, try to find an empty
   xinerama where it could go
5) if there is nowhere the window can fit, fall back to a cascade on the
   xinerama containing the pointer

I find that this algorithm makes it exceedingly easy to make good use of
all the space available on both screens.  A simple "always on current
xinerama" policy would simply encourage users to use only one xinerama,
which is really just silly.  If you have two monitors, why not use them?

The one improvement that I'd like to make here is to improve the cascade
algorithm so that it doesn't ever just place window at the upper left
corner of the screen.

-Rob
    
por 29.09.2009 / 18:37