“导入:无法读取 X 窗口图像:资源暂时不可用”

“导入:无法读取 X 窗口图像:资源暂时不可用”

在 Lubuntu 18.04 上,我尝试截取当前焦点窗口的屏幕截图。我使用importImagick 进行以下操作https://stackoverflow.com/a/32165476

它在 lxterminal 选项卡中失败

$ import -window "$(xdotool getwindowfocus -f)" /tmp/file.png
import-im6.q16: unable to read X window image `31457284': Resource temporarily unavailable @ error/xwindow.c/XImportImage/4982.
import-im6.q16: missing an image filename `/tmp/file.png' @ error/import.c/ImportImageCommand/1287.

它在 xterm 窗口中成功

$ import -window "$(xdotool getwindowfocus -f)" /tmp/file.png
$

您知道问题发生的原因吗?我该如何解决这个问题?谢谢。

有人有类似的脚本

#!/bin/sh
echo "Enter the name of the window:"
read window
window_id=`xwininfo -name $window | awk '{print $4}' | grep -i 0x`
import -window $window_id $window.jpg

就像我之前说的,这并不能完全发挥作用,但我还是想发布它。我已经让它在计算器、词典、Atomix 等小程序上工作了……但 Firefox、gedit 等程序不行。如果您尝试在较大的程序上执行此操作,您实际上会收到以下类型的错误:

import: unable to read X window image `0x3200efb': Resource temporarily unavailable.

我认为这是因为这些程序实际上产生了多个窗口 ID:

dill@LAMP:~$ xwininfo -tree -root | grep gedit | awk '{print $1}'
0x3000071
0x3000003
0x3000001
0x300001e

答案1

我在 Kubuntu 18.04 上。我试过

$ sleep 5s && import -window "$(xdotool getwindowfocus -f)" ~/Desktop/file.png
import-im6.q16: unable to read X window image `83886084': Resource temporarily unavailable @ error/xwindow.c/XImportImage/4982.
import-im6.q16: missing an image filename `/home/dkb/Desktop/file.png' @ error/import.c/ImportImageCommand/1287.

$ sleep 5s && import -window "$(xdotool getactivewindow)" ~/Desktop/file.png
$ 

后一个命令适用xdotool getactivewindow于 konsole(版本 17.12.3)和 lxterminal(版本 0.3.1)。

sleep是让我从终端切换到另一个应用程序的窗口。该命令捕获 Firefox 和 geany 的活动窗口。

至于

你知道这个问题为什么会发生吗?

我不知道,但搜索man xdotool告诉windowfocus我们

使用 XSetInputFocus,它可能被某些窗口管理器或程序忽略。

但是否也适用于getwindowfocus尚未明确提及。

相关内容