UMGUM.COM (лучше) 

Linux + PrintScreen ( Налаживаем создание снимков экрана рабочего стола посредством "Scrot" и "ImageMagik". )

9 июля 2013  (обновлено 5 февраля 2019)

OS: "Linux Debian/Ubuntu".

Задача: наладить процедуру создания снимков экрана рабочего стола независимым от используемой графической оболочки системы способом.

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


Используем утилиты "Scrot" и "ImageMagick":

# aptitude install scrot imagemagick

Создаём директорию, в которой будут складываться снимки экрана:

$ mkdir -p ~/Screenshots

Пишем простенький скрипт, в котором фиксируется время создания снимка и делается таковой для всего экрана (или экранов, если их несколько), с сохранением в заготовленную ранее директорию:

# vi /usr/local/bin/screenshot-full.sh && chmod +x /usr/local/bin/screenshot-full.sh

#!/bin/bash

DATE=`date "+%Y-%m-%d_%H:%M:%S"`
scrot "$HOME/Screenshots/screenshot-$DATE.png"

exit ${?}

Пишем чуть более сложный скрипт для снимка только активного в данный момент окна:

# vi /usr/local/bin/screenshot-window.sh && chmod +x /usr/local/bin/screenshot-window.sh

#!/bin/bash

DATE=`date "+%Y-%m-%d_%H:%M:%S"`
ACWINID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)" | awk -F "#" '{print $2}' | tr -d "[:space:]")
import -frame -window "${ACWINID}" "$HOME/Screenshots/screenshot-$DATE-window.png"

exit ${?}

Настраиваем запуск скриптов по нажатию на клавишу "PrintScreen" и комбинацию клавиш "Alt + PrintScreen" путём внесения дополнения в основной конфигурационный файл "OpenBox", оконного менеджера LXDE - для примера:

$ cp ~/.config/openbox/lxde-rc.xml ~/.config/openbox/lxde-rc.xml.backup
$ vi ~/.config/openbox/lxde-rc.xml

....
<keyboard>
  ....
  <!-- Launch Scrot when PrintScreen is pressed -->
  <keybind key="Print">
    <action name="Execute">
      <command>/usr/local/bin/screenshot-full.sh</command>
    </action>
  </keybind>
  <!-- Launch ImageMagik:import when Alt+PrintScreen is pressed -->
  <keybind key="A-Print">
    <action name="Execute">
      <command>/usr/local/bin/screenshot-window.sh</command>
    </action>
  </keybind>
  ....
</keyboard>
....

Даём указание "OpenBox" перечитать и принять обновлённую конфигурацию:

$ openbox --reconfigure

Теперь можно щёлкать по клавише "PrintScreen/PrtSc", получая снимки экрана без отрыва от основного процесса.


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )