アプリメニューを選択してデスクトップ全体のスクリーンショットを撮る方法は?


13

アプリケーションメニューを選択してデスクトップ全体のスクリーンショットを撮りたいのですが、どうすればよいですか?

回答:


20
  • [アプリケーション]> [アクセサリ]> [スクリーンショットを撮る]> [デスクトップ全体をつかむ]> 5秒後にグラブする(たとえば)

代替テキスト

  • [アプリケーション]メニューを選択します。待つ。

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

(ubuntuで)実際にスクリプトを使用する前に、xinputunbufferがあることを確認する必要があります。それを行うには、次のようにします。

sudo apt-get install xinput expect-dev

その後、スクリプトを実行できます。最初に-hオプションを指定して実行し、可能な構成オプションを確認します。デフォルトでは、スクリプトは1回だけ動作し、スクリーンショットごとにスクリプトを再起動する必要があります(キーボードショートカットなど)。これは、スクリプトのパフォーマンスが損なわれる可能性があるためです。「デーモン」として実行する場合は、-dオプションを指定して実行します。

デフォルトでは、シャッターも使用します。他の何かを使用したい場合は、-eオプションをます。例えばscript.sh -c "ksnapshot"

デフォルトでは、キャプチャボタンはMeta+になりRます。設定オプションでそれを変更できます。


4

シャッターでも可能かどうか疑問に思っていたので...

でそれを行うにはシャッターアイコン シャッター、それを開いて、選択フルスクリーンツールバーのいずれかからかからファイル ]> [ 新規作成 ]> [ フルスクリーン

アプリケーションメニュー([ 編集] > [ 設定] > [ メイン ]タブ。下部に、__秒の遅延後にキャプチャする選択ボックスがあります)を開くのに十分な時間があるように、遅延時間を設定してください。

代替テキスト


2

はい。スクリーンショットを開き、戻ってメニューを開くのに必要な時間を設定します。ショットが撮影されるまで開いたままにします。

ここに画像の説明を入力してください


2

迅速な回答/回避策

中級から上級の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/パス上にあり、「ターミナル」(teletype、tty、cli、コマンドライン/プロンプト)から使用できるので、ファンキーに合わせてあらゆる方法で使用できます。目的。

gnome-screenshot小さなプログラムは、オプションのパラメータを受け取り、あなたが助けを求めるために、標準的なパラメータを渡すことによって、すべてのオプションを見ることができ、あなたが(1を知っています-h

ここに画像の説明を入力してください

使い方がまだわからない場合は、いつでも詳細なヘルプを読むことができます。手動入力を求めるだけです。 man gnome-screenshot

ここに画像の説明を入力してください

完全なマニュアルを読めば読むほど、ニーズに合わせてubuntuをハッキングすると直感的になり、他の人にステップバイステップの指示を与える必要がなくなります。たぶんこの時点で、あなたは自分でこの回避策を講じる方法を知っているかもしれません。

手順:

  • ステップ0:Ubuntuのシステム設定を開き、キーボードオプションに移動します。

ここに画像の説明を入力してください

  1. 案内する Shortcutsタブに移動ます。
  2. 選択する Custom Shortcuts
  3. ヒット +新しいカスタムショートカットを追加するボタンを。
  4. 名前とコマンドを指定します。
    (上記の「高速回答」で説明したように)
    4½。希望するキーの組み合わせを割り当てます。
  5. このウィンドウを閉じるか、機能しません。

ここに画像の説明を入力してください

*プレスト!
あなたはubuntuマスターになるためにさらに一歩進んだだけです。この答えが参考になったと思います*


いいね!キーボードで起動されるスクリーンショットにデフォルトの遅延を設定するというアイデアが好きです。
jgomo3 14

ええ、結局のところ、ドロップダウンメニューのスクリーンショットを撮るだけでなく、いくつかのユースケースがあります。
JorgeArtware 14

1

スクリーンショット(アクセサリ内)を使用して、「xx秒後にグラブ」を設定します。

私のために働いた


1

実際の解決策ではなく、これに対する回避策を見つけました。

Screenshotアプリケーションを開き、開いたウィンドウで、x秒の遅延後にGrabとして時間を設定します。

注:これは、ウィンドウの特定の部分を取得するためには使用できません。

注:申し訳ありませんが、スクリーンショットアプリケーション自体のスクリーンショットをウィンドウとして取得したり、特定の部分を取得したりすることはできません。


0

バグだとは言いません。「スクリーンショット」ツールを使用して、「x秒の遅延後にグラブ」をメニューを再び開く必要がある時間に設定することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.