Come fare uno screenshot di un intero desktop con la selezione del menu dell'app?


13

Voglio fare uno screenshot di un intero desktop con la selezione del menu Applicazioni. Come fare?

Risposte:


20
  • Applicazioni> Accessori> Cattura schermata> Prendi l'intero desktop> Prendi dopo un ritardo di: 5 secondi (ad esempio)

testo alternativo

  • Fai la selezione del menu Applicazioni. Aspettare.

5

In realtà, è possibile farlo senza indugio, ma con alcuni hack invece. Ho scritto una piccola sceneggiatura che ti permetterà di farlo senza indugio. Questo è un grande trucco, ma funziona ed è sicuramente (per me) più preferibile che usare il ritardo.

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

Prima di poter effettivamente utilizzare lo script (su Ubuntu), è necessario assicurarsi di avere xinput e unbuffer . Per farlo semplicemente fai:

sudo apt-get install xinput expect-dev

Quindi puoi eseguire lo script. Eseguilo prima con l'opzione -h per vedere le possibili opzioni di configurazione. Per impostazione predefinita, lo script funzionerà solo una volta e dovrai riavviare lo script dopo ogni schermata (ad esempio tramite una scorciatoia da tastiera). Questo perché lo script potrebbe avere un impatto sulle prestazioni. Se vuoi eseguirlo come un "demone" eseguilo con l' -dopzione.

Per impostazione predefinita utilizzerà anche l'otturatore. Se vuoi usare qualcos'altro, usa l' -eopzione, ad esscript.sh -c "ksnapshot"

Per impostazione predefinita, il pulsante di acquisizione sarà Meta+ R. puoi cambiarlo con le opzioni di configurazione.


4

Dal momento che ti chiedevi se fosse possibile anche con Shutter ...

Per farlo in Icona dell'otturatore Otturatore , aprilo e seleziona Schermo intero dalla barra degli strumenti o da File > Nuovo > Schermo intero .

Assicurati di avere un ritardo impostato in modo da avere abbastanza tempo per aprire il menu Applicazioni ( Modifica > Preferenze > scheda Principale ; in fondo, c'è una casella di selezione: Cattura dopo un ritardo di __ secondi ).

testo alternativo


2

Sì. Apri lo screenshot e imposta un ritardo di qualsiasi tempo ritieni necessario per tornare indietro e aprire il menu. Tienilo aperto fino allo scatto.

inserisci qui la descrizione dell'immagine


2

Risposta rapida / soluzione alternativa

( per utenti ubuntu medio-avanzati )

  • Aggiungi un collegamento personalizzato al seguente comando:
    gnome-screenshot --delay=numIntValueInSecs
    ad esempio
    gnome-screenshot --delay=3
  • Aggiungine un altro per acquisire screenshot attivi della finestra:
    gnome-screenshot -w --delay=3

    Questo è tutto , ma ti consiglio anche di impostarne altri 2 che ti darebbero più tempo per navigare più a fondo nei menu.

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

    inserisci qui la descrizione dell'immagine

Risposta elaborata

( principiante all'hacker )

Intro:

Ogni volta che premi PrntScr, tutto ciò che Ubuntu fa è chiamare gnome-screenshotche di solito si trova sul /usr/bin/percorso e disponibile dal "terminale" (teletype, tty, cli, riga di comando / prompt), quindi puoi usarlo in tutti i modi per adattare il tuo funky scopi.

Il gnome-screenshotpiccolo programma accetta parametri opzionali, puoi vedere tutte le opzioni passando il parametro standard per chiedere aiuto, conosci quello ( -h)

inserisci qui la descrizione dell'immagine

Se non sei ancora sicuro di come utilizzarlo, puoi sempre leggere un aiuto più dettagliato, basta chiedere la digitazione manuale man gnome-screenshot

inserisci qui la descrizione dell'immagine

Più leggi i manuali completi, hackerare Ubuntu per soddisfare le tue esigenze diventerà intuitivo e non avrai bisogno di altre persone per darti istruzioni dettagliate. Forse a questo punto sai anche come risolvere questo problema da solo, se sei ancora perso (speriamo di no), continua a leggere ...

Istruzioni:

  • Step Zero: apri le impostazioni di sistema di Ubuntu e vai all'opzione Tastiera:

inserisci qui la descrizione dell'immagine

Adesso

  1. Vai alla Shortcutsscheda.
  2. Selezionare Custom Shortcuts
  3. Premi il +pulsante per aggiungere il tuo nuovo collegamento personalizzato.
  4. Dai un nome e un comando.
    (proprio come descritto nella "Risposta rapida" sopra)
    4½. Assegna la combinazione di tasti che desideri.
  5. Chiudi questa finestra o non funzionerà.

inserisci qui la descrizione dell'immagine

*presto!
Hai appena fatto un ulteriore passo per diventare un maestro Ubuntu, spero che questa risposta sia stata utile *


Bello! Mi piace l'idea di impostare un ritardo predefinito per lo screenshot attivato con la tastiera.
jgomo3,

Sì, alla fine capita di avere alcuni casi d'uso in più rispetto al semplice fare screenshot dei menu a discesa.
JorgeArtware,

1

Usa la schermata (in accessori) e imposta "Prendi dopo un ritardo di xx secondi".

Ha funzionato per me


1

Ho trovato una soluzione per questo, non una soluzione reale.

Aprire l' Screenshotapplicazione, nella finestra aperta, impostare un tempo come Afferrare dopo un ritardo di x secondi .

Nota: questo non può essere usato per afferrare una parte specifica della finestra.

Nota: Siamo spiacenti, non è anche possibile prendere lo screenshot dell'applicazione Screenshot stessa come una finestra o afferrare una porzione specifica.


0

Non direi che è un bug. È possibile utilizzare lo strumento "Schermata" e impostare "Prendi dopo un ritardo di x secondi" sul tempo necessario per riaprire il menu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.