Як зробити скріншот цілого робочого столу з вибором меню додатків?


13

Я хочу зробити скріншот цілого робочого столу з вибором меню додатків. Як це зробити?

Відповіді:


20
  • Застосування> Аксесуари> Знімати знімок екрана> Візьміть весь робочий стіл> Захопіть після затримки: 5 секунд (скажіть)

alt текст

  • Виберіть меню "Програми". Зачекайте.

5

На насправді, це можливо зробити це без затримки, але з деякими писак замість цього. Я написав невеликий сценарій, який дозволить вам зробити це без зволікань. Це великий злом, але він працює і, безумовно, (для мене) більш кращий, ніж використання затримки.

#!/bin/bash
######################################################################################
# Simple script to enable users to make screenshots of tooltips/menus/etc...         # 
# without timers                                                                     #
######################################################################################

######################################################################################
# Configuration Section (defaults)                                                   #
######################################################################################
SCREENSHOT_COMMAND="shutter -s"

# The keys can be found out using xinput test "keyboard name"
MODIFIER_KEY=133 #The <Super> Key (aka. Meta or Windows Key)f
CANCEL_KEY=54 # C
CAPTURE_KEY=27 # R

DAEMON_MODE="false" # change to true if you want to keep the script running after the screenshot was taken
VERBOSE="true" #Change this to any value if you dont want to have notifications

######################################################################################

######################################################################################
# Command parsing                                                                    #
######################################################################################

function usage {
    echo "$0 [-hemrcdn]"
    echo "-h prints this message"
    echo "-e <command> - execute that command instead of shutter"
    echo "-m <int> - The modifier key to use. Use xinput test <keyboar> to find out what is what"
    echo "-r <int> - The key to use for capture."
    echo "-c <int> - The key used for cancelling (only valid in non daemon mode)"
    echo "-d - daemon mode. Will keep on running after a screenshot was taken. to kill the daemon, use \"killall xinput\""
    echo "-n - disables notifications"
    exit;
}

while getopts "he:m:r:c:dn" flag
do
    if [ "$flag" == "h" ]; then
        usage
    fi
    if [ "$flag" == "e" ]; then
        SCREENSHOT_COMMAND=$OPTARG
    fi
    if [ "$flag" == "m" ]; then
        CAPTURE_KEY=$OPTARG
    fi
    if [ "$flag" == "r" ]; then
        SCREENSHOT_COMMAND=$OPTARG
    fi
    if [ "$flag" == "c" ]; then
        CANCEL_KEY=$OPTARG
    fi
    if [ "$flag" == "d" ]; then
        DAEMON_MODE="true"
    fi
    if [ "$flag" == "n" ]; then
        VERBOSE="false"
    fi
done

######################################################################################

KEYBOARDS=`xinput list | grep "slave" | grep "keyboard" | sed "s/[^a-zA-Z]*\(.*\)id=.*/\1/" | sed "s/[\t ]*$//"`

function run {
    MODIFIER_PRESSED="false"
    while read line;
    do
        COMMAND=`echo $line | awk '{print $2;}'`
        KEY=`echo $line | awk '{print $3;}'`
        if [ "$KEY" == "$MODIFIER_KEY" ]; then
            if [ "$COMMAND" == "press" ]; then
                MODIFIER_PRESSED="true"
            else 
                MODIFIER_PRESSED="false"
            fi
        fi 
        if [ "$KEY" == "$CAPTURE_KEY" -a "$MODIFIER_PRESSED" == "true" -a "$COMMAND" == "press" ]; then
            bash -c $SCREENSHOT_COMMAND
            if [ "$VERBOSE" == "true" ]; then
                notify-send "Taking Screenshot"     
            fi
            if [ "$DAEMON_MODE" == "false" ]; then
                quit
            fi
        fi
        if [ "$KEY" == "$CANCEL_KEY" -a "$MODIFIER_PRESSED" == "true" -a "$COMMAND" == "press" -a "$DAEMON_MODE" == "false" ]; then
            if [ "$VERBOSE" == "true" ]; then   
                notify-send "Canceling Screenshot"
            fi
            quit
        fi
    done;
}

function quit {
    killall -9 xinput
    exit
}

if [ "$VERBOSE" == "true" ]; then
    notify-send "Screenshot script waiting. Press Meta + R to capture the screenshot"
fi
IFS=$'\n'
for i in $KEYBOARDS
do
    unbuffer xinput test "$i" | run & 
done

