Existe uma maneira de detectar o espaço de trabalho atual em uma linha de comando no Linux?

Existe uma maneira de detectar o espaço de trabalho atual em uma linha de comando no Linux?

Preciso de um comando no Linux (meu gerenciador de janelas é o fluxbox) que forneça o espaço de trabalho atual como saída (se possível, uma saída simples, pois preciso dessas informações para um script python).

Verifiquei o man (manual) do fluxbox e ele dá pouca informação, e ao pesquisar online só explicou como fazer em outro gerenciador de janelas.

Responder1

fluxboxéEWMHgerenciador de janelas compatível e isso significa que podemos usar ferramentas para wmctrlinteragir com ele. Para encontrar o espaço de trabalho atual:

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

man wmctrldiz:

-d Lista todos os desktops gerenciados pelo gerenciador de janelas. (...) A segunda coluna contém um caractere '*' para a área de trabalho atual, caso contrário contém um caractere '-'

EDITAR: Acabei de verificar se você pode nomear um espaço de trabalho como um único arquivo *. Nesse caso, o comando acima retornaria dois resultados. Usar awk:

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

Responder2

atalho para @arkadiusz-drabczyk está usando este código

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

explicação errada:

  • '$2=="*"', awk terá esse padrão
  • print é a ação padrão para awk, é como {print $0}, então não precisa escrevê-lo, a menos que queira imprimir um argumento específico, como as primeiras palavras com$1

mais detalhes sobre o padrão neste link:https://www.gnu.org/software/gawk/manual/gawk.html#Pattern-Overview

informação relacionada