Como posso obter informações sobre meus desktops virtuais através da linha de comando?

5

Estou curioso em saber como posso obter informações como as dimensões da minha área de trabalho, qual área de trabalho está ativa no momento e quais rótulos (se houver) estão definidos para o meu ambiente de trabalho (DE).

    
por slm 09.10.2013 / 02:44

1 resposta

7

Usando a ferramenta wmctrl , você pode obter todas as informações acima, especificamente a opção -d .

Exemplo

$ wmctrl -d
0  * DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  Workspace 1
1  - DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  
2  - DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  N/A
3  - DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  N/A

Detalhes

Uma linha é enviada para cada desktop, com a linha dividida em colunas separadas por espaço.

  • A primeira coluna contém um número de área de trabalho inteiro.
  • A segunda coluna contém um caractere '*' para a área de trabalho atual, caso contrário, ela contém um caractere '-'.
  • As próximas duas colunas contêm a cadeia fixa DG: e, em seguida, a geometria da área de trabalho como "x" (por exemplo, "1280x1024").
  • As duas colunas seguintes contêm a cadeia fixa VP: e, em seguida, a posição da janela de visualização no formato ',' (por exemplo, '0,0').
  • As próximas três colunas depois disso contêm a string fixa WA: e, em seguida, duas colunas com a geometria da área de trabalho como 'X, Y e WxH' (por exemplo, '0,0 1280x998').
  • O restante da linha contém o nome da área de trabalho (possivelmente contendo vários espaços).

Extra Cool coisas que você pode fazer com wmctrl

lista informações sobre o Gerenciador de Janelas

$ wmctrl -m
Name: compiz
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: OFF

lista de janelas ativas

$ wmctrl -l
0x00c00028 -1 grinchy Top Expanded Edge Panel
0x0120001e  0 grinchy x-nautilus-desktop
0x06015fee  0 grinchy saml@grinchy:~
0x06000004  0 grinchy saml@grinchy:~
0x05a000d1  0 grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome

Uma linha é enviada para cada janela, com a linha dividida em colunas separadas por espaço.

  • A primeira coluna sempre contém a identidade da janela como um inteiro hexadecimal.
  • A segunda coluna sempre contém o número da área de trabalho (a -1 é usada para identificar uma janela adesiva).
  • Se a opção -p for especificada, a próxima coluna conterá o PID da janela como um inteiro decimal.
  • Se a opção -G for especificada, quatro colunas inteiras serão seguidas: deslocamento x, deslocamento y, largura e altura.
  • A próxima coluna contém sempre o nome da máquina do cliente.
  • O restante da linha contém o título da janela (possivelmente com vários espaços no título).

-p switch example

0x06015fee  0 3278   grinchy saml@grinchy:~
0x06000004  0 3278   grinchy saml@grinchy:~
0x05a000d1  0 4676   grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome

-G switch example

0x06015fee  0 3378 128  941  361  grinchy saml@grinchy:~
0x06000004  0 900  142  947  397  grinchy saml@grinchy:~
0x05a000d1  0 0    50   1440 826  grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome

* NOTA: As opções -p e -G também podem ser combinadas!

mudando para uma área de trabalho diferente

$ wmctrl -s 2

OBSERVAÇÃO: os desktops são numerados a partir de 0, então 1 seria o segundo.

reduz o número de desktops

$ wmctrl -n 3

Agora temos 3 em vez de 4.

$ wmctrl -d | wc -l
3

Agora coloque de volta para 4.

$ wmctrl -n 4
$ wmctrl -d | wc -l
4

Fechando uma janela

$ wmctrl -l | grep GVIM
0x02a00003  0 grinchy [No Name] - GVIM

$ wmctrl -c GVIM

$ wmctrl -l | grep GVIM
$ 
    
por 09.10.2013 / 02:49