Мне нужна команда в 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#Обзор-шаблона