วิธีการจับภาพหน้าจอของเดสก์ท็อปทั้งหมดด้วยการเลือกเมนูแอพ


13

ฉันต้องการถ่ายภาพหน้าจอของเดสก์ท็อปทั้งหมดด้วยการเลือกเมนูแอปพลิเคชันจะทำอย่างไร

คำตอบ:


20
  • แอปพลิเคชั่น> อุปกรณ์เสริม> จับภาพหน้าจอ> คว้าทั้งเดสก์ท็อป> คว้าหลังจากหน่วงเวลา: 5 วินาที (พูด)

ข้อความแสดงแทน

  • เลือกเมนู Applications ของคุณ รอ.

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

ก่อนที่จะสามารถใช้สคริปต์ (บนอูบุนตู), คุณต้องให้แน่ใจว่าคุณมีXInputและunbuffer ในการทำเช่นนั้นเพียงทำ:

sudo apt-get install xinput expect-dev

จากนั้นคุณสามารถเรียกใช้สคริปต์ รันครั้งแรกด้วยตัวเลือก -h เพื่อดูตัวเลือกการกำหนดค่าที่เป็นไปได้ โดยค่าเริ่มต้นสคริปต์จะทำงานเพียงครั้งเดียวและคุณต้องรีสตาร์ทสคริปต์หลังจากทุกภาพหน้าจอ (เช่นด้วยแป้นพิมพ์ลัด) นี่เป็นเพราะสคริปต์อาจมีประสิทธิภาพที่แน่นอน หากคุณต้องการเรียกใช้เป็น "daemon" ให้รันด้วย-dตัวเลือก

โดยค่าเริ่มต้นมันก็จะใช้ชัตเตอร์ หากคุณต้องการใช้อย่างอื่นให้ใช้-eตัวเลือกเช่นscript.sh -c "ksnapshot"

โดยค่าเริ่มต้นปุ่มถ่ายภาพจะเป็น+Meta Rคุณสามารถเปลี่ยนได้ด้วยตัวเลือกการกำหนดค่า


4

เมื่อคุณสงสัยว่ามันเป็นไปได้ด้วยชัตเตอร์ ...

ที่จะทำในไอคอนชัตเตอร์ ชัตเตอร์เปิดมันขึ้นมาและเลือกแบบเต็มหน้าจอจากทั้งแถบเครื่องมือหรือจากไฟล์ > ใหม่ > เต็มหน้าจอ

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าการหน่วงเวลาเพื่อให้คุณมีเวลาเพียงพอที่จะเปิดเมนูแอปพลิเคชัน ( แก้ไข > การตั้งค่า > แท็บหลักที่ด้านล่างจะมีกล่องตัวเลือก: จับภาพหลังจากการหน่วงเวลา __ วินาที )

ข้อความแสดงแทน


2

ใช่. เปิดภาพหน้าจอและตั้งค่าเวลาใดก็ตามที่คุณคิดว่าจำเป็นต้องย้อนกลับและเปิดเมนู เปิดทิ้งไว้จนกว่าจะถ่ายภาพ

ป้อนคำอธิบายรูปภาพที่นี่


2

คำตอบ / การแก้ปัญหาอย่างรวดเร็ว

( สำหรับผู้ใช้สื่อกลางถึงอูบุนตูขั้นสูง )

  • เพิ่มทางลัดแบบกำหนดเองลงในคำสั่งต่อไปนี้:
    gnome-screenshot --delay=numIntValueInSecs
    ตัวอย่างเช่น
    gnome-screenshot --delay=3
  • เพิ่มอีกภาพหนึ่งเพื่อจับภาพหน้าจอของหน้าต่างที่ใช้งานอยู่:
    gnome-screenshot -w --delay=3

    เพียงเท่านี้แต่ฉันขอแนะนำให้ตั้งค่าอีก 2 คนซึ่งจะทำให้คุณมีเวลามากขึ้นในการนำทางในเมนูต่างๆ

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

    ป้อนคำอธิบายรูปภาพที่นี่

คำตอบที่ซับซ้อน

( สามเณรถึงแฮ็กเกอร์ )

บทนำ:

