obter tamanho de tela disponível após considerar o espaço usado pela barra de menu e pelo iniciador

2

Estou usando o Ubuntu 14.04. Eu sei como obter minha resolução de tela usando xrandr ou xdpyinfo. Mas com essas ferramentas, recebo o máximo de tamanho de área de trabalho disponível ...

Eu tenho uma barra de menu no topo que ocupa parte da área de trabalho disponível. Eu tenho um lançador à esquerda que leva um pouco da área de trabalho disponível. Como posso encontrar o tamanho real da área de trabalho disponível usando um script bash que considera o espaço usado pela barra de menus e pelo inicializador?

    
por daniel 04.10.2015 / 17:58

2 respostas

0

bem depois de muita pesquisa, encontrei o comando xprop que retorna a informação que eu estava procurando.

available_screen=$(xprop -root | grep -e 'NET_WORKAREA(CARDINAL)') #get available screen dimensions
    available_screen=${available_screen##*=} #strip off beginning text
    current_screen_width=$(echo $available_screen | cut -d ',' -f3 | sed -e 's/^[ \t]*//')
    current_screen_height=$(echo $available_screen | cut -d ',' -f4 | sed -e 's/^[ \t]*//')
    
por 09.10.2015 / 15:27
0

Solução

Desde a pergunta especificada usando bash , há uma maneira sucinta de fazer isso:

IFS=', =' read -a area < <(xprop -root '_NET_WORKAREA')

Uso

As coordenadas x e y , largura e altura estão na área em> array. Você pode usá-los assim:

echo "Top left of usable space: X is ${area[1]} and Y is ${area[2]}"
echo "Width is ${area[3]} and height is ${area[4]}"

Shell Bourne simples

Se você estiver restrito ao shell Bourne simples, poderá contornar a falta de matrizes nomeando as variáveis x , y , w e h :

xprop -root _NET_WORKAREA > /tmp/workarea$$
IFS=, read x y w h sluff < /tmp/workarea$$
x=${x#*=}
rm /tmp/workarea$$

Mais informações

Para ler sobre as propriedades do X11, como _NET_WORKAREA , consulte o Gerenciador de janela estendida Sugestões em freedesktop.org.

    
por 27.10.2017 / 12:48