Numara
Ana ekran ve ikinci ekran için ayrı ayrı duvar kağıtları ayarlamak imkansız görünüyor. Ne olabilir ancak alınacak bir duvar kağıdı ayarlamak ve iki ekranlarında üzerinde yayılmış sahip olmaktır. Seçtiğiniz iki duvar kağıdının otomatik olarak yayılan bir görüntüsünü oluşturabilir ve ikinci ekranın bağlı olup olmamasına bağlı olarak duvar kağıdını ve resim seçeneklerini de (otomatik olarak) değiştirebiliriz.
Güzel görünmesi için, her iki ekranın en azından dikey ekran çözünürlüğünün aynı olması gerekir, bu da durumunuzda geçerlidir.
Uygulamada
Hazırlık
Bu çözümde, yapmanız gereken hazırlama işi:
İlk olarak, yayılan resmi otomatik olarak oluşturmak için imagemagick'i yükleyin:
sudo apt-get install imagemagick
Her iki ekran için de seçtiğiniz iki ayrı arka plan görüntüsü hazırlayın:
- Boyutlar , ekranın boyutlarıyla tam olarak eşleşmelidir (sizin durumunuzda 16: 9)
- Her iki görüntünün dikey çözünürlüğü de tamamen aynı olmalıdır.
diyoruz screen_1.jpeg
ve screen_2.jpeg
(tam olarak bu isimleri). Bir komut dosyası yayılan görüntüyü oluşturur.
Ana dizininizde bir klasör oluşturun ve her iki görüntüyü de klasöre kopyalayın.
Aşağıdaki komut dosyasını boş bir dosyaya kopyalayın ve auto_wall.py
hazırladığınız iki resim ile birlikte kaydedin .
Komut dosyasının baş bölümünde bir satır vardır:
screen_check = "HDMI-0 connected"
Gerekirse değiştirin HDMI-0
tarafından <your_second_screenname>
(komutu çalıştırmak xrandr
öğrenmek için gerekirse)
Komutu kullanarak komut dosyasını çalıştırın (ve arka planda çalışmaya devam edin):
python3 /path/to/auto_wall.py
Şimdi ikinci ekranınızı bağlarsanız, ikinci ekranınızdaki duvar kağıdı screen_2.jpeg
hazırladığınız birkaç saniye içinde değişmelidir .
- Her şey yolunda giderse, başlangıç uygulamalarınıza ekleyin.
Senaryo
#!/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)
Görüntüleri değiştirme
Duvar kağıdını / duvarlarını değiştirmek istiyorsanız, klasöre kopyaladığınız görüntülerden birini veya her ikisini değiştirin (ancak adı unutmayın) ve span_image.jpeg
komut dosyası tarafından oluşturulan.
Ubuntu 14.04 ve 14.10'da test ettim ve mükemmel çalıştı. Gnome'u kullanmanız bir fark yaratmamalıdır.
Tuş kombinasyonuyla duvar kağıdı ayarlarını manuel olarak değiştirme
Herhangi bir nedenle, harici monitörü bağladıktan / çıkardıktan sonra yayılmış duvar kağıdına manuel olarak geçmeyi tercih ederseniz, son üç satırı değiştirebilirsiniz:
while True:
arrange()
time.sleep(5)
tek bir satırla:
arrange()
ve geçiş yapmak için bir klavye kısayolu ekleyin: "Sistem Ayarları"> "Klavye"> "Kısayollar"> "Özel Kısayollar"
Komutu ekleyin:
python3 /path/to/auto_wall.py
istediğiniz bir tuş kombinasyonuna.