Maximize as janelas para a tela física ao usar uma resolução virtual com xrandr

4

Eu tenho um netbook com uma tela pequena em formato widescreen (1024x600), o que significa que muitos programas cujos designers não imaginavam tal coisa abrir janelas que não podem ser redimensionadas e cujos fundos são obscurecidos. Através do Ubuntu 10.04, eu cuidei dele com um comando xrandr:

xrandr --output LVDS1 --fb 1024x768 --panning 0x768

(note o 0x) que teve o efeito de me dar uma área de trabalho virtual de tamanho normal que garimpou verticalmente, mas que (de alguma forma) ignorou o gerenciador de janelas, de modo que as janelas maximizadas ocupavam apenas a tela física. O resultado foi que eu não tive que me mover a menos que uma grande caixa de diálogo aparecesse: legal.

Em 11.04, isso não funciona muito bem. Tudo o que eu disse acima é verdade, mas os 168 pixels de baixo parecem permanentemente escurecidos, de modo que se uma janela grande se estender lá não posso ver o que há nela (no entanto, está lá: as alças de redimensionamento aparecem e são úteis naqueles ocasiões em que o redimensionamento é permitido). Eu imagino que isso seja relacionado à Unidade. Isso anula o propósito, então estou tentando este comando xrandr:

xrandr --output LVDS1 --fb 1024x768 --panning 1024x768

(observe o 1024x). Infelizmente, isso não engana mais o gerenciador de janelas, e as janelas maximizadas saem de baixo. Pergunta:

  

Como configuro as coisas para que uma janela "maximizada" ocupe somente a tela física (ou, mais geralmente, ocupe uma determinada tela)?

Uma pergunta relacionada que eu ficaria feliz em ter respondido é:

  

Por que o primeiro comando xrandr engana o gerenciador de janelas (o "0x" significa, de acordo com a página man, que o deslocamento horizontal está desabilitado; funcionalmente, isso não tem sentido, já que o tamanho virtual é o mesmo que o físico Tamanho)? O que há de errado com a Unidade?

Observe que a ação "maximizar" é necessária, pois no Unity, uma janela maximizada é estilizada de maneira diferente: sua barra de títulos é absorvida na barra de ferramentas na parte superior da tela, economizando pixels valiosos para mim. Simplesmente redimensionar uma janela não é uma boa alternativa.

Referências:

Eu encontrei esta pergunta: Eu gostaria de evitar que a maximização cobrisse um terço da tela . Fiquei muito desapontado quando Compiz Maximumize apareceu para fazer nada (há um bug Launchpad: link ).

Também encontrei a mesma pergunta no superusuário: link , que oferece duas alternativas. O plugin do Compiz Grid não ajuda, porque não é maximizado, como descrevi acima. Eu não tentei o organizador de janela do Python, mas parece semelhante ao Grid. Em geral, não espero que scripts inteligentes ajudem, porque o significado de "maximizar" é controlado pelo próprio gerenciador de janelas e, portanto, a solução deve ser uma solução do Compiz. Existe um?

    
por Ryan Reich 11.07.2011 / 22:53

2 respostas

4

Deixe-me responder minha própria pergunta; a resposta está estranhamente envolvida. O truque é que o comportamento de área de trabalho desejado (que é o 10.04) é agora (em 11.04) controlado pelo Compiz, que tem uma noção de "saídas": isto é, telas para desenhar. Eles estão configurados no Gerenciador de configurações do CompizConfig (pacote compizconfig-backend-gconf ou -kconfig ), no menu "opções gerais", na guia "Configurações de exibição".

Essa coisa tem três configurações, todas importantes. O mais importante é "Detectar saídas": isso deve ser desmarcado, porque o ponto principal é que eu quero criar uma configuração de tela não-física, enquanto a detecção automática só vai captar o tamanho da minha tela.

O segundo mais importante é a caixa "Saídas", que é uma lista de resoluções. À primeira vista, você pode esperar que a coisa a ser colocada aqui seja "1024x768", mas isso é errado: ela diz ao Compiz para usar toda a tela virtual, para que as janelas maximizadas fluam para o fundo; esse é o comportamento errado. Mas escrever "1024x600" também não funciona, já que isso dirá ao Compiz para fingir que a tela tem apenas 600 pixels de altura; O resultado contra-intuitivo é, portanto, decide alongar todas as janelas. Isso é feio e também não funciona, causando falhas gráficas incríveis e, misteriosamente, deslocando botões do lugar que você precisa clicar para ativá-los. Não é bom.

Uma opção muito melhor é escrever "1024x600 + 0-168", que diz ao Compiz que há 168 pixels não usados na parte inferior: que reproduz o comportamento de "barra preta" de que eu estava reclamando. É bom saber de onde isso vem, mas eu ainda não quero. Mas isso me diz o que significa: significa que o Compiz está simplesmente ignorando esses pixels: não vai desenhar janelas lá. Meu mouse ainda vai lá, porque esse comportamento é controlado pelo X, que vem antes do Compiz. Parece que a coisa a fazer é de alguma forma dizer ao Compiz para desenhar lá (então o Windows pode ir lá) mas também não desenhar lá (então eles não querem ir lá).

A solução totalmente correta é, portanto, descrever dois dispositivos de saída para o Compiz: um "1024x600 + 0-168" e um "1024x768", dizendo ao Compiz para desenhar e não desenhar sobre esses pixels, ao mesmo tempo. Mas como se certificar de que sabe qual deles "quer"? Essa é a primeira opção nessa guia: "Manipulador de saída sobreposta". Defina para "Prefer menor saída", que é exatamente o que eu disse em palavras lá em cima.

Então a resposta: run xrandr --mode 1024x700 --fb 1024x768 --panning 0x768 ; vá para as opções de exibição do Compiz e coloque duas saídas "1024x600 + 0-168" e "1024x768"; desmarque "Detectar Saídas"; e faça "Manipulador de saída sobreposta" preferir saídas menores. Ufa.

    
por Ryan Reich 12.07.2011 / 06:31
1

Essa coisa xrandr é muito divertida e útil. Obrigado por compartilhar essa informação! Panning funciona! Eu estou em uma distro baseada em lubuntu. Mas há outra solução mais fácil encontrada aqui link

Basicamente, para janelas que são grandes demais para netbooks como os nossos (o meu também é 1024x600) Basta pressionar alt + clicar com o botão esquerdo em uma janela e arrastá-lo para qualquer direção desejada. Dessa forma, podemos ver os pixels do fundo com facilidade.

    
por tiubenedict 20.05.2014 / 13:25

Tags