快速答案/解决方法

快速答案/解决方法

我想通过应用程序菜单选择来截取整个桌面的屏幕截图。该怎么做?

答案1

  • 应用程序 > 附件 > 截图 > 抓取整个桌面 > 延迟 5 秒后抓取(例如)

替代文本

  • 选择应用程序菜单。等待。

答案2

事实上,它可以不延迟地完成此操作,但需要一些技巧。我编写了一个小脚本,可让您不延迟地完成此操作。这是一个很大的技巧,但它有效,并且(对我来说)肯定比使用延迟更可取。

#!/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 上),你需要确保已经新输入解除缓冲。只需执行以下操作:

sudo apt-get install xinput expect-dev

然后您可以运行该脚本。首先使用 -h 选项运行它以查看可能的配置选项。默认情况下,该脚本只能运行一次,并且您必须在每次截图后重新启动脚本(例如通过键盘快捷键)。这是因为该脚本可能会影响性能。如果您想将其作为“守护进程”运行,请使用该选项运行它-d

默认情况下,它也会使用快门。如果你想使用其他东西,请使用选项-e,例如script.sh -c "ksnapshot"

默认情况下,捕获按钮为Meta+ R。您可以使用配置选项进行更改。

答案3

因为您想知道是否也可以使用 Shutter......

快门图标 快门,打开并选择全屏从工具栏或文件>新的>全屏

确保设置了时间延迟,以便有足够的时间打开应用程序菜单(编辑>优先>主要的选项卡;底部有一个选择框:延迟 __ 秒后捕获)。

替代文本

答案4

快速答案/解决方法

适合中高级 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 大师又近了一步,希望这个回答对你有帮助*

相关内容