我创建了一个用于交互式屏幕捕获的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'
我做错了什么?或者更好的问题是什么阻止脚本让我选择屏幕区域?
答案 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