простой но удобный скрипт для снятия скриншотов
на форумах часто спрашивают, чем можно снять скриншот. обычно советуют import из пакета ImageMagick, как наиболее вероятно установленный в системе по-умолчанию.
но напрямую пользоваться import - не совсем удобно, поэтому я наваял вот такой скриптик.
#!/bin/bash prefix="$HOME/screenshot" date="$(date -I)" type='png' quality='90' wnd='-window root' function help(){ cat << EOF Usage: `basename $0` [options] [filename] Options: -f fullscreen shot (default) -r region shot -w single window shot EOF exit 1 } while getopts fwr opt; do case "$opt" in f) wnd='-window root' ;; w) wnd="-window $(xwininfo | awk '/Window\ id:/{print $4}')" ;; r) wnd='' ;; ?) help ;; esac done shift $((OPTIND-1)) if [ "x$1" == "x" ] then i=0 name=${prefix}_$date.$type while [ -f "$name" ]; do i=$(($i+1)) name=${prefix}_${date}_$i.$type done else name=$1 fi import $wnd -quality $quality $name
при запуске без опций снимает весь экран, с опцией -r - предлагает выделить регион, с опцией -w - выделить окно.
если файл указан явно, то сохраняет в него. если нет, то использует имя ${prefix}_$date.$type
удобно прибиндить все три варианта на кнопки 'PrintScreen', 'Scroll Lock' & 'Pause' и наслаждаться.
- Добавить комментарий
- 1466 просмотров
Страница для печати

небольшое замечание, если уж скрипт написан на bash, то не стоит писать в начале #!/bin/sh потому что с запуском его на голом sh:
screnshot.sh: 7: Syntax error: "(" unexpected
Ведь не везде же /bin/sh это ссылка на /bin/bash
man bash на предмет того как работает bash когда запущен как /bin/sh
А как снять скриншот консоли (без Х-ов) ?
Если консоль использует фреймбуффер, то можно воспользоваться программой fbgrab. Если же консоль обыкновенная текстовая, то достаточно просто прочитать содержимое экрана из соответствующего устройства. Например, чтобы сделать скриншот первой консоли, достаточно написать cat /dev/vcs1 > screen.txt. Если вместо /dev/vcs1 указать /dev/vcsa1, то кроме чистого текста в файл запишутся и цвета символов (буква 'a' в имени устройства связана с 'атрибутом символа'). Часто для успешного выполнения этой команды надо иметь права root. Еще один способ - использовать программу screen (которую весьма рекомендую не только по этой причине) и воспользоваться заложенными в нее возможностями.
в Debian man vcs даже на русский переведен Ж;-)
пасиб бум знать
--
Signature invent in progress 19% #.........
у меня такое вот в моих полезных бесполезностях в fluxbox Ж:-)
cat .fluxbox/keys
...
Control Mod4 Mod1 p :ExecCommand import -window root -quality 100 ~/`date +shot-%Y-%m-%d-%H%M%S.jpg`
Control Mod4 Mod1 w :ExecCommand import -quality 100 ~/`date +window-%Y-%m-%d-%H%M%S.jpg`
...
тоесть жмем ctrl-alt-win-p - скприншот работчего стола
жмем ctrl-alt-win-w и мышкой указываем какое окно хотим - скриншот окна
скприншоты складываются в домашний каталог с именами shot*.jpg и window-*jpg соответственно и текущей датой и времени в имени файла
--
Signature invent in progress 19% #.........
рулез! =)
а я предпочитаю просто GIMP. File -> Acquire -> Screen shot. Там выбрать задержку, целый экран или только окно и щелкнуть по Grab
А зачем для этого целый гимп? ksnapshot не хватит?
потом все равно открывать гимп и размывать sensitive info перед отсылкой скриншота на ЛОР, прально? ;)
Ну, это кому как :)