เมื่อใดก็ตามที่คุณกดPrntScrUbuntu ทั้งหมดจะเรียกgnome-screenshotซึ่งโดยปกติจะอยู่บน/usr/bin/เส้นทางและหาได้จาก "เทอร์มินัล" (teletype, tty, cli, command line / พรอมต์) ดังนั้นคุณสามารถใช้มันได้หลากหลายวิธี วัตถุประสงค์

gnome-screenshotโปรแกรมเล็ก ๆ ยอมรับพารามิเตอร์ที่ไม่จำเป็นที่คุณสามารถดูตัวเลือกทั้งหมดโดยการส่งผ่านพารามิเตอร์มาตรฐานเพื่อขอความช่วยเหลือคุณรู้หนึ่ง ( -h)

ป้อนคำอธิบายรูปภาพที่นี่

หากคุณยังไม่แน่ใจว่าจะใช้สิ่งนี้อย่างไรคุณสามารถอ่านความช่วยเหลือที่ละเอียดกว่านี้ได้เสมอเพียงแค่ขอให้พิมพ์ด้วยตนเอง man gnome-screenshot

ป้อนคำอธิบายรูปภาพที่นี่

ยิ่งคุณอ่านคู่มืออย่างเต็มรูปแบบการแฮ็ค Ubuntu เพื่อให้เหมาะกับความต้องการของคุณจะกลายเป็นเรื่องง่ายและคุณไม่จำเป็นต้องให้คนอื่นทำตามคำแนะนำทีละขั้นตอน บางทีในตอนนี้คุณอาจรู้วิธีที่จะทำให้การแก้ปัญหานี้ด้วยตัวเองถ้าคุณยังคงหายไป (หวังว่าจะไม่) เพียงแค่อ่านต่อไป ...

คำแนะนำ:

  • Step Zero: เปิดการตั้งค่าระบบของ Ubuntu และไปที่ตัวเลือก Keyboard:

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้

  1. นำทางไปยังShortcutsแท็บ
  2. เลือก Custom Shortcuts
  3. กด+ปุ่มเพื่อเพิ่มทางลัดที่กำหนดเองใหม่ของคุณ
  4. ตั้งชื่อและคำสั่ง
    (เช่นเดียวกับที่อธิบายไว้ใน"คำตอบด่วน"ด้านบน)
    กำหนดคีย์ผสมที่คุณต้องการ
  5. ปิดหน้าต่างนี้ไม่ทำงาน

ป้อนคำอธิบายรูปภาพที่นี่

* Presto!
คุณเพิ่งก้าวไปอีกหนึ่งขั้นเพื่อเป็นนายอูบุนตูฉันหวังว่าคำตอบนี้จะมีประโยชน์ *


ดี! ฉันชอบความคิดในการตั้งค่าการหน่วงเวลาเริ่มต้นสำหรับภาพหน้าจอที่ยิงด้วยแป้นพิมพ์
jgomo3

ใช่แล้วในที่สุดมันก็มีกรณีการใช้งานมากกว่าสองสามกรณี
JorgeArtware

1

ใช้ภาพหน้าจอ (ใน accesssories) และตั้ง 'คว้าหลังจากการหน่วงเวลา xx วินาที'

ทำงานให้ฉัน


1

ฉันพบวิธีแก้ปัญหาสำหรับสิ่งนี้ไม่ใช่ทางออกที่แท้จริง

เปิดScreenshotแอพลิเคชันในหน้าต่างที่เปิดให้ตั้งเวลาเป็นคว้าหลังจากที่ล่าช้าของ x วินาที

หมายเหตุ: สิ่งนี้ไม่สามารถใช้สำหรับการจับเฉพาะส่วนของหน้าต่าง

หมายเหตุ: ขออภัยไม่สามารถใช้สกรีนช็อตของแอปพลิเคชั่นสกรีนช็อตเป็นหน้าต่างหรือหยิบเฉพาะบางส่วนได้


0

ฉันจะไม่พูดว่ามันเป็นข้อผิดพลาด เป็นไปได้ที่จะใช้เครื่องมือ "ภาพหน้าจอ" และตั้งค่า "หยิบหลังจากเวลาหน่วง x วินาที" เป็นเวลาที่คุณต้องเปิดเมนู

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.