Перш ніж реально використовувати скрипт (на ubuntu), вам потрібно переконатися, що у вас є xinput та unbuffer . Для цього просто виконайте:

sudo apt-get install xinput expect-dev

Потім ви можете запустити сценарій. Спершу запустіть його за допомогою параметра -h, щоб побачити можливі параметри конфігурації. За замовчуванням сценарій працює лише один раз, і вам доведеться перезапустити сценарій після кожного екрана екрана (наприклад, за допомогою комбінації клавіш). Це відбувається тому, що сценарій може мати функціональну ефективність. Якщо ви хочете запустити його як "демон", запустіть його з -dопцією.

За замовчуванням він також буде використовувати затвор. Якщо ви хочете використовувати щось інше, скористайтеся -eопцією, наприкладscript.sh -c "ksnapshot"

За замовчуванням кнопка зйомки буде Meta+ R. ви можете змінити це за допомогою параметрів конфігурації.


4

Оскільки ви цікавились, чи можливо це також із затвора ...

Щоб зробити це Значок затвора затвора , відкрийте його та виберіть Повний екран з панелі інструментів або з меню Файл > Створити > Повний екран .

Переконайтеся, що у вас встановлена ​​часова затримка, щоб у вас було достатньо часу для відкриття меню «Програми» ( Правка > Налаштування > Основна вкладка; внизу є поле вибору: Захоплення після затримки на __ секунд ).

alt текст


2

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

введіть тут опис зображення


2

Швидка відповідь / вирішення

( для середніх та просунутих користувачів ubuntu )

  • Додайте спеціальний ярлик до наступної команди:
    gnome-screenshot --delay=numIntValueInSecs
    наприклад
    gnome-screenshot --delay=3
  • Додайте ще один, щоб зробити активні скріншоти вікна:
    gnome-screenshot -w --delay=3

    Це все , але я також рекомендую встановити 2 інших, що дасть вам більше часу для навігації глибше в меню.

    • gnome-screenshot --delay=10
    • gnome-screenshot -w --delay=10

    введіть тут опис зображення

Детальна відповідь

( новачок хакеру )

Вступ:

Щоразу, коли ви натискаєте PrntScr, все, що робить Ubuntu, викликає дзвінки, gnome-screenshotякі зазвичай знаходяться на /usr/bin/шляху та доступні з "терміналу" (телетайп, tty, cli, командний рядок / підказка), тож ви можете використовувати його різними способами, щоб підходити до вашого фанки цілей.

gnome-screenshotМаленька програма вживає додаткових параметри, ви можете побачити всі варіанти, передаючи стандартний параметр , щоб попросити про допомогу, ви знаєте , що один ( -h)

введіть тут опис зображення

Якщо ви все ще не впевнені, як це використовувати, ви завжди можете прочитати більш детальну допомогу, просто попросіть ввести вручну man gnome-screenshot

введіть тут опис зображення

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

Інструкції:

  • Крок нуль: відкрийте системні налаштування Ubuntu та перейдіть до параметра Клавіатура:

введіть тут опис зображення

Тепер

  1. Перейдіть на Shortcutsвкладку.
  2. Виберіть Custom Shortcuts
  3. Натисніть +кнопку, щоб додати новий спеціальний ярлик.
  4. Дайте ім’я та команду.
    (так само, як описано у "Швидкій відповіді" вище)
    4½. Призначте потрібну комбінацію клавіш.
  5. Закрийте це вікно, інакше воно не працюватиме.

введіть тут опис зображення

* престо!
Ви просто зробили ще один крок, щоб стати майстром ubuntu, сподіваюся, що ця відповідь була корисною *


Приємно! Мені подобається ідея встановити затримку за замовчуванням для екрана екрана, запусканого за допомогою клавіатури.
jgomo3

Так, врешті-решт, у вас є ще кілька випадків використання, ніж просто знімки екрана меню, що випадає.
JorgeArtware

1

Використовуйте знімок екрана (в аксесуарах) і встановіть "Схопити після затримки на xx секунд".

Працювали для мене


1

Я знайшов вирішення цього, а не фактичного рішення.

Відкрийте Screenshotпрограму, у відкритому вікні встановіть час як Grab після затримки x секунд .

Примітка. Це не можна використовувати для захоплення певної частини вікна.

Примітка: Вибачте, не можна також знімати знімок екрана програми Screenshot як вікно або захоплювати певну частину.


0

Я б не сказав, що це помилка. Можна скористатися інструментом "Скріншот" і встановити "Схопити після затримки на х секунд" на час, необхідний для повернення меню назад.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.