![如何使用 `scrot` 按名称截取特定窗口的屏幕截图?](https://linux22.com/image/1086580/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20%60scrot%60%20%E6%8C%89%E5%90%8D%E7%A7%B0%E6%88%AA%E5%8F%96%E7%89%B9%E5%AE%9A%E7%AA%97%E5%8F%A3%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%EF%BC%9F.png)
如果我想选择一个窗口,scrot
可以轻松完成:
scrot -s name.jpg
但是如果我想要求scrot
继续从选定的窗口截取屏幕截图,那么我不知道该怎么做。以下是我尝试过的:
#!/bin/sh
while true
do
scrot -s "$(date)".jpg
sleep 5
done
上述问题是:每隔 5 秒我必须scrot
通过单击来判断是哪个窗口。
如果我第一次只单击一次就可以通过该窗口,那就太完美了。
如果没有,我可以scrot
通过告诉它窗口名称来判断是哪个窗口吗?
编辑:我还希望它在窗口最小化时也能正常工作。该怎么做?
答案1
从man scrot
:
-u, --focused
Use the currently focused window.
因此你可以像这样更改你的脚本:
#!/bin/sh
while true
do
scrot -u "$(date)".jpg
sleep 5
done
但是,这将在脚本启动后立即开始截取屏幕截图,这可能是不受欢迎的;这会更加用户友好,因为它只会在用户手动选择窗口后才开始截取屏幕截图:
#!/bin/sh
scrot -s "$(date)".jpg
while true
do
sleep 5
scrot -u "$(date)".jpg
done