Иногда мне нужно сделать скриншот экрана входа в систему. Например, если я пишу о том, как установить другое окружение рабочего стола в Ubuntu, скриншот экрана входа в систему будет полезен для начинающих. Какой бы ни была ваша причина, если вам интересно, как сделать снимок экрана входа в систему в Ubuntu, Linux Mint и других дистрибутивах Linux, позвольте мне показать вам, как это сделать.
Примечание: Прежде чем прибегнуть к какому либо из ниже перечисленных способов, просто проверьте, возможно ваш дистрибутив уже умеет это делать. Выйдите на начальный экран и нажмите Print Screen . К примеру, дистрибутив которым пользуюсь я (Deepin 15.10.2), умеет это делать по умолчанию.
Простой, но ограниченный способ сделать скриншот экрана входа в Linux
Самый простой способ сделать снимок экрана «экрана блокировки» — использовать инструмент «Снимок экрана GNOME». Этот инструмент уже должен быть установлен в большинстве дистрибутивов Linux. Все, что вам нужно сделать, это открыть терминал и использовать следующую команду:
gnome-screenshot -d 10
Это сделает скриншот с задержкой в 10 секунд. За это время заблокируйте вашу систему. Через 10 секунд он сделает снимок экрана вашей системы, а точнее экрана входа в систему. Сам скриншот вы найдёте в папке «Изображения».
Вы можете изменить продолжительность секунд по своему усмотрению, изменив «10» на нужное вам значение. Для создания моментального скриншота, достаточно ввести и подтвердить команду:
gnome-screenshot
Если в вашем дистрибутиве Linux Снимок экрана GNOME не установлен,
вы можете сделать это, введя команду:
sudo apt install gnome-screenshot
Лучший, но немного сложный способ сделать скриншот экрана входа в систему в Ubuntu и других Linux
Идея заключается в том, чтобы создать скрипт, который вы можете запустить из интерфейса командной строки. Не бойтесь «скрипта». Это действительно очень просто использовать.
Шаг 1: Получить ImageMagic
Откройте терминал и используйте следующую команду для установки ImageMagic .
sudo apt-get install imagemagick
Шаг 2: подготовить скрипт
Создайте новый файл, желательно в вашем домашнем каталоге. Назовите это screenshot.sh или как угодно. Добавьте следующие строки в этот файл:
chvt 7; sleep 5s; DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 xwd -root -out ~/screenshot.xwd; convert ~/screenshot.xwd ~/screenshot.png; rm ~/screenshot.xwd
Выше chvt 7 — это номер виртуальной консоли . Скриншот займет 5 секунд после того, как вы запустили этот скрипт. Вы можете изменить его на любой номер, который вы хотите. Вы найдете скриншот, сохраненный как screenshot.png в вашем домашнем каталоге.
Статьи по теме
Шаг 3: Дайте исполняемому скрипту разрешение
Вы должны дать права на выполнение скрипта:
sudo chmod +x screenshot.sh
Шаг 4: Снимок экрана
Теперь, когда все готово, выйдите из системы. Нажмите Ctrl+Alt+F1 на экране входа в систему, чтобы перейти в режим консоли. Войдите с вашими учетными данными пользователя. Запустите скрипт скриншота следующим образом:
sudo ./screenshot.sh
После запуска сценария он вернется в графический интерфейс экрана входа в систему (chvt 7), а через пять секунд он сохранит снимок экрана в вашем домашнем каталоге с именем файла screenshot.png .
Вы можете изменить скрипт скриншота в соответствии с вашими потребностями.
Я надеюсь, что этот совет помог вам сделать снимок экрана входа в систему в Ubuntu, Linux Mint или любом другом дистрибутиве Linux. Любые вопросы или предложения всегда приветствуются, оставляйте их в комментариях.
Ubuntu как и любая другая достойная операционная система, имеет внутренние средства для снятия скриншотов. Причем, Ubuntu предлагает для этого сразу несколько возможностей. Давайте немного о них поговорим.
Способ №1 Самый простой способ получить скриншот на Ubuntu мало чем отличается от такового на Windows. Достаточно нажать клавишу «Prt Sc» (Print Screen) и перед вами появиться окно сохранения сделанного снимка:
Главный недостаток данного способа - вы можете сделать только снимок целого экрана (и то без каких-либо опций). Но, все равно отметим, что аналогичная утилита на Windows XP не выдерживает сравнения, потому что нажатие «Prt Sc» (Print Screen) приводит к сохранению скриншота в папку по умолчанию, в то время как на Ubuntu мы может хотя бы определить папку в процессе. Способ №2 Другой способ получить скриншот в Ubuntu стандартными средствами системы - воспользоваться одноименной утилитой. Для этого заходим «Приложения» - «Стандартные» - «Снимок экрана» (Applications -> Accessories -> Take screenshot).
В отличие от первого способа, данная утилита предоставляет нам куда большие возможности. Во-первых имеется 3 режима снятия скриншота - «Захватить весь рабочий стол», «Захватить текущее окно», «Выбрать область захвата». Обычно этих трех режимов достаточно чтобы удобно сделать «снимок» любой необходимой области экрана. Во-вторых, у вас есть возможность выставить «задержку». То есть время, после которого будет осуществлен захват. Опция сверхполезная, особенно в том случае когда вам нужно захватить какое-то «всплывающее» окно или «всплывающую» подсказку. В-третьих, мы можем включить или исключить из снимка указатель мыши, что так же очень полезно. После того как нужный режим и опции отмечены, и скриншот сделан, вы попадаете на окно сохранения скриншота, которое идентично тому что мы имеем в способе №1. Способ №3 Если вам нужно быстро сделать скриншот всего экрана без особых опций, можно воспользоваться способом №1, если вам нужно выделить какую-то область, установить задержку или убрать указатель мыши, придется воспользоваться способом №2, если вас по тем или иным причинам не устраивает то и другое и хочется большего, остается выбрать одну из популярных утилит сторонних разработчиков. На мой взгляд самая известная и распространенная утилита для снятия скриншотов Ubuntu - Shutter.
Если разобраться, большинство жизненно важных функций обеспечивает родная утилита «Снимок экрана» (Take Screenshot). Shutter более удобный, комфортный, и добавляет несколько (я бы даже сказал немало) приятных мелочей. Базовые функции в Shutter те же что в утилите «Снимок экрана» (Take Screenshot), поэтому давайте поговорим о «пряниках» и бонусах. Во-первых, Shutter позволяет выбрать формат сохраняемого скриншота (jmp, png, gif) и уровень сжатия (если такой может иметь место). Во-вторых в Shutter есть интересный режим - получения снимка веб-сайта. Это очень важная штука потому что сайт может выходить (и чаще всего выходит) за рамки одно экрана. Поэтому, даже выбрав опцию «Захватить весь рабочий стол» вы вряд-ли получите снимок всего сайта, дай бог, только его верхушки. Стоит отметить так же что для этого режима можно определить ширину виртуального браузера. В-третьих, утилита поддерживает комбинации клавиш, что так же очень удобно. В-четвертых, в Shutter предусмотрена гибкая настройка поведения. Это касается параметров окна (скрывать главное окно во время съемки, сворачивать в область уведомлений при закрытии главного окна, задержка перерисовки), уведомлений (показывать всплывающие уведомления после съемки, показывать всплывающие сообщения если включена задержка и так далее). В-пятых, Shutter может в автоматическом режиме закачивать сделанные снимки на файловый хостинг (например, ubuntu-pics.de, imagebanana.com, imageshack.us и так далее). Передача осуществляется по протоколу FTP в активном или пассивном режиме соединения. В-шестых, Shutter поддерживает плагины, которые способны очень существенно расширить его функционал. Вот только некоторые из них: «Сепия», «Водяной знак», «Оттенки серого», «Негатив», «Мягкие углы», «Рваная бумага». При умелом использовании этих плагинов, теоретически можно вовсе исключить стадию постобработки (если она требуется) в графическом редакторе (например, GIMP). Как видите, у пользователей Ubuntu есть все возможности для полноценно работы со скриншотами. Если вам не требуется чего-то особого, можно вполне обойтись внутренними средствами, ну, а если вам нужен полный контроль и богатейшие возможности - устанавливайте Shutter, ему все по плечу! P.S. Проще всего установить Shutter если найти его в «Центре приложений Ubuntu». Альтернативный путь для Ubuntu 9.10 (Karmic Koala) и более старших версий: sudo add-apt-repository ppa:shutter/ppa sudo apt-get update sudo apt-get install shutter
В этой заметке хочу увековечить свой велосипед, который я изобрёл для удобного создания скриншотов. Да, я знаю о существовании таких программ как shutter, но все они по тем или иным причинам мне неудобны, а так как был интерес и время, я занялся этой проблемой.
Как работает мой велосипед
Пользователь нажимает PrintScreen, появляется меню, в котором последовательно задаются вопросы:- Сохранить весь экран или только часть (окно)?
- Сохранить файл со снимком куда-то на долгую память или сохранить в ненадёжном /tmp?
- Ввести имя файла самому, сгенерировать случайное или генерировать по шаблону?
- Если по шаблону, предлагается выбрать шаблон или ввести его самому
- Выбрать задержку в секундах перед фотографированием
- Копировать ли URL опубликованной картинки в буфер
- Показать ли диалог с путём к файлу на диске, а также URL картинки
- Уточняет имя файла (если нужно)
- Делает скриншот экрана либо ждёт, пока пользователь выделит регион или окно (man scrot)
- Если пользователь ввёл имя файла, которое уже существует, выведется подтверждение на перезапись. В случае отмены пользователю придётся самому ещё раз вызвать скрипт (сам он пока не настолько умный, чтобы спросить другое имя файла)
- В лог-файл записывается путь к сохранённому файлу и URL опубликованной картинки
- В буфер обмена копируется URL скриншота (если надо)
- Отображается диалог с путём к файлу на диске и URL опубликованной картинки (если надо)
Скрипт, вызванный без аргументов, будет каждый раз спрашивать вопросы заново. Однако, запомнив ответы пользователя, он их кеширует и записывает в файл (по умолчанию /tmp/screenshot.cache.sh). Если запустить скрипт с аргументом cached , скрипт попытается считать кешированные ответы, и если это удастся, задавать вопросы не будет.
Таким образом, настроив PrintScreen на вызов скрипта с загрузкой кеша, а Win+PrintScreen на вызов без загрузки кеша, я всегда могу изменить настройки, заново ответив на вопросы, после чего фотографировать дальше значительно быстрее.
Disclaimer
Мой дистрибутив ArchLinux, и я пользуюсь openbox в качестве оконного менеджера. У счастливых обладателей KDE/Gnome/Xfce/ваш_вариант процесс установки и использования может отличаться.Строительные материалы
- dmenu (показывать меню)
- scrot (скриншотер)
- zenity (спрашивать вопросы у пользователя)
- xclip (копировать ссылку в буфер обмена)
- imagepaste (заливать картинку на image hosting)
- скрипт (собрать все компоненты воедино)
- terminus-font (шрифты в меню, optional)
Пошаговая инструкция
Вот как выглядела бы установка он начала до конца в моём дистрибутиве.Установим стандартные пакеты:
$ pacman -S dmenu scrot zenity xclip terminus-font
Сообщим Иксам путь к этим шрифтам (плюс, хорошо бы прописать эту команду в ~/.xinitrc):
$ xset +fp /usr/share/fonts/local/
Считаем, что imagepaste (или аналог) уже установлен, поэтому пропускаем этот шаг.
Устанавливаем скрипт:
$ mkdir ~/bin $ cd !$ $ wget https://bitbucket.org/balta2ar/screenshot/raw/45ad932db13b/screenshot.sh $ chmod u+x ./screenshot.sh
Папка ~/bin у меня используется для моих наколенных поделок. В скрипте Вы, вероятно, захотите изменить:
LOG - путь к лог-файлу
FONT - шрифт меню
IMAGEPASTE_CMD - команда для публикации картинки
BASEDIR - базовая директория для тех скриншотов, которые вы захотите сохранять
Не забудьте создать лог-файл:
$ touch /var/log/screenshot.log
$ sudo chown `whoami`:users !$
И последнее, это повесить вызов скрипта на горячую клавишу. Я для этого использовал возможности openbox, а именно obkey для настройки горячих клавиш. Можно, впрочем, сразу залезть в ~/.config/openbox/rc.xml и добавить:
Плюсы
- своё не пахнет
- удобно, заточено под свои нужды
- автоматическая публикация
Минусы
- установка для красноглазых
- много компонентов, а хотелось бы один и чтобы всё работало искаропки
Скрипт целиком
#!/bin/bash init() { ACTIONS="window/region,screen" ACTIONS="drop,save" ACTIONS="create random,ask,incremental pattern" ACTIONS="screenshot-%05d.png" ACTIONS="0,5,10,30,60" ACTIONS="yes,no" ACTIONS="no,yes" PROMPT="Capture region" PROMPT="Picture file" PROMPT="File name" PROMPT="File name pattern" PROMPT="Delay" PROMPT="Copy to clipboard" PROMPT="Show links in a dialog" IND_CAPTURE_REGION=0 IND_FILESAVE=1 IND_FILENAME=2 IND_PATTERN=3 IND_DELAY=4 IND_COPY_CLIPBOARD=5 IND_SHOW_LINKS=6 LOG="/var/log/screenshot.log" FONT="-xos4-terminus-*-*-*-*-16-*-*-*-*-*-*-*" DMENU="dmenu -fn $FONT" IMAGEPASTE_CMD="imp" SCREENSHOT_CMD="scrot" SCREENSHOT_OPTIONS= OPTIONS= COUNT=${#ACTIONS[*]} BASEDIR="/home/`whoami`/pic/screenshot/scrot" CACHE="/tmp/screenshot.cache.sh" PATTERN_INDEX=0 } load_cache() { source $CACHE } save_cache() { echo -n > $CACHE for ((i = 0; i < ${#OPTIONS[*]}; i++)) do echo "OPTIONS[$i]=\"${OPTIONS[$i]}\"" >> $CACHE done echo "PATTERN_INDEX=\"$PATTERN_INDEX\"" >> $CACHE } random_filename() { TMP=`mktemp --suffix=.scrot` BASE=`basename $TMP` FILENAME="$BASEDIR/$BASE.png" } ask_filename() { FILENAME=`zenity --entry --text "Enter filename" --entry-text "$BASEDIR/"` } set_next_pattern_filename() { FILENAME="$BASEDIR/$(printf ${OPTIONS[$IND_PATTERN]} $PATTERN_INDEX)" PATTERN_INDEX=$(($PATTERN_INDEX + 1)) while [ -e "$FILENAME" ]; do FILENAME="$BASEDIR/$(printf ${OPTIONS[$IND_PATTERN]} $PATTERN_INDEX)" PATTERN_INDEX=$(($PATTERN_INDEX + 1)) done } ask_options() { for i in $(seq 0 $(($COUNT - 1))) do # if we are about to ask patern and # it wasn"t the choise in prev question, continue if [ "$i" -eq "$IND_PATTERN" -a "${OPTIONS[$IND_FILENAME]}" != "incremental pattern" ] then continue fi OP=`echo ${ACTIONS[$i]} | tr "," "\n" | $DMENU -p "${PROMPT[$i]}"` if [ ! -n "$OP" ]; then exit 0 fi OPTIONS[$i]=$OP done } parse_options() { # parse options and ask user questions, if any ITEM=${OPTIONS[$IND_CAPTURE_REGION]} case "$ITEM" in window/region) SCREENSHOT_OPTIONS="-b -s" ;; screen) ;; esac ITEM=${OPTIONS[$IND_FILESAVE]} case "$ITEM" in save) # Dont touch BASEDIR ;; drop) BASEDIR="/tmp" ;; esac ITEM=${OPTIONS[$IND_FILENAME]} case "$ITEM" in ask) ask_filename ;; "create random") random_filename ;; "incremental pattern") set_next_pattern_filename ;; esac ITEM=${OPTIONS[$IND_DELAY]} SCREENSHOT_OPTIONS="$SCREENSHOT_OPTIONS -d $ITEM" } check_existence() { if [ -e "$FILENAME" ] then zenity --question --text "File already exists. Overwrite?" OVERWRITE=$? if [ $OVERWRITE -ne 0 ] then exit 1 fi fi } do_screenshot() { rm -f "$FILENAME" mkdir -p `dirname "$FILENAME"` $SCREENSHOT_CMD $SCREENSHOT_OPTIONS "$FILENAME" CMD="$IMAGEPASTE_CMD $FILENAME" URL="`$CMD`" echo "$FILENAME -> $URL" >> $LOG } copy_to_clipboard() { if [ ${OPTIONS[$IND_COPY_CLIPBOARD]} == "yes" ] then echo "$URL" | xclip -selection primary echo "$URL" | xclip -selection clipboard fi } show_links() { if [ ${OPTIONS[$IND_SHOW_LINKS]} == "yes" ] then zenity --info --no-wrap --text "$FILENAME\n$URL" fi } init if [ -e "$CACHE" -a "$1" == "cached" ] then load_cache else ask_options fi save_cache parse_options check_existence do_screenshot copy_to_clipboard show_links exit 0UPD 01
: Добавлен выбор задержки: 0, 5, 10, 30, 60 секунд.
UPD 02
: Добавлено: 1) кеширование ответов пользователя 2) возможность указать инкрементальный паттерн для имени файла.
В этой заметке хочу увековечить свой велосипед, который я изобрёл для удобного создания скриншотов. Да, я знаю о существовании таких программ как shutter, но все они по тем или иным причинам мне неудобны, а так как был интерес и время, я занялся этой проблемой.
Как работает мой велосипед
Пользователь нажимает PrintScreen, появляется меню, в котором последовательно задаются вопросы:- Сохранить весь экран или только часть (окно)?
- Сохранить файл со снимком куда-то на долгую память или сохранить в ненадёжном /tmp?
- Ввести имя файла самому, сгенерировать случайное или генерировать по шаблону?
- Если по шаблону, предлагается выбрать шаблон или ввести его самому
- Выбрать задержку в секундах перед фотографированием
- Копировать ли URL опубликованной картинки в буфер
- Показать ли диалог с путём к файлу на диске, а также URL картинки
- Уточняет имя файла (если нужно)
- Делает скриншот экрана либо ждёт, пока пользователь выделит регион или окно (man scrot)
- Если пользователь ввёл имя файла, которое уже существует, выведется подтверждение на перезапись. В случае отмены пользователю придётся самому ещё раз вызвать скрипт (сам он пока не настолько умный, чтобы спросить другое имя файла)
- В лог-файл записывается путь к сохранённому файлу и URL опубликованной картинки
- В буфер обмена копируется URL скриншота (если надо)
- Отображается диалог с путём к файлу на диске и URL опубликованной картинки (если надо)
Скрипт, вызванный без аргументов, будет каждый раз спрашивать вопросы заново. Однако, запомнив ответы пользователя, он их кеширует и записывает в файл (по умолчанию /tmp/screenshot.cache.sh). Если запустить скрипт с аргументом cached , скрипт попытается считать кешированные ответы, и если это удастся, задавать вопросы не будет.
Таким образом, настроив PrintScreen на вызов скрипта с загрузкой кеша, а Win+PrintScreen на вызов без загрузки кеша, я всегда могу изменить настройки, заново ответив на вопросы, после чего фотографировать дальше значительно быстрее.
Disclaimer
Мой дистрибутив ArchLinux, и я пользуюсь openbox в качестве оконного менеджера. У счастливых обладателей KDE/Gnome/Xfce/ваш_вариант процесс установки и использования может отличаться.Строительные материалы
- dmenu (показывать меню)
- scrot (скриншотер)
- zenity (спрашивать вопросы у пользователя)
- xclip (копировать ссылку в буфер обмена)
- imagepaste (заливать картинку на image hosting)
- скрипт (собрать все компоненты воедино)
- terminus-font (шрифты в меню, optional)
Пошаговая инструкция
Вот как выглядела бы установка он начала до конца в моём дистрибутиве.Установим стандартные пакеты:
$ pacman -S dmenu scrot zenity xclip terminus-font
Сообщим Иксам путь к этим шрифтам (плюс, хорошо бы прописать эту команду в ~/.xinitrc):
$ xset +fp /usr/share/fonts/local/
Считаем, что imagepaste (или аналог) уже установлен, поэтому пропускаем этот шаг.
Устанавливаем скрипт:
$ mkdir ~/bin $ cd !$ $ wget https://bitbucket.org/balta2ar/screenshot/raw/45ad932db13b/screenshot.sh $ chmod u+x ./screenshot.sh
Папка ~/bin у меня используется для моих наколенных поделок. В скрипте Вы, вероятно, захотите изменить:
LOG - путь к лог-файлу
FONT - шрифт меню
IMAGEPASTE_CMD - команда для публикации картинки
BASEDIR - базовая директория для тех скриншотов, которые вы захотите сохранять
Не забудьте создать лог-файл:
$ touch /var/log/screenshot.log
$ sudo chown `whoami`:users !$
И последнее, это повесить вызов скрипта на горячую клавишу. Я для этого использовал возможности openbox, а именно obkey для настройки горячих клавиш. Можно, впрочем, сразу залезть в ~/.config/openbox/rc.xml и добавить:
Плюсы
- своё не пахнет
- удобно, заточено под свои нужды
- автоматическая публикация
Минусы
- установка для красноглазых
- много компонентов, а хотелось бы один и чтобы всё работало искаропки
Скрипт целиком
#!/bin/bash init() { ACTIONS="window/region,screen" ACTIONS="drop,save" ACTIONS="create random,ask,incremental pattern" ACTIONS="screenshot-%05d.png" ACTIONS="0,5,10,30,60" ACTIONS="yes,no" ACTIONS="no,yes" PROMPT="Capture region" PROMPT="Picture file" PROMPT="File name" PROMPT="File name pattern" PROMPT="Delay" PROMPT="Copy to clipboard" PROMPT="Show links in a dialog" IND_CAPTURE_REGION=0 IND_FILESAVE=1 IND_FILENAME=2 IND_PATTERN=3 IND_DELAY=4 IND_COPY_CLIPBOARD=5 IND_SHOW_LINKS=6 LOG="/var/log/screenshot.log" FONT="-xos4-terminus-*-*-*-*-16-*-*-*-*-*-*-*" DMENU="dmenu -fn $FONT" IMAGEPASTE_CMD="imp" SCREENSHOT_CMD="scrot" SCREENSHOT_OPTIONS= OPTIONS= COUNT=${#ACTIONS[*]} BASEDIR="/home/`whoami`/pic/screenshot/scrot" CACHE="/tmp/screenshot.cache.sh" PATTERN_INDEX=0 } load_cache() { source $CACHE } save_cache() { echo -n > $CACHE for ((i = 0; i < ${#OPTIONS[*]}; i++)) do echo "OPTIONS[$i]=\"${OPTIONS[$i]}\"" >> $CACHE done echo "PATTERN_INDEX=\"$PATTERN_INDEX\"" >> $CACHE } random_filename() { TMP=`mktemp --suffix=.scrot` BASE=`basename $TMP` FILENAME="$BASEDIR/$BASE.png" } ask_filename() { FILENAME=`zenity --entry --text "Enter filename" --entry-text "$BASEDIR/"` } set_next_pattern_filename() { FILENAME="$BASEDIR/$(printf ${OPTIONS[$IND_PATTERN]} $PATTERN_INDEX)" PATTERN_INDEX=$(($PATTERN_INDEX + 1)) while [ -e "$FILENAME" ]; do FILENAME="$BASEDIR/$(printf ${OPTIONS[$IND_PATTERN]} $PATTERN_INDEX)" PATTERN_INDEX=$(($PATTERN_INDEX + 1)) done } ask_options() { for i in $(seq 0 $(($COUNT - 1))) do # if we are about to ask patern and # it wasn"t the choise in prev question, continue if [ "$i" -eq "$IND_PATTERN" -a "${OPTIONS[$IND_FILENAME]}" != "incremental pattern" ] then continue fi OP=`echo ${ACTIONS[$i]} | tr "," "\n" | $DMENU -p "${PROMPT[$i]}"` if [ ! -n "$OP" ]; then exit 0 fi OPTIONS[$i]=$OP done } parse_options() { # parse options and ask user questions, if any ITEM=${OPTIONS[$IND_CAPTURE_REGION]} case "$ITEM" in window/region) SCREENSHOT_OPTIONS="-b -s" ;; screen) ;; esac ITEM=${OPTIONS[$IND_FILESAVE]} case "$ITEM" in save) # Dont touch BASEDIR ;; drop) BASEDIR="/tmp" ;; esac ITEM=${OPTIONS[$IND_FILENAME]} case "$ITEM" in ask) ask_filename ;; "create random") random_filename ;; "incremental pattern") set_next_pattern_filename ;; esac ITEM=${OPTIONS[$IND_DELAY]} SCREENSHOT_OPTIONS="$SCREENSHOT_OPTIONS -d $ITEM" } check_existence() { if [ -e "$FILENAME" ] then zenity --question --text "File already exists. Overwrite?" OVERWRITE=$? if [ $OVERWRITE -ne 0 ] then exit 1 fi fi } do_screenshot() { rm -f "$FILENAME" mkdir -p `dirname "$FILENAME"` $SCREENSHOT_CMD $SCREENSHOT_OPTIONS "$FILENAME" CMD="$IMAGEPASTE_CMD $FILENAME" URL="`$CMD`" echo "$FILENAME -> $URL" >> $LOG } copy_to_clipboard() { if [ ${OPTIONS[$IND_COPY_CLIPBOARD]} == "yes" ] then echo "$URL" | xclip -selection primary echo "$URL" | xclip -selection clipboard fi } show_links() { if [ ${OPTIONS[$IND_SHOW_LINKS]} == "yes" ] then zenity --info --no-wrap --text "$FILENAME\n$URL" fi } init if [ -e "$CACHE" -a "$1" == "cached" ] then load_cache else ask_options fi save_cache parse_options check_existence do_screenshot copy_to_clipboard show_links exit 0UPD 01
: Добавлен выбор задержки: 0, 5, 10, 30, 60 секунд.
UPD 02
: Добавлено: 1) кеширование ответов пользователя 2) возможность указать инкрементальный паттерн для имени файла.
Пользователь, который много работает за компьютером рано или поздно столкнется с необходимостью сделать скриншот — снимок экрана. Часто такой скриншот нужно немного подредактировать: обрезать, добавить указатели, пометки и т.п. Естественно можно для этого использовать какой-нибудь графический редактор, но зачем, если можно воспользоваться специальной программой, тем более, если она бесплатная. Сегодня хочу рассказать о программе для создания скриншотов в Linux — Shutter.
Что представляет собой Shutter
Shutter — многофункциональное приложение, позволяющее делать скриншоты рабочего стола, выделенной области, отдельного меню или окна любого приложения:
Огромным плюсом программы является наличие собственного редактора изображений, с большим количеством инструментов. Сделав скриншот вы сразу же можете его отредактировать. Вам доступны такие инструменты как маркер, стрелки, прямые, выделение области, добавление текста и много чего другого:
Одной из удобных функций в Shutter, особенно для людей, у которых есть свои сайты, является возможность прямо из программы выгружать итоговые изображения в интернет.
Установка Shutter
В большинстве дистрибутивов Linux программа доступна из стандартных репозиториев, поэтому устанавливаться она обычным способом. В Ubuntu или Debian нужно ввести в терминале:
Sudo apt install shutter
После окончания установки программу можно открыть через меню приложений.
На сегодняшний день в Shutter из стандартного репозитория не работает функция редактирования из-за отсутствия некоторых библиотек. Их можно выкачать отдельно, но более простым вариантом, по моему мнению, будет установка программы из отдельного репозитория.