使用环境:
Linux Mint, Cinnamon desktop manager, with multiple workspaces=virtual desktops, e.g. 4.
Bash script
已知:
How to determine the number of workspaces:
wmctrl -d | wc -l
我需要:
Get the number of virtual desktops the bash script is running on with a pure bash as var (like with grep, not awk or similar) and echo the var.
4条答案
按热度按时间yquaqz181#
使用
awk
(imho仍然是当前任务的最合适选择):或者
pure bash
解决方案:whlutmcx2#
您可以使用POSIX shell功能和
xprop(1)
命令来获取这两个详细信息,而无需其他外部实用程序。要获取当前/活动桌面的ID号:
要获取定义的台式机计数/数量,请执行以下操作:
两者都依赖于
xprop(1)
以“foo = 0
“(用空格分隔)的形式给出答案,并使用shell模式匹配参数扩展来匹配以空格结尾的最长子字符串,并删除它,只留下最后一个标记(等号后面的值)。请注意,桌面平台是从0(零)开始编号,因此计数会比最后一个桌面平台的ID号码大1。
这应该适用于任何遵循扩展窗口管理器提示(EWMH)规范的窗口管理器(目前几乎所有的窗口管理器都遵循EWMH规范):
https://specifications.freedesktop.org/wm-spec/1.3/ar01s03.html
y4ekin9u3#
遵循需要awk的解决方案:
它可以是一个不需要awk的解决方案,也可以是其他方式。
e5nqia274#
根据KamilCuk的回答,可以按照以下方式输出包含活动桌面编号的行: