¿Hay alguna manera de detectar el espacio de trabajo actual en una línea de comando en Linux?

¿Hay alguna manera de detectar el espacio de trabajo actual en una línea de comando en Linux?

Necesito un comando en Linux (mi administrador de ventanas es fluxbox) que proporcione el espacio de trabajo actual como salida (si es posible, una salida simple, ya que necesito esta información para un script en Python).

Revisé el man (manual) de fluxbox y da poca información, y al buscar esto en línea, solo explica cómo hacerlo en otro administrador de ventanas.

Respuesta1

fluxboxesEWMHadministrador de ventanas compatible y eso significa que podemos usar herramientas para wmctrlinteractuar con él. Para encontrar el espacio de trabajo actual:

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

man wmctrldice:

-d Lista todos los escritorios administrados por el administrador de ventanas. (...) La segunda columna contiene un carácter '*' para el escritorio actual; de lo contrario, contiene un carácter '-'

EDITAR: Acabo de comprobar que puedes nombrar un espacio de trabajo como único *. En ese caso, el comando anterior devolvería dos resultados. Usar awk:

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

Respuesta2

El camino corto a @arkadiusz-drabczyk está usando este código.

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

explicación extraña:

  • '$2=="*"', awk verá este patrón
  • imprimir es la acción predeterminada para awk, es similar {print $0}, así que no es necesario escribirlo a menos que desee imprimir un argumento específico, como las primeras palabras con$1

Más detalles sobre el patrón en este enlace:https://www.gnu.org/software/gawk/manual/gawk.html#Pattern-Overview

información relacionada