web-dev-qa-db-ja.com

スクリーンキャプチャアプリケーションに別のデスクトップイメージを表示するにはどうすればよいですか?

私はよくshutterでスクリーンショットを撮り、他のアプリケーションでスクリーンレコーディングを行います。また、デスクトップの写真をプライベートなものに設定して、スクリーンキャストやスクリーンショットを見ている人に見せたくない場合もあります...だから私はデスクトップ画像を一時的に変更する必要があり、これはかなり面倒になります...それで、画面キャプチャアプリケーションが実際に設定したものとは異なるデスクトップ画像を表示するようにする方法があるかどうか疑問に思いました。デスクトップの画像を変更する必要はありませんが、キャプチャアプリケーションは、指定した別の画像として表示しますか?すべてのスクリーンキャプチャアプリケーションではないにしても、少なくともshutterにはそれが欲しいです。

GNOME3.18でUbuntuGNOME15.10を実行しています。

1
user364819

壁紙を切り替えます

文字通りあなたが求めたものではありませんが、私が見る限り、最良のオプションです:あなたの通常の壁紙(スクリプトが見つける)とを切り替えるためのキーショートカットとスクリプトの先頭に設定する、事前に選択された壁紙。

私の秘密の壁紙:(人々に見られたくない):)

Wubuntu

ショートカットを押すと、「公開」壁紙が設定されます。スクリーンショットを撮る:

Froggy

ショートカットをもう一度押します:

Wubuntu

これが最良の選択肢と思われる理由

  • あなたの質問では、スクリーンショット(または記録)の壁紙を別の壁紙に自動的に「置き換える」ことに言及しています。ただし、あなたが言及するすべてのアプリケーションは、ピクセルの1つのレイヤーで記録を行います。壁紙と前景を分離することは、手動で行わない限り、まったく不可能です(これは大変な作業です)。
  • コメントでは、スクリーンショットが撮られると自動的に別の壁紙を設定することについて話しましたが、バックグラウンドでShutterを継続的に実行するため、およびパネルメニューからコマンドを実行すると、トリガーを見つけることが不可能のようです。 pidShutterは明らかにそうではなく、メニューはwmctrl -lの出力にウィンドウとして表示されません。
  • ifでさえ、スクリーンショットが取られると、Shutterの子プロセスを見つけることができたとしても、壁紙を変更する前にアクションが実行されます。

そう...

ショートカットキーの下で使用するスクリプトの下で、壁紙を切り替えます。

#!/usr/bin/env python3
import subprocess
import os

# --- set your replacement- wallpaper below
image = "/path/to/your/image"
# ---

currwall = os.environ["HOME"] + "/.set_wall"
key = [
    "gsettings ",
    "get ", "set ",
    "org.gnome.desktop.background picture-uri",
    ]

def get(command):
    return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()

def run(command):
    subprocess.Popen(["/bin/bash", "-c", command])

if not os.path.exists(currwall):
    # save the (path to the) currently used wallpaper to an invisible file
    cmd = key[0]+key[1]+key[-1]
    open(currwall, "wt").write(get(cmd))
    # set the temporary wallaper
    cmd = key[0]+key[2]+key[-1]+" 'file://"+image+"'"
else:
    # read the file, restore the original wallpaper
    cmd = key[0]+key[2]+key[-1]+" "+open(currwall).read()
    # remove the temporary file
    os.remove(currwall)
run(cmd)

使い方

  1. スクリプトを空のファイルにコピーし、toggle_wallpaper.pyとして保存します
  2. スクリプトのヘッドセクションで、通常の壁紙を置き換えるセカンダリ壁紙を設定します。

    # --- set your replacement- wallpaper below
    image = "/path/to/your/image"
    # ---
    
  3. 次のコマンドを使用してスクリプトをテスト実行します。

    python_3 /path/to/toggle_wallpaper.py
    

    (セカンダリを設定し、元の壁紙を復元するために2回)

  4. コマンドをショートカットキーに追加します。次を選択します。 System Settings → Keyboard → Shortcuts → Custom Shortcuts。クリック + 次のコマンドを追加します。

    python_3 /path/to/toggle_wallpaper.py
    
0
Jacob Vlijm