Como obter informações precisas da janela (dimensões, etc.) no Linux (X)?

18

Como posso obter informações precisas sobre janelas no Linux? Eu sei que eu posso usar wmctrl para obter o tamanho de uma janela, mas o tamanho real da janela pode variar devido a decorações da janela. Preciso das seguintes informações e métodos:

* precise window dimensions
* precise available screen space (excluding panels like gnome-panel)
* the ability to set a window to be a certain size, including decorations

Qual seria a melhor maneira de fazer isso?

Obrigado antecipadamente!

    
por mellort 15.07.2010 / 17:24

2 respostas

20

Existem alguns programas de linha de comando que podem ajudar:

  • xwininfo : você obtém o tamanho da janela excluindo a decoração e a posição absoluta (para a tela) e relativa (para a área para janelas)
  • xdpyinfo : Isso fornece muito mais informações sobre sua tela -dispositivo, do que você quer saber. Mas em algum lugar na saída algo como screen: #0 seguido por dimension: 1024x768 .
por 27.11.2011 / 15:19
6

> dimensões precisas da janela

O exemplo a seguir (funciona pelo menos em sh, bash e zsh) imprime a geometria da janela com e sem moldura para todas as janelas com "KWrite" em algum lugar no título.

windows="$(wmiface findNormalWindows "KWrite" "" "" "" "" "")"
for window in $(echo $windows); do
{
  echo $window
  wmiface framePosition $window
  wmiface frameSize $window
  wmiface windowPosition $window
  wmiface windowSize $window
  echo
} done

> espaço de tela preciso disponível (excluindo painéis como o painel do gnome)

xrandr

Por exemplo:

xrandr | head -n1 | cut -d, -f2 | cut -d" " -f3-5

Saída no meu caso:

4400 x 2560

Não tenho certeza de como excluir painéis - se você tiver mais de um monitor, eles podem estar no meio da tela virtual, portanto a geometria da tela sem painéis pode ser mais complicada do que "espaço disponível na tela".

> a capacidade de definir uma janela para um determinado tamanho, incluindo decorações

wmiface setFrameGeometry $window $x $y $width $height

Leia wmiface README para mais comandos possíveis.

    
por 14.10.2012 / 16:20

Tags