AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 15639
Accepted
karthick87
karthick87
Asked: 2010-12-01 22:59:55 +0800 CST2010-12-01 22:59:55 +0800 CST 2010-12-01 22:59:55 +0800 CST

如何使用应用程序菜单选择截取整个桌面?

  • 772

我想通过应用程序菜单选择截取整个桌面的屏幕截图。如何执行此操作?

screenshot
  • 8 8 个回答
  • 3003 Views

8 个回答

  • Voted
  1. Best Answer
    Sid
    2010-12-01T23:10:52+08:002010-12-01T23:10:52+08:00
    • Applications > Accessories > Take Screenshot > Grab the entire desktop > Grab after a delay of : 5 seconds (say)

    替代文字

    • 做你的应用程序菜单选择。等待。
    • 23
  2. Wattos
    2012-05-25T06:05:09+08:002012-05-25T06:05:09+08:00

    实际上,可以毫不拖延地做到这一点,但需要一些技巧。我写了一个小脚本,可以让你毫不拖延地做到这一点。这是一个很大的技巧,但它确实有效,而且(对我而言)肯定比使用延迟更可取。

    #!/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 上),您需要确保您有xinput和unbuffer。为此,只需执行以下操作:

    sudo apt-get install xinput expect-dev
    

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

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

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

    • 5
  3. Firefeather
    2010-12-18T17:53:55+08:002010-12-18T17:53:55+08:00

    因为你想知道快门是否也可以......

    要在快门图标 Shutter中执行此操作,请将其打开并从工具栏或File > New > Fullscreen中选择Full Screen。

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

    替代文字

    • 4
  4. Mitch
    2012-06-19T03:14:02+08:002012-06-19T03:14:02+08:00

    是的。打开屏幕截图,并设置您认为返回并打开菜单所需的任何时间的延迟。保持打开状态,直到拍摄完成。

    在此处输入图像描述

    • 2
  5. JorgeArtware
    2014-06-26T14:18:11+08:002014-06-26T14:18:11+08:00

    快速回答/解决方法

    (适用于中高级 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 大师,我希望这个答案有帮助 *

    • 2
  6. Tinellus
    2012-06-19T03:13:41+08:002012-06-19T03:13:41+08:00

    使用屏幕截图(在附件中)并设置“延迟 xx 秒后抓取”。

    为我工作

    • 1
  7. Anwar
    2012-06-19T03:14:03+08:002012-06-19T03:14:03+08:00

    我找到了解决方法,而不是实际的解决方案。

    打开Screenshot应用程序,在打开的窗口中,将时间设置为Grab after a delay of x seconds。

    注意:这不能用于抓取窗口的特定部分。

    注意:对不起,也不能将Screenshot应用程序本身的屏幕截图作为窗口或抓取特定部分。

    • 1
  8. tpei
    2012-06-19T03:37:17+08:002012-06-19T03:37:17+08:00

    我不会说这是一个错误。可以使用“屏幕截图”工具并将“延迟 x 秒后抓取”设置为您需要重新打开菜单的时间。

    • 0

相关问题

  • 如何截取屏幕部分的屏幕截图?

  • 如何定义一个快捷键来抓取部分屏幕?

  • 使用快门时是否必须停用或卸载 gnome-screenshot?

  • 有哪些截图工具可用?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve