Кнопки швидкого доступу для зняття скріншотів в Ubuntu. Швидкі та зручні скріншоти в Ubuntu - поєднанням гарячих клавіш Як зробити скріншот на лінуксі


Робимо скріншоти робочого столу в Linux

Пишемо простий скрипт: $cat screenshot.sh #!/bin/bash name=`date +%x-%X-%N.png` scrot ~/$name Кидаємо його у свій домашній каталог і ставимо права на виконання $chmod+ x screenshot.sh

Такий скрипт буде робити скріншоти робочого стола у форматі PNG та зберігати їх у вашому домашньому каталозі. Імена файлів виглядатимуть так

12.04.2010-14:56:02-327180314.png

Тепер забиндімо виконання цього скрипта на кнопку PrintScreen. Дізнатися код клавіші PrintScreen можна так: запускаєте у терміналі утиліту xev, наводьте курсор миші на квадратне вікно, що з'явилося, і тиснете потрібну клавішу. У терміналі ви побачите щось подібне:

KeyRelease event, serial 39, synthetic NO, window 0x2800001, root 0x15a, subw 0x0, time 31117653, (-897,780), root:(592,900), state 0x0,0 en YES, XLookupString gives 0 bytes: XFilterEvent returns: False "keycode 107"означає, що код клавіші - 107. Я використовую OpenBox, якщо ви використовуєте інший віконний менеджер, гуглить, як у ньому треба прив'язувати поєднання клавіш. У OpenBox це робиться так: відкриваєте у текстовому редакторі файл ~/.config/openbox/rc.xml, знаходите секцію keyboardі додаєте до неї наступні рядки.

~/screenshot.sh

У OpenBox код кнопки треба перевести в шістнадцяткову систему. Робиться це просто: $ printf "%X\n" 107 6B До числа попереду треба додати "0x". Звідси і рядок

Після реконфігурації (оновлення налаштувань) OpenBox, ви зможете робити скріншоти клавішою PrintScreen не використовуючи жодних графічних надбудов, лише утиліту scrotяка важить 70кб.

Можна взагалі обійтися без додаткових утиліт і зробити скріншот тільки засобами іксів, командою import: $import -window root screenshot.png У цьому випадку скрипт screenshot.sh виглядатиме так: $cat screenshot.sh #!/bin/bash name=`date +%x-%X-%N.png` import -window root ~/%name
UPDATE:
Випадково для себе відкрив консольну утиліту xwd, що дозволяє робити знімки екрана. Xwd важить 25Кб і має входити до складу "іксів". Звичайно, якщо ви збирали xorg server самі, то у вас її може не бути. У такому разі її можна завантажити

Shutter

Shutter (раніше GScrot) - це один із найпрогресивніших інструментів для створення знімків екрану для Linux. У ньому є функції захоплення виділення, вікна, всього екрана, а також веб-сторінки. Робота із зображеннями організована на вкладках, є базовий редактор зображень та можливість завантаження на різні сайти. Цей інструмент має бути на панелі Gnome у кожного, хто пише веб-огляди.

Shutter буде включений у Ubuntu 9.10, що виходить у жовтні. Поки що пакети для версій з 7.10 по 9.04 можна завантажити за адресою: http://url.fullcirclemagazine.org/997643 .

Desktop Data Manager

Desktop Data Manager - це більше, ніж просто програма для створення знімків екрану, це програма з підтримкою контекстного буфера обміну та безліччю можливостей. Можна робити знімки вікна, робочого стола або виділення. Також можна швидко перетворити URL на зображення. Найкраще те, що Desktop Data Manager автоматично поміщає зображення до буфера обміну, істотно полегшуючи вставку в робочий документ.

Як і Shutter, DDM (поки що) немає в репозиторіях Ubuntu. Щоб інсталювати програму, дотримуйтесь інструкцій: http://url.fullcirclemagazine.org/76cc9e .

scrot

scrot (SCReenshOT) вже багато років вважається одним із найпотужніших інструментів для створення знімків екрану для Linux. Програма працює з командного рядка та підтримує всі стандартні можливості: затримки, вибір області захоплення і навіть захоплення з кількох екранів. Багато Linux-програм для створення знімків екрану, включаючи Shutter, засновані на scrot. Навіть за десять років він не здає позицій.

Щоб встановити scrot, скористайтеся пакетом scrot із репозиторію "universe".

ImageMagick import

