Lubuntu 18.04では、現在フォーカスされているウィンドウのスクリーンショットを撮ろうとしています。 https://stackoverflow.com/a/32165476 に従ってImagickのimport
を使用しています。
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
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
にも当てはまるかどうかは明示的に言及されていません。