Linux のコマンド ラインで現在のワークスペースを検出する方法はありますか?

Linux のコマンド ラインで現在のワークスペースを検出する方法はありますか?

Linux (ウィンドウ マネージャーは fluxbox) で、現在のワークスペースを出力するコマンドが必要です (可能であれば、Python スクリプトにこの情報が必要なので、単純な出力が望ましいです)。

fluxbox の man (マニュアル) を確認しましたが、情報はほとんどなく、オンラインで検索しても、別のウィンドウ マネージャーで実行する方法しか説明されていませんでした。

答え1

fluxboxEWMH準拠したウィンドウ マネージャーであり、次のようなツールを使用してwmctrl操作できます。現在のワークスペースを見つけるには、次の手順を実行します。

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

man wmctrl言う:

-d ウィンドウ マネージャーによって管理されているすべてのデスクトップを一覧表示します。(...) 2 番目の列には、現在のデスクトップの場合は '*' 文字が含まれ、それ以外の場合は '-' 文字が含まれます。

編集: ワークスペースに単一の という名前を付けることができることを確認しました*。その場合、上記のコマンドは 2 つの結果を返します。以下を使用します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#パターン概要

関連情報