Есть ли способ определить текущее рабочее пространство в командной строке на Linux?

Есть ли способ определить текущее рабочее пространство в командной строке на Linux?

Мне нужна команда в Linux (мой оконный менеджер Fluxbox), которая выводит текущее рабочее пространство (если возможно, то простой вывод, так как эта информация мне нужна для скрипта Python).

Я проверил man-руководство Fluxbox, но там мало информации, а когда искал эту информацию в Интернете, там объяснялось только, как это сделать в другом оконном менеджере.

решение1

fluxboxявляетсяEWMHсовместимый оконный менеджер, и это означает, что мы можем использовать такие инструменты, как wmctrlдля взаимодействия с ним. Чтобы найти текущее рабочее пространство:

$ wmctrl -d | grep '*' | cut -d ' ' -f1

man wmctrlговорит:

-d Вывести список всех рабочих столов, управляемых оконным менеджером. (...) Второй столбец содержит символ «*» для текущего рабочего стола, в противном случае он содержит символ «-».

РЕДАКТИРОВАТЬ: Я только что проверил, что вы можете назвать рабочее пространство одним *. В этом случае команда выше вернет два результата. Используйте awk:

$ wmctrl -d | awk '{ if ($2 == "'*'") print $0}'

решение2

короткий путь к @arkadiusz-drabczyk использует этот код

$ wmctrl -d | awk '$2=="*"'

awk-объяснение:

  • '$2=="*"', awk будет выглядеть по этому шаблону
  • print — это действие по умолчанию для awk, оно похоже на {print $0}, поэтому не нужно писать его, если только вы не хотите вывести определенный аргумент, например, первые слова с$1

более подробно о выкройке по этой ссылке:https://www.gnu.org/software/gawk/manual/gawk.html#Обзор-шаблона

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