Как получить информацию о моих виртуальных рабочих столах через командную строку?

Как получить информацию о моих виртуальных рабочих столах через командную строку?

Мне интересно, как я могу получить такую ​​информацию, как размеры моего рабочего стола, какой рабочий стол в данный момент активен и какие метки (если таковые имеются) установлены для моей среды рабочего стола (DE).

решение1

Используя этот инструмент, wmctrlвы можете получить всю вышеуказанную информацию, в частности, о -dпереключателе.

Пример

$ 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

Подробности

Для каждого рабочего стола выводится одна строка, при этом строка разбивается на столбцы, разделенные пробелами.

  • Первый столбец содержит целое число номера рабочего стола.
  • Второй столбец содержит символ «*» для текущего рабочего стола, в противном случае он содержит символ «-».
  • Следующие два столбца содержат фиксированную строку DG:, а затем геометрию рабочего стола как «x» (например, «1280x1024»).
  • Следующие два столбца содержат фиксированную строку VP:, а затем позицию области просмотра в формате ',' (например, '0,0').
  • Следующие три столбца содержат фиксированную строку WA:, а затем два столбца с геометрией рабочей области в формате «X,Y и WxH» (например, «0,0 1280x998»).
  • Оставшаяся часть строки содержит имя рабочего стола (возможно, содержащее несколько пробелов).

Еще несколько интересных вещей, которые можно сделать с помощью wmctrl

список информации о диспетчере окон

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

список активных окон

$ 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

Для каждого окна выводится одна строка, при этом строка разбивается на столбцы, разделенные пробелами.

  • Первый столбец всегда содержит идентификатор окна в виде шестнадцатеричного целого числа.
  • Второй столбец всегда содержит номер рабочего стола (-1 используется для обозначения закрепленного окна).
  • Если -pопция указана, следующий столбец будет содержать PID окна в виде десятичного целого числа.
  • Если -Gопция указана, то последуют четыре целочисленных столбца: смещение по оси x, смещение по оси y, ширина и высота.
  • Следующий столбец всегда содержит имя клиентской машины.
  • Оставшаяся часть строки содержит заголовок окна (возможно, с несколькими пробелами в заголовке).

-pпример переключения

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пример переключения

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

*ПРИМЕЧАНИЕ:Переключатели -pи -Gтакже можно комбинировать!

переключение на другой рабочий стол

$ wmctrl -s 2

ПРИМЕЧАНИЕ:Нумерация рабочих столов начинается с 0, поэтому 1 будет вторым.

уменьшить количество рабочих столов

$ wmctrl -n 3

Теперь их 3 вместо 4.

$ wmctrl -d | wc -l
3

Теперь верните значение 4.

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

Закрытие окна

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

$ wmctrl -c GVIM

$ wmctrl -l | grep GVIM
$ 

Связанный контент