Как сделать скриншот всего рабочего стола с выбором меню приложения?


13

Я хочу сделать скриншот всего рабочего стола с выбором меню приложений. Как это сделать?

Ответы:


20
  • Приложения> Аксессуары> Сделать снимок экрана> Захватить весь рабочий стол> Захватить с задержкой в ​​5 секунд (скажем)

альтернативный текст

  • Сделайте свой выбор приложений меню. Подождите.

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

Так как вам было интересно, возможно ли это сделать с помощью Shutter ...

Чтобы сделать это в Значок затвора Shutter , откройте его и выберите « Полный экран» на панели инструментов или в меню « Файл» > « Создать» > « Полноэкранный режим» .

Убедитесь, что у вас установлена ​​задержка времени, чтобы у вас было достаточно времени, чтобы открыть меню «Приложения» (« Правка» > « Установки» > вкладка « Главная »; внизу есть поле выбора: « Захват после задержки в __ секунд» ).

альтернативный текст


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 секунд .

Примечание: это не может быть использовано для захвата определенной части окна.

Примечание: Извините, также невозможно сделать снимок экрана самого приложения « Снимок экрана » в качестве окна или получить определенную часть.


0

Я бы не сказал, что это ошибка. Можно использовать инструмент «Снимок экрана» и установить «Захватывать с задержкой в ​​x секунд» на время, когда вам нужно снова открыть меню.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.