Jak zrobić zrzut ekranu całego pulpitu z wyborem menu aplikacji?

13

Chcę zrobić zrzut ekranu całego pulpitu z wyborem menu aplikacji. Jak to zrobić?

karthick87
źródło

Odpowiedzi:

20
  • Aplikacje> Akcesoria> Zrzut ekranu> Chwyć cały pulpit> Chwyć po upływie 5 sekund (powiedzmy)

alternatywny tekst

  • Dokonaj wyboru menu aplikacji. Czekać.
Sid
źródło
5

Właściwie, to jest możliwe, aby to zrobić bez zwłoki, ale z pewnymi hacki zamiast. Napisałem mały skrypt, który pozwoli ci to zrobić bez opóźnień. To duży hack, ale działa i na pewno (dla mnie) jest lepszy niż używanie opóźnienia.

#!/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

Przed rzeczywiście można użyć skryptu (na Ubuntu), należy upewnić się, że XInput i unbuffer . Aby to zrobić, po prostu wykonaj:

sudo apt-get install xinput expect-dev

Następnie możesz uruchomić skrypt. Uruchom go najpierw z opcją -h, aby zobaczyć możliwe opcje konfiguracji. Domyślnie skrypt będzie działał tylko raz i po każdym zrzucie ekranu musisz ponownie uruchomić skrypt (np. Za pomocą skrótu klawiaturowego). Wynika to z faktu, że skrypt może mieć brak wydajności. Jeśli chcesz uruchomić go jako „demon”, uruchom go z -dopcją.

Domyślnie użyje również migawki. Jeśli chcesz użyć czegoś innego, skorzystaj z -eopcji, npscript.sh -c "ksnapshot"

Domyślnie przycisk przechwytywania to Meta+ R. możesz to zmienić za pomocą opcji konfiguracji.

Wattos
źródło
4

Ponieważ zastanawiałeś się, czy to możliwe także dzięki Shutter ...

Aby to zrobić w Ikona migawki Shutter , otwórz go i wybierz Pełny ekran z paska narzędzi lub z menu Plik > Nowy > Pełny ekran .

Upewnij się, że masz ustawione opóźnienie czasowe, aby mieć wystarczająco dużo czasu, aby otworzyć menu Aplikacje ( Edycja > Preferencje > Karta główna ; u dołu znajduje się pole wyboru: Przechwyć po opóźnieniu __ sekund ).

alternatywny tekst

Ogień Ogień
źródło
2

Tak. Otwórz zrzut ekranu i ustaw opóźnienie w czasie, który Twoim zdaniem jest konieczny, aby wrócić i otworzyć menu. Pozostaw ją otwartą do momentu wykonania zdjęcia.

wprowadź opis zdjęcia tutaj

Mitch
źródło
2

Szybka odpowiedź / obejście

( dla średnich i zaawansowanych użytkowników ubuntu )

  • Dodaj niestandardowy skrót do następującego polecenia:
    gnome-screenshot --delay=numIntValueInSecs
    na przykład
    gnome-screenshot --delay=3
  • Dodaj kolejny, aby zrobić zrzuty ekranu aktywnego okna:
    gnome-screenshot -w --delay=3

    To wszystko , ale zalecam także ustawienie 2 innych, które dałyby więcej czasu na głębsze poruszanie się po menu.

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

    wprowadź opis zdjęcia tutaj

Opracuj odpowiedź

( nowicjusz do hakera )

Wprowadzenie:

Ilekroć naciśniesz PrntScr, wszystko, co robi Ubuntu, to dzwonienie, gnome-screenshotktóre zwykle znajduje się na /usr/bin/ścieżce i jest dostępne z „terminala” (typ telettyki, tty, cli, wiersza poleceń / monitu), dzięki czemu możesz używać go na różne sposoby, aby dopasować się do Twojego funky cele.

gnome-screenshotMały program akceptuje opcjonalne parametry, można zobaczyć wszystkie opcje, przekazując standardowy parametr, aby prosić o pomoc, wiesz, że jeden ( -h)

wprowadź opis zdjęcia tutaj

Jeśli nadal nie wiesz, jak tego użyć, zawsze możesz przeczytać bardziej szczegółową pomoc, po prostu poproś o ręczne wpisywanie man gnome-screenshot

wprowadź opis zdjęcia tutaj

Im więcej czytasz pełne podręczniki, hakowanie ubuntu do twoich potrzeb stanie się intuicyjne i nie będziesz potrzebował innych ludzi, którzy udzielą ci instrukcji krok po kroku. Być może do tego momentu wiesz nawet, jak samemu to obejść, jeśli nadal jesteś zagubiony (mam nadzieję, że nie), po prostu czytaj dalej ...

Instrukcje:

  • Krok zero: Otwórz ustawienia systemowe Ubuntu i przejdź do opcji Klawiatura:

wprowadź opis zdjęcia tutaj

Teraz

  1. Przejdź do Shortcutszakładki.
  2. Wybierz Custom Shortcuts
  3. Naciśnij +przycisk, aby dodać nowy niestandardowy skrót.
  4. Podaj nazwę i polecenie.
    (tak jak opisano w „Szybkiej odpowiedzi” powyżej)
    4½. Przypisz kombinację klawiszy, którą chcesz.
  5. Zamknij to okno lub nie będzie działać.

wprowadź opis zdjęcia tutaj

*presto!
Właśnie zrobiłeś kolejny krok, aby zostać mistrzem ubuntu, mam nadzieję, że ta odpowiedź była pomocna *

JorgeArtware
źródło
Ładny! Podoba mi się pomysł ustawienia domyślnego opóźnienia dla zrzutu ekranu uruchamianego za pomocą klawiatury.
jgomo3
Tak, w końcu zdarza się, że ma kilka innych przypadków użycia niż tylko zrzuty ekranowe menu rozwijanych.
JorgeArtware
1

Użyj zrzutu ekranu (w akcesoriach) i ustaw „Chwyć po opóźnieniu xx sekund”.

Pracował dla mnie

Tinellus
źródło
1

Znalazłem obejście tego, a nie rzeczywiste rozwiązanie.

Otwórz Screenshotaplikację, w otwartym oknie ustaw czas jako Grab po opóźnieniu x sekund .

Uwaga: Nie można tego użyć do uchwycenia określonej części okna.

Uwaga: Przepraszamy, nie jest możliwe zrobienie zrzutu ekranu samej aplikacji Screenshot jako okna lub pobranie określonej części.

Anwar
źródło
0

Nie powiedziałbym, że to błąd. Można użyć narzędzia „Screenshot” i ustawić „Grab po opóźnieniu x sekund” na czas potrzebny do ponownego otwarcia menu.

tpei
źródło