scrot脚本与scrot区域不起作用

时间:2016-02-19 07:56:22

标签: linux bash scripting

我创建了一个用于交互式屏幕捕获的bash脚本和另一个用于窗口捕获的脚本。我正在使用Linux中的键盘快捷键链接到这些。窗口捕获脚本可以正常工作:

#!/bin/sh  
scrot -u 'ScreenShot_%Y-%m-%d_at_%I:%M:%S-%p.png' -e 'mv $f ~/Pictures/scrot-screenshots'

但是用于区域捕获的脚本(用户选择鼠标拖动区域)不起作用,即使该命令在终端中有效:

#!/bin/sh  
scrot -s 'ScreenShot_%Y-%m-%d_at_%I:%M:%S-%p.png' -e 'mv $f ~/Pictures/scrot-screenshots'

我做错了什么?或者更好的问题是什么阻止脚本让我选择屏幕区域?

2 个答案:

答案 0 :(得分:3)

我通过添加延迟来加载giblib资源时间(2/10秒)来加载它:

#!/bin/sh
sleep 0.2 ; scrot -s 'ScreenShot_%Y-%m-%d_at_%I:%M:%S-%p.png' -e 'mv $f ~/Pictures/scrot-screenshots'

我是如何找到解决方案的:
我无法弄清楚如何将错误输出到文件,因为从终端运行我的脚本并没有产生任何错误。双击脚本正常运行,终端中的script > file 2>&1没有给我任何错误,因为它从终端正常运行。当我尝试使用从原始帖子附加到第二个命令的键盘快捷键(键绑定)时,我只有错误。要查看最终导致上述解决方案的错误,我下载了:

`apt-get install xbindkeys` && `apt-get install gconf-editor`

我运行gconf-editor并使用Run Action执行脚本的方式与我使用键绑定时执行的方式相同...但附加到终端输出。这给了我需要看到的错误输出:

giblib error: couldn't grab pointer:Resource temporarily unavailable

这引导我发表这篇文章: 提示https://bbs.archlinux.org/viewtopic.php?id=86507

答案 1 :(得分:1)

对于jtlindsey的答案不能解决问题的人:

giblib error: couldn't grab pointer:Resource temporarily unavailable

另一个解决方案可能是:在调用scrot之前,运行命令:

xdotool key XF86Ungrab

这应该释放指针,并且scrot命令应该在它之后起作用。 注意:source声称在执行之前的xdotool命令之前,可能需要执行以下命令:

setxkbmap -option grab:break_actions