複数のモニター上の異なる壁紙


16

私はラップトップとモニターを持っています。ほとんどの場合、ラップトップはHDMI経由でモニターに接続されます。私はUbuntu Gnome 14.04を使用していますが、ここに私が欲しいものがあります:

  • モニターが接続されていないとき、シンプルな背景画像が欲しい
  • モニターが接続されているとき、ラップトップとモニターに別の背景画像を配置したいと思います。

それは可能ですか?この質問窒素を見つけました。しかし、両方とも助けにはなりませんでした。

編集:

gnome-tweak-toolを実行した後、左側のパネルの[デスクトップ]タブに移動し、[ファイルマネージャーにデスクトップを処理させる]設定をオフにします。

出典:Ubuntuのフォーラム

残念ながら、Gnome-Tweak-Toolでこれを見つけることができません。 gnome-tweak-tool

dconf-editorunder を使用して同じ構成を見つけようとしましたorg.gnome.desktop.backgroundが、それは次のとおりでした:

概要:デスクトップの背景を描画
説明:GNOMEにデスクトップの背景を描画させます。非推奨:このキーは非推奨と無視されます。

私もgnome-shell --versionですGNOME Shell 3.10.4

この要点にはの出力がありxrandrます。1つ目は、2番目のモニターを接続した状態です。2番目はそれなしです。


Nitrogenを使用しているときに、ファイルマネージャーがデスクトップを渡さないようにしましたか?
カズウルフ14

Gnome-Tweak-Toolでオプションを見つけることができなくなりました。質問に追加情報を追加しました。それが役に立てば幸い
BYF-ferdy

@Whaaaaaatニトロは13.10以下のみです:/
blade19899 14年

私は何かを得たと思う、あなたの画面の解像度は何ですか?
ジェイコブVlijm 14年

両方とも1920x1080(16:9)。ラップトップは19インチ、モニター27インチです。
BYF-ferdy

回答:


10

トリック

メイン画面とセカンド画面に別々に壁紙を設定することは不可能のようです。どのようなことができますが行われることは、壁紙を設定し、それは二つの画面の上にまたがることです。選択した2つの壁紙のスパニングイメージを自動的に作成し、2番目の画面が接続されているかどうかに応じて、壁紙と画像オプションを自動的に切り替えることができます。
見栄えを良くするには、少なくとも両方の画面の垂直画面解像度が同じであることが必要です。これはあなたの状況に当てはまります。

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

実際には

準備

このソリューションでは、次の準備作業が必要です。

  • まず、imagemagickをインストールして、自動的にスパニングイメージを作成します。

    sudo apt-get install imagemagick
    
  • 両方の画面に、選択した2つの個別の背景画像を準備します。

    • 寸法は、画面の寸法と完全に一致する必要あります(あなたの場合は16:9)
    • 両方の画像の垂直解像度は正確に同じでなければなりません。

    それらscreen_1.jpegを呼び出してscreen_2.jpeg(正確にそれらの名前)。スクリプトがスパニングイメージを作成します。

  • ホームディレクトリにフォルダーを作成し、両方の画像をそのフォルダーにコピーします。

  • 以下のスクリプトを空のファイルにコピーし、auto_wall.py準備した2つの画像とともにとして保存します。

  • スクリプトのヘッドセクションには、次の行があります。

    screen_check = "HDMI-0 connected"
    

    必要に応じて、交換するHDMI-0ことにより、<your_second_screenname>(コマンドを実行するxrandr必要かどうかを調べるために)

次のコマンドでスクリプトを実行します(バックグラウンドで実行し続けます)。

python3 /path/to/auto_wall.py

セカンドスクリーンを接続すると、セカンドスクリーンの壁紙が数秒以内に切り替わりますscreen_2.jpeg

  • すべてが正常に機能する場合は、スタートアップアプリケーションに追加します。

スクリプト

#!/usr/bin/env python3

import subprocess
import os
import time

curr_dir = os.path.dirname(os.path.abspath(__file__))
screen_check = "HDMI-0 connected"

single_picture = "'file://"+curr_dir+"/screen_1.jpeg'"
double_picture = "'file://"+curr_dir+"/span_image.jpeg'"

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

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

def switch_tosingle():
    execute_set("gsettings set org.gnome.desktop.background picture-uri "+single_picture)
    execute_set("gsettings set org.gnome.desktop.background picture-options zoom")

def switch_todouble():
    if not os.path.exists(double_picture):
        create_spanimage()
    execute_set("gsettings set org.gnome.desktop.background picture-uri "+double_picture)
    execute_set("gsettings set org.gnome.desktop.background picture-options spanned")

def create_spanimage():
    image_1 = curr_dir+"/"+"screen_1.jpeg"
    image_2 = curr_dir+"/"+"screen_2.jpeg"
    span_image = curr_dir+"/"+"span_image.jpeg"
    execute_set("convert "+image_1+" "+image_2+" "+"+append "+span_image)

def check_ifconnected():
    command = "xrandr"
    check = execute_get(command)
    if screen_check in check:
        return True

def check_wallpaper():
    check = execute_get("gsettings get org.gnome.desktop.background picture-uri")
    if check == single_picture:
        return "single"
    elif check == double_picture:
        return "double"

def arrange():
    test = (check_ifconnected(), check_wallpaper())
    if test == (True, "double") or test == (False, "single"):
        pass
    elif test[0] == True:
        switch_todouble()
    else:
        switch_tosingle()

while True:
    arrange()
    time.sleep(5)

画像の置き換え

壁紙を変更する場合は、フォルダーにコピーした画像の一方または両方を置き換えて(名前に注意して)span_image.jpeg、スクリプトによって作成されたを削除します。

Ubuntu 14.04と14.10でテストしましたが、完全に機能しました。Gnomeを使用するという事実は、違いを生むべきではありません。

キーの組み合わせで壁紙の設定を手動で切り替える

何らかの理由で、外部モニターの接続/切断後にスパンド壁紙に手動で切り替える場合は、最後の3行を置き換えることができます。

while True:
    arrange()
    time.sleep(5)

一行で:

arrange()

切り替えを行うためのキーボードショートカットを追加します:「システム設定」>「キーボード」>「ショートカット」>「カスタムショートカット」

コマンドを追加します。

python3 /path/to/auto_wall.py

お好みのキーの組み合わせに。


これはすごいですね。できるだけ早くチェックしてお知らせします!とにかく仕事をありがとう!
byf-ferdy 14年

@ byf-ferdy oops、スクリプトに自分の(テスト)ディレクトリを誤って残してしまいましたが、今では修正しました。
ジェイコブVlijm 14年

すごい仕事!完璧に機能します!
BYF-ferdy

1
いい質問ありがとうございます!これは私がやりたいことです。
ジェイコブVlijm

1

上記の回答に加えて、このサービスを使用して、2つの正確なサイズの画像を結合できます:http : //www.photojoiner.net/

2つ以上の画像を結合した後、背景設定ページで「スパン」オプションを選択する必要があります。

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