私はよくshutter
でスクリーンショットを撮り、他のアプリケーションでスクリーンレコーディングを行います。また、デスクトップの写真をプライベートなものに設定して、スクリーンキャストやスクリーンショットを見ている人に見せたくない場合もあります...だから私はデスクトップ画像を一時的に変更する必要があり、これはかなり面倒になります...それで、画面キャプチャアプリケーションが実際に設定したものとは異なるデスクトップ画像を表示するようにする方法があるかどうか疑問に思いました。デスクトップの画像を変更する必要はありませんが、キャプチャアプリケーションは、指定した別の画像として表示しますか?すべてのスクリーンキャプチャアプリケーションではないにしても、少なくともshutter
にはそれが欲しいです。
GNOME3.18でUbuntuGNOME15.10を実行しています。
文字通りあなたが求めたものではありませんが、私が見る限り、最良のオプションです:あなたの通常の壁紙(スクリプトが見つける)とを切り替えるためのキーショートカットとスクリプトの先頭に設定する、事前に選択された壁紙。
私の秘密の壁紙:(人々に見られたくない):)
ショートカットを押すと、「公開」壁紙が設定されます。スクリーンショットを撮る:
ショートカットをもう一度押します:
Shutter
を継続的に実行するため、およびパネルメニューからコマンドを実行すると、トリガーを見つけることが不可能のようです。 pid
のShutter
は明らかにそうではなく、メニューはwmctrl -l
の出力にウィンドウとして表示されません。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)
toggle_wallpaper.py
として保存しますスクリプトのヘッドセクションで、通常の壁紙を置き換えるセカンダリ壁紙を設定します。
# --- set your replacement- wallpaper below
image = "/path/to/your/image"
# ---
次のコマンドを使用してスクリプトをテスト実行します。
python_3 /path/to/toggle_wallpaper.py
(セカンダリを設定し、元の壁紙を復元するために2回)
コマンドをショートカットキーに追加します。次を選択します。 System Settings → Keyboard → Shortcuts → Custom Shortcuts。クリック + 次のコマンドを追加します。
python_3 /path/to/toggle_wallpaper.py