Wallpaper berbeda di beberapa monitor

16

Saya punya laptop dan monitor. Sebagian besar waktu laptop saya terhubung ke monitor melalui HDMI. Saya menggunakan Ubuntu Gnome 14.04 dan inilah yang saya inginkan:

  • Ketika tidak ada monitor yang terhubung saya ingin gambar latar belakang yang sederhana
  • Ketika monitor terhubung, saya ingin memiliki gambar latar belakang yang sama di laptop saya dan yang lain di monitor saya.

Apakah itu mungkin? Saya menemukan pertanyaan ini juga nitrogen . Tapi keduanya tidak membantu saya.

Edit:

Setelah menjalankan gnome-tweak-tool, buka tab "Desktop" di panel sisi kiri dan kemudian matikan pengaturan "Minta manajer file menangani desktop".

Sumber: Forum Ubuntu .

Sayangnya saya tidak dapat menemukan ini di Alat Gnome-Tweak saya: gnome-tweak-tool

Saya mencoba menemukan konfigurasi yang sama menggunakan di dconf-editorbawah org.gnome.desktop.backgroundtetapi semua yang dikatakannya adalah:

Rangkuman: Draw Desktop Background
Deskripsi: Minta GNOME menggambar latar desktop. TERGANGGU : Kunci ini sudah usang dan diabaikan.

Saya gnome-shell --versionjuga GNOME Shell 3.10.4.

Di intinya adalah output dari xrandr. Yang pertama adalah dengan monitor kedua terhubung. Yang kedua tanpa itu.

byf-ferdy
sumber
Saat menggunakan Nitrogen, apakah Anda menonaktifkan manajer file dari menyerahkan desktop?
Kaz Wolfe
Saya tidak dapat menemukan opsi di Alat Gnome-Tweak lagi. Saya telah menambahkan informasi tambahan ke pertanyaan saya. Semoga bisa membantu
byf-ferdy
@Whaaaaaat nitro hanya untuk 13.10 dan lebih rendah : /
blade19899
Saya pikir saya punya sesuatu, apa resolusi layar Anda?
Jacob Vlijm
keduanya 1920x1080 (16: 9). Laptop 19 '' Saya pikir, Monitor 27 ''.
byf-ferdy

Jawaban:

10

Trik-nya

Tampaknya mustahil untuk mengatur wallpaper secara terpisah untuk layar utama dan layar kedua. Apa yang bisa dilakukan adalah mengatur wallpaper, dan membentang di dua layar. Kami dapat secara otomatis membuat gambar yang merentang dari dua wallpaper pilihan Anda dan (juga secara otomatis) mengganti wallpaper dan opsi gambar, tergantung pada apakah layar kedua terhubung atau tidak.
Untuk membuatnya terlihat bagus, perlu bahwa setidaknya resolusi layar vertikal dari kedua layar adalah identik, yang merupakan kasus dalam situasi Anda.

masukkan deskripsi gambar di sini

Dalam praktek

Persiapan

Dalam solusi ini, pekerjaan persiapan yang harus Anda lakukan adalah:

  • Pertama, instal imagemagick untuk membuat gambar merentang secara otomatis:

    sudo apt-get install imagemagick
    
  • Siapkan dua gambar latar belakang terpisah pilihan Anda untuk kedua layar:

    • Dimensi harus sama persis dengan dimensi layar (16: 9 dalam casing Anda)
    • The vertikal resolusi kedua gambar harus persis sama.

    panggil mereka screen_1.jpegdan screen_2.jpeg(tepatnya nama-nama itu). Sebuah skrip akan membuat gambar yang merentang.

  • Buat folder di direktori home Anda dan salin kedua gambar ke dalam folder.

  • Salin skrip di bawah ini ke dalam file kosong dan simpan sebagai auto_wall.py, bersama dengan dua gambar yang Anda siapkan.

  • Di bagian kepala skrip, ada baris:

    screen_check = "HDMI-0 connected"
    

    jika perlu, ganti HDMI-0dengan <your_second_screenname>(jalankan perintah xrandrjika perlu untuk mencari tahu)

Jalankan skrip (dan tetap jalankan di latar belakang) dengan perintah:

python3 /path/to/auto_wall.py

Sekarang jika Anda menghubungkan layar kedua Anda, wallpaper di layar kedua Anda akan beralih dalam beberapa detik untuk screen_2.jpegAnda siapkan.

  • Jika semuanya bekerja dengan baik, tambahkan ke aplikasi startup Anda.

Naskah

#!/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)

Mengganti gambar

Jika Anda ingin mengganti wallpaper, ganti saja satu atau kedua gambar yang Anda salin ke folder (tapi ingat namanya) dan hapus span_image.jpeg, yang dibuat oleh skrip.

Saya mengujinya di Ubuntu 14.04 dan 14.10, dan itu bekerja dengan sempurna. Fakta bahwa Anda menggunakan Gnome seharusnya tidak membuat perbedaan.

Mengubah pengaturan wallpaper secara manual dengan kombinasi tombol

Jika, karena alasan tertentu, Anda lebih memilih untuk beralih ke wallpaper terentang secara manual setelah menghubungkan / melepaskan monitor eksternal, Anda dapat mengganti tiga baris terakhir:

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

dengan satu baris:

arrange()

dan tambahkan pintasan keyboard untuk melakukan sakelar: "Pengaturan Sistem"> "Keyboard"> "Pintasan"> "Pintasan Khusus"

Tambahkan perintah:

python3 /path/to/auto_wall.py

ke kombinasi kunci pilihan Anda.

Yakub Vlijm
sumber
Ini terlihat luar biasa. Saya akan memeriksanya secepat mungkin dan memberi tahu Anda! Bagaimanapun, terima kasih untuk pekerjaannya!
byf-ferdy
@ byf-ferdy oops, tanpa sengaja meninggalkan direktori (pengujian) saya sendiri dalam skrip, perbaiki sekarang.
Jacob Vlijm
Kerja bagus! Itu bekerja dengan sempurna!
byf-ferdy
1
Terima kasih atas pertanyaannya! Ini yang ingin saya lakukan.
Jacob Vlijm
1

Selain jawaban di atas, Anda dapat menggabungkan dua gambar berukuran persis dengan menggunakan layanan ini: http://www.photojoiner.net/

Setelah Anda bergabung dengan dua atau lebih gambar, Anda harus memilih opsi "span" di halaman pengaturan latar belakang.

onesvat
sumber