0
<< предыдущая заметкаследующая заметка >>
15 августа 2013
Screenshot в Linux

Друзья, подскажите.

Мне нужна под Linux программка-скриншот, которая бы при запуске по горячим клавишам (вероятно, с определенными параметрами в командной строке) делала скриншот активного окна в файл с уникальным именем в определенную папку и так же тихо удалялась, не возмущая спокойствие дисплея своими дурацкими окнами, менюшками и вариантами событий.

Из того, что я пробовал, такое умеет только shutter -a -e -o file.png Но он написан весь из себя на питоне, поэтому полчаса запускается и полчаса успокаивается. А мне нужно, чтобы один миг, а не четыре с половиной секунды.

screengrab — умеет создавать файл уже при запуске. Но после этого он гордо разворачивает свое окно в центре дисплея с таким ощущением собственной нужности, будто он как минимум Winword и ожидает, что пользователь в нем сейчас начнет многочасовую работу.

screenshot — не имеет опций служебной строки, снимок делает в папку ~/Документы/Изображения/ и открывает на экране совершенно мне не нужный файл-менеджер.

ksnapshot, gnome-screenshot, xfce4-screenshooter — делают снимок окна и открывают Диалог, как быть дальше. На хуй мне с ними вести диалог?

mini-screenshoter (The LXDE Screenshot Tool) и kde4-ksnapshot — непонятно, где их искать после установки. Блять, обожаю пакеты, которые не запускаются по своему заявленному имени.

xwd (xwd -nobdrs -silent | xwdtopnm | pnmtopng > Screenshot.png) — не умеет делать скриншот самостоятельно, ждет клика мышкой.

scrot -u — не работает, потому что опция "-u" есть не в любом Линуксе. У меня нет.

UPD:

Спасибо за советы sin и T.Igor. Оказалось, более быстрым решением, чем shutter, является самотык из кучи линуксовых команд:

xwd -id `xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | awk {'print $2'}` -nobdrs -silent | xwdtopnm | pnmtopng > file.png

Конструкция состоит по большому счету из двух частей — одна выясняет активное окно, другая делает скриншот. Были варианты и той и другой части, я поизмерял производительность: вариант с grep оказался медленнее, чем уточненные опции xprop, а компашка "xwd | xwdtopnm | pnmtopng" оказалась в несколько раз производительнее утилитки import из ImageMagic (чья тормознутость давно ни для кого не тайна).

измерялка производительности
#!/bin/sh

date

i=0 ; while [ "$i" -lt 100 ] ; do i=$(($i+1)) ; echo "test #$i"

#id=`xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | awk {'print $2'}`
#id=`xprop -root|grep "^_NET_ACTIVE_WINDOW(WINDOW)" | awk {'print $5'}`

#xwd -id $id -nobdrs -silent | xwdtopnm | pnmtopng > file.png
#import -window $id file.png

done

date

В итоге я сделал себе такой скриптик screenshot.sh и повесил его на горячие клавиши:


#!/bin/sh
name="/home/8gb/screen/"`date +%Y%m%d-%H%M%S-%N`
xwd -id `xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | awk {'print $2'}` -nobdrs -silent | xwdtopnm | pnmtopng > $name.png
konsole -e echo &

Обратите внимание: "konsole -e echo &" нужно, чтобы экран мигнул и было заметно, что скриншот сработал.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий


Include not found: `/home/www/lleo.me/blog/template/_reklamnaya_lirica.htm`