我想关闭除选定窗口之外的所有 nemo 文件浏览器实例。
我必须遵循脚本才能做到这一点。
#!/bin/bash
not_to_close=$(xdotool selectwindow)
class_name=$(xprop WM_CLASS | cut -d '"' -f2)
for i in $(xdotool search --desktop 0 --class "$class_name"); do
if [ "$not_to_close" != "$i" ]; then
xdotool windowclose "$i"
fi
done
然而,它有一个小问题。我必须点击两次(一次为xdotool
一次xprop
),我不想这样做。
如何将点击次数减少到一次?
答案1
只需将类直接替换为其名称,然后删除xprop
行即可。
--class nemo
编辑:试试这个,我已经用两个测试过时钟windows,也可以使用windowkill
而不是windowclose
:
xclock &
xclock &
执行脚本:
#!/bin/bash
not_to_close="$(xdotool selectwindow )"
other_wins="$(xdotool search --class "xclock" | grep -v "$not_to_close")"
while IFS= read -r line
do
echo "$line"
if [ "$not_to_close" -ne "$line" ]; then
xdotool windowkill "$line"
fi
done <<< "$other_wins"
然后选择这两个 xclock 窗口之一,然后它将关闭,另一个将保持活动状态。
答案2
OP在这里,对我有用的解决方案是:
#!/bin/bash
SELECTED_WINDOW=$(xdotool getactivewindow)
COPY_WINDOW=$(xdotool search --class "nemo" search --classname "file_progress")
WORKSPACE=$(xdotool get_desktop)
for i in $(xdotool search --desktop $WORKSPACE --class "nemo"); do
if [ "$SELECTED_WINDOW" != "$i" ] && [ "$COPY_WINDOW" != "$i" ] ; then
xdotool windowclose "$i"
fi
done