我需要一个 Linux 上的命令(我的窗口管理器是 fluxbox),将当前工作区作为输出(如果可能的话,是一个简单的输出,因为我需要这些信息用于 python 脚本)。
我查看了 fluxbox 的 man(手册),但它提供的信息很少,而且在网上搜索时,它只解释了如何在另一个窗口管理器上执行此操作。
答案1
fluxbox
是急性肺水肿兼容的窗口管理器,这意味着我们可以使用诸如 之类的工具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