Wie mache ich einen Screenshot eines ganzen Desktops mit App-Menüauswahl?


13

Ich möchte einen Screenshot eines ganzen Desktops mit Auswahl des Anwendungsmenüs machen. Wie mache ich das?

Antworten:


20
  • Anwendungen> Zubehör> Screenshot erstellen> Gesamten Desktop erfassen> Erfassung mit einer Verzögerung von: 5 Sekunden (etwa)

Alt-Text

  • Treffen Sie Ihre Auswahl im Menü Anwendungen. Warten.

5

Eigentlich ist es ist möglich , es ohne die Verzögerung zu tun, aber mit einigen Hacks statt. Ich habe ein kleines Skript geschrieben, mit dem Sie das ohne Verzögerung tun können. Dies ist ein großer Hack, aber es funktioniert und ist sicherlich (für mich) vorzuziehen, die Verzögerung zu verwenden.

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

Bevor Sie tatsächlich das Skript (auf Ubuntu) verwenden können, müssen Sie sicherstellen , haben Sie XInput und unbuffer . Um das zu tun, mache einfach:

sudo apt-get install xinput expect-dev

Dann können Sie das Skript ausführen. Führen Sie es zuerst mit der Option -h aus, um die möglichen Konfigurationsoptionen anzuzeigen. Standardmäßig funktioniert das Skript nur einmal und Sie müssen das Skript nach jedem Screenshot neu starten (z. B. über eine Tastenkombination). Dies liegt daran, dass das Skript möglicherweise eine Leistungsstörung aufweist. Wenn Sie es als "Daemon" ausführen möchten, führen Sie es mit der -dOption aus.

Standardmäßig wird auch der Verschluss verwendet. Wenn Sie etwas anderes verwenden möchten, verwenden Sie die -eOption, zscript.sh -c "ksnapshot"

Standardmäßig ist die Aufnahmetaste Meta+ R. Sie können dies mit den Konfigurationsoptionen ändern.


4

Da hast du dich gefragt, ob das auch mit Shutter möglich ist ...

Um es in tun Auslöser-Symbol Shutter , öffnen Sie es und wählen Sie Vollbild entweder aus der Symbolleiste oder Datei > Neu > Vollbild .

Stellen Sie sicher , dass Sie eine bestimmte Zeitspanne einstellen, so dass Sie genügend Zeit haben , das Menü Anwendungen zu öffnen ( Bearbeiten > Einstellungen > Haupt Registerkarte, unten gibt es ein Auswahlfeld: Erfassung nach einer Verzögerung von __ Sekunden ).

Alt-Text


2

Ja. Öffnen Sie den Screenshot und stellen Sie eine Zeitverzögerung ein, die Sie für erforderlich halten, um das Menü wieder zu öffnen. Halten Sie es offen, bis der Schuss gemacht wird.

Bildbeschreibung hier eingeben


2

Schnelle Antwort / Problemumgehung

( für mittlere bis fortgeschrittene Ubuntu-Benutzer )

  • Fügen Sie dem folgenden Befehl eine benutzerdefinierte Verknüpfung hinzu:
    gnome-screenshot --delay=numIntValueInSecs
    Beispiel
    gnome-screenshot --delay=3
  • Fügen Sie einen weiteren hinzu, um aktive Fenster-Screenshots zu erstellen:
    gnome-screenshot -w --delay=3

    Das ist alles , aber ich würde auch empfehlen, zwei andere festzulegen, damit Sie mehr Zeit haben, tiefer in den Menüs zu navigieren.

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

    Bildbeschreibung hier eingeben

Ausführliche Antwort

( Anfänger zum Hacker )

Intro:

Jedes Mal PrntScr, wenn Sie drücken , ruft Ubuntu an, gnome-screenshotder sich normalerweise auf dem /usr/bin/Pfad befindet und über das "Terminal" (Teletype, tty, cli, Befehlszeile / Eingabeaufforderung) verfügbar ist, sodass Sie ihn auf vielfältige Weise verwenden können, um ihn Ihrem Funky anzupassen Zwecke.

Das gnome-screenshotkleine Programm akzeptiert optionale Parameter. Sie können alle Optionen anzeigen, indem Sie den Standardparameter übergeben und um Hilfe bitten. Sie kennen den einen ( -h).

Bildbeschreibung hier eingeben

Wenn Sie sich immer noch nicht sicher sind, wie Sie dies verwenden sollen, können Sie jederzeit eine ausführlichere Hilfe lesen. Fragen Sie einfach nach der manuellen Eingabe man gnome-screenshot

Bildbeschreibung hier eingeben

Je mehr Sie die vollständigen Handbücher lesen, desto intuitiver wird es, Ubuntu zu hacken, um Ihren Anforderungen gerecht zu werden, und desto weniger werden Sie von anderen Personen schrittweise Anleitungen erhalten. Vielleicht wissen Sie zu diesem Zeitpunkt sogar, wie Sie dieses Problem selbst umgehen können, wenn Sie immer noch verloren sind (hoffentlich nicht), lesen Sie einfach weiter ...

Anleitung:

  • Schritt Null: Öffnen Sie die Ubuntu-Systemeinstellungen und navigieren Sie zur Option Tastatur:

Bildbeschreibung hier eingeben

Jetzt

  1. Navigieren Sie zur ShortcutsRegisterkarte.
  2. Wählen Custom Shortcuts
  3. Klicken Sie auf die +Schaltfläche, um Ihre neue benutzerdefinierte Verknüpfung hinzuzufügen.
  4. Geben Sie einen Namen und einen Befehl.
    (wie oben unter "Schnelle Antwort" beschrieben )
    4½. Weisen Sie die gewünschte Tastenkombination zu.
  5. Schließen Sie dieses Fenster oder es funktioniert nicht.

Bildbeschreibung hier eingeben

* presto!
Du hast gerade einen weiteren Schritt getan, um ein Ubuntu-Meister zu werden. Ich hoffe, diese Antwort war hilfreich.


Nett! Ich mag die Idee, eine Standardverzögerung für den mit der Tastatur abgegebenen Screenshot festzulegen.
jgomo3

Ja, am Ende gibt es mehr Anwendungsfälle als nur Screenshots von Dropdown-Menüs.
JorgeArtware

1

Verwenden Sie Screenshot (in accesssories) und setzen Sie "Grab nach einer Verzögerung von xx Sekunden".

Hat für mich gearbeitet


1

Ich habe eine Problemumgehung dafür gefunden, keine tatsächliche Lösung.

Öffnen Sie die ScreenshotAnwendung und stellen Sie im geöffneten Fenster nach einer Verzögerung von x Sekunden eine Zeit als Grab ein .

Hinweis: Dies kann nicht zum Erfassen eines bestimmten Teils des Fensters verwendet werden.

Hinweis: Es ist leider nicht möglich, den Screenshot der Screenshot- Anwendung selbst als Fenster zu betrachten oder einen bestimmten Teil zu erfassen.


0

Ich würde nicht sagen, dass es ein Fehler ist. Es ist möglich, das "Screenshot" -Tool zu verwenden und "Greifen nach einer Verzögerung von x Sekunden" auf die Zeit einzustellen, die Sie benötigen, um das Menü wieder zu öffnen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.