有没有办法在 Linux 命令行中检测当前工作区?

有没有办法在 Linux 命令行中检测当前工作区?

我需要一个 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

相关内容