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.
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.jpeg
dan 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-0
dengan <your_second_screenname>
(jalankan perintah xrandr
jika 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.jpeg
Anda 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.