Якщо ви знайомі з Linux досить довго, ви, можливо, чули про ImageMagick - набір інструментів для роботи із зображеннями. Один з його компонентів, import - це невеликий інструмент, який імпортує екрани X-сервера у файли зображень. import, звичайно, має всі стандартні можливості, а також містить потужні інструменти обробки зображень завдяки його інтеграції з ImageMagick. Так що ви можете міняти контраст, призначати мітки, робити зображення одноколірним, змінювати розміри, все одною і тією самою командою.

Для встановлення ImageMagick скористайтеся пакетом imagemagick.

Screengrab

https://addons.mozilla.org/en-US/firefox/addon/1146

Для деяких веб-розробників функцій scrot або import може бути недостатньо, а Shutter або DDM - це занадто просто для знімка сайту. Рішення? Screengrab, потужне розширення Firefox. Він перетворює веб-сайти на зображення. До того ж він зберігає все точно так, як ви бачите на екрані, тому, якщо на сайті є Flash або Java, вони будуть включені в знімок. Можна вибрати вікно, всю сторінку, виділення або кадри.

Встановити Screengrab можна з його домашньої сторінки (посилання вище), вам потрібний лише встановлений Firefox.

У цій нотатці хочу увічнити свій велосипед, який я винайшов для зручного створення скріншотів. Так, я знаю про існування таких програм як shutter, але всі вони з тих чи інших причин мені незручні, а оскільки був інтерес і час, я зайнявся цією проблемою.

Як працює мій велосипед

Користувач натискає PrintScreen, з'являється меню, в якому послідовно запитують:
  1. Зберегти весь екран чи лише частину (вікно)?
  2. Зберегти файл зі знімком на довгу пам'ять або зберегти в ненадійному /tmp?
  3. Ввести ім'я файлу самому, згенерувати випадкове чи генерувати за шаблоном?
  4. Якщо за шаблоном, пропонується вибрати шаблон або ввести його самому
  5. Вибрати затримку в секундах перед фотографуванням
  6. Чи копіювати URL опублікованого зображення в буфер
  7. Чи показати діалог шляхом файлу на диску, а також URL картинки
Прорвавшись через цю купу питань, програма:
  1. Уточнює ім'я файлу (якщо потрібно)
  2. Робить скріншот екрану або чекає, доки користувач виділить регіон або вікно (man scrot)
  3. Якщо користувач запровадив ім'я файлу, яке вже існує, виведеться підтвердження перезапису. У разі скасування користувачеві доведеться самому ще раз викликати скрипт (сам він поки що не настільки розумний, щоб запитати інше ім'я файлу)
  4. У лог-файл записується шлях до збереженого файлу та URL опублікованого зображення
  5. У буфер обміну копіюється URL скріншота (якщо треба)
  6. Відображається діалог шляхом до файлу на диску та URL опублікованої картинки (якщо треба)

Скрипт, викликаний без аргументів, щоразу запитуватиме питання наново. Однак, запам'ятавши відповіді користувача, він їх кешує та записує у файл (за замовчуванням /tmp/screenshot.cache.sh). Якщо запустити скрипт з аргументом cached , скрипт спробує вважати кешовані відповіді, і якщо це вдасться, запитувати не буде.

Таким чином, налаштувавши PrintScreen на виклик скрипта із завантаженням кеша, а Win+PrintScreen на виклик без завантаження кеша, я завжди можу змінити налаштування, знову відповівши на запитання, після чого фотографувати далі значно швидше.

Disclaimer

Мій дистрибутив ArchLinux, і я користуюся openbox як віконний менеджер. У щасливих власників KDE/Gnome/Xfce/ваш_варіант процес встановлення та використання може відрізнятися.

Будівельні матеріали

  1. dmenu (показувати меню)
  2. scrot (скриншотер)
  3. zenity (питати питання у користувача)
  4. xclip (копіювати посилання на буфер обміну)
  5. imagepaste (заливати картинку на image hosting)
  6. скрипт (зібрати всі компоненти докупи)
  7. terminus-font (шрифти в меню, optional)
Перші чотири програми мають бути (за ідеєю) доступні у репозиторіях вашого дистрибутива. Останній пункт опціональний. Ви можете використовувати інші шрифти, якщо terminus вам не згоден. П'ятий пункт - мій власний виріб, сенс якого зводиться до заливки картинки на сайти типу ImageShack.us однією командою з командного рядка. Складання цього дива, взагалі кажучи, не таке складне, але опис цього процесу в будь-якому випадку виходить за рамки даної замітки, так що Ви вільні замінити цей компонент альтернативними рішеннями.
Покрокова інструкція
Ось як виглядала б установка, вона почала до кінця в моєму дистрибутиві.
Встановимо стандартні пакети:
$ 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 і додати:
/home/bz/bin/screenshot.sh cached /home/bz/bin/screenshot.sh

