如何检查任何 window 在 i3 中是否打开

How to check whether any window is open in i3

我怎样才能知道是否有任何 window 在 i3 中打开?比如,检查是否有任何工作区包含 window.

或许可以尝试 i3-save-tree。您必须先安装 perl-anyevent-i3perl-json-xs

https://i3wm.org/docs/layout-saving.html

示例:

$ i3-save-tree --workspace 10
// vim:ts=4:sw=4:et
{
    "border": "pixel",
    "current_border_width": 1,
    "floating": "auto_off",
    "geometry": {
       "height": 720,
       "width": 1366,
       "x": 0,
       "y": 0
    },
    "name": "Waterfox Start Page - Waterfox",
    "percent": 1,
    "swallows": [
       {
       // "class": "^Waterfox$",
       // "instance": "^Navigator$",
       // "title": "^Waterfox\ Start\ Page\ \-\ Waterfox$",
       // "transient_for": "^$",
       // "window_role": "^browser$"
       }
    ],
    "type": "con"
}

您可以使用 xdotool 检查是否有任何 'visible' window 在 i3 中打开: 您可以使用 sudo pacman -S xdotool

安装 xdotool
WINDOWS=$(xdotool search --all --onlyvisible --desktop $(xprop -notype -root _NET_CURRENT_DESKTOP | cut -c 24-) "" 2>/dev/null)
NUM=$(echo "$WINDOWS" | wc -l)
if [ $NUM -eq 0 ]; then
    echo "No windows open."
fi