有沒有辦法在 Linux 上的命令列中偵測目前工作空間?

有沒有辦法在 Linux 上的命令列中偵測目前工作空間?

我需要一個在 Linux 上的命令(我的視窗管理器是 Fluxbox),它將當前工作區作為輸出(如果可能的話,一個簡單的輸出,因為我需要這個資訊用於 Python 腳本)。

我檢查了fluxbox的man(手冊),它提供的資訊很少,當在線搜索時,它只解釋瞭如何在另一個視窗管理器上執行此操作。

答案1

fluxbox歐洲WMH相容的視窗管理器,這意味著我們可以使用諸如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#Pattern-Overview

相關內容