Плюси
  • своє не пахне
  • зручно, заточено під свої потреби
  • автоматична публікація
Мінуси
  • установка для червонооких
  • багато компонентів, а хотілося б один і щоб все працювало іскаропки
Скрипт цілком
#!/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="Огляд повідомлень у діалоговому вікні" IND_CAPTURE_REGION=0 IND_FILESAVE=1 IND_FILENAME=2 IND_PATTERN=3 IND_DELAY=4 IND_COPY_CLIPBOARD=5 IND_SHOW_LINK .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" ]; )" PATTERN_INDEX=$(($PATTERN_INDEX + 1)) done ) ask_options() ( для i $ (seq 0 $(($COUNT - 1)))) 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 ] 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 -select primary echo "$URL" | xclip -selection clipboard fi ) show_links() ( if [ $(OPTIONS[$IND_SHOW_LINKS]) == "yes" ] 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

UPD 01: Додано вибір затримки: 0, 5, 10, 30, 60 секунд.
UPD 02: Додано: 1) кешування відповідей користувача 2) можливість вказати інкрементальний патерн для імені файлу.

Отже, знімок екрана можна зробити стандартними засобами операційної системи. На клавіатурі стаціонарного комп'ютера, нетбуків та ноутбуків передбачена спеціальна кнопка для цих цілей – Print Screen. На різних клавіатурах позначена по-різному, PrtScr або PrtScr SysRq.

Існує три варіанти, як зробити знімок екрану стандартними засобами, зараз розберемо кожен з цих варіантів.

  1. Щоб зробити знімок всього екрана потрібно лише натиснути на кнопку PrtScr.
  2. Зробимо знімок певного вікна. Виводимо потрібне вікно на передній план і використовуємо клавіші Alt + PrtScr .
  3. Тепер зробимо знімок будь-якої потрібної частини екрана. Натискаємо на Shift + PrtScr , натискаємо та тримаємо ліву кнопку миші. Далі просто вибираємо потрібну область екрану.

Використання програми Shutter.

Вбудований стандартний функціонал це звичайно просто і швидко, але він не дає широких можливостей. Наприклад ми хочемо внести будь-які зміни в щойно зроблений скріншот. Надати ефект цьому скріну або намалювати покажчики, відзначити необхідну область. У такому разі не обійтись без сторонньої програми. І на допомогу приходить найкраща на мій погляд програма – Shutter.

Дуже проста та зрозуміла у використанні. Також надає можливість робити знімки певного вікна та певної області. Простий приклад використання:

У Shutter встановлені додаткові плагіни, за допомогою яких можна додавати різні ефекти скріну. Наприклад.

Інструкція

Насамперед необхідно встановити програму Shutter. Зробити це можна за допомогою програми "Центр програм Ubuntu". Просто введіть у пошуку ключове слово Shutter та натисніть кнопку встановити.

Після встановлення програми запустіть її з головного меню. Ви також можете скористатися пошуком по меню, ввівши ключове слово Shutter. Після запуску в області сповіщень з'явиться піктограма програми. Також головне вікно програми.

Щоб зробити скріншот, використовуйте інструменти на панелі у головному вікні програми. Ви можете робити скріншот виділеної області, робочого столу, всього екрану, одного вікна та навіть одного елемента вікна. У програми багаті налаштування, але й за замовчуванням вона повністю готова до використання за призначенням. Ці ж інструменти дублюються у меню, що випадає, якщо клікнути по іконці програми в області повідомлень, що дуже зручно для швидкого створення скріншотів.

Отримані знімки екрана можна відразу відредагувати прямо в програмі. Для цього використовуйте іконку з палітрою художника. Після натискання по ній відкриється простий редактор, схожий на Paint, в якому можна обрізати зайве, і виділити рамками потрібні області, залишити текстові підписи і таке інше.

Усі скріншоти автоматично зберігаються у файлах. За промовчанням до папки Зображення у домашній папці. Ви можете скопіювати та вставити скріншот у текстовий редактор прямо з програми, використовуючи стандартні комбінації клавіш Ctrl+C, Ctrl+V. Також можна безпосередньо з Shutter здійснювати будь-які файлові операції зі скріншотом. Наприклад, перемістити в потрібну папку, перейти в папку скріншота, завантажити на ftp або один із безлічі сервісів для зберігання картинок.

Поділіться з друзями або збережіть для себе:

Завантаження...