चाल
मुख्य स्क्रीन और दूसरी स्क्रीन के लिए अलग से वॉलपेपर सेट करना असंभव लगता है। हालाँकि, वॉलपेपर सेट करने के लिए क्या किया जा सकता है और क्या यह दो स्क्रीन पर फैला है। हम स्वचालित रूप से आपकी पसंद के दो वॉलपेपर की एक फैले हुए छवि बना सकते हैं और (स्वचालित रूप से) वॉलपेपर और चित्र विकल्पों को स्विच कर सकते हैं, यह निर्भर करता है कि दूसरी स्क्रीन कनेक्ट है या नहीं।
इसे अच्छा दिखने के लिए, यह आवश्यक है कि दोनों स्क्रीन के कम से कम ऊर्ध्वाधर स्क्रीन रिज़ॉल्यूशन समान हो, जो आपकी स्थिति में मामला है।
प्रयोग में
तैयारी
इस समाधान में, आपको जो काम करना है, वह है:
सबसे पहले, स्वचालित रूप से फैले चित्र बनाने के लिए इमेजमैगिक स्थापित करें:
sudo apt-get install imagemagick
दोनों स्क्रीन के लिए अपनी पसंद की दो अलग पृष्ठभूमि चित्र तैयार करें:
- आयाम स्क्रीन के आयामों से बिल्कुल मेल खाना चाहिए (आपके मामले में 16: 9)
- दोनों छवियों का ऊर्ध्वाधर रिज़ॉल्यूशन बिल्कुल समान होना चाहिए।
उन्हें कॉल करें screen_1.jpeg
और screen_2.jpeg
(बिल्कुल उन नामों)। एक स्क्रिप्ट फैले हुए चित्र बनाएगी।
अपने होम डायरेक्टरी में एक फोल्डर बनाएं और दोनों इमेज को फोल्डर में कॉपी करें।
नीचे दी गई स्क्रिप्ट को एक खाली फ़ाइल में कॉपी करें और इसे auto_wall.py
तैयार करें, साथ में आपके द्वारा तैयार की गई दो छवियों के साथ।
स्क्रिप्ट के मुख्य भाग में, एक पंक्ति है:
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 पर परीक्षण किया, और इसने पूरी तरह से काम किया। तथ्य यह है कि आप सूक्ति का उपयोग करें फर्क नहीं करना चाहिए।
एक मुख्य संयोजन के साथ मैन्युअल रूप से वॉलपेपर सेटिंग्स स्विच करना
अगर, किसी कारण से, आप बाहरी मॉनिटर को कनेक्ट / डिस्कनेक्ट करने के बाद मैन्युअल रूप से वॉलपेपर पर स्विच करना पसंद करेंगे, तो आप अंतिम तीन लाइनों को बदल सकते हैं:
while True:
arrange()
time.sleep(5)
एक पंक्ति द्वारा:
arrange()
और स्विच करने के लिए एक कीबोर्ड शॉर्टकट जोड़ें: "सिस्टम सेटिंग्स"> "कीबोर्ड"> "शॉर्टकट"> "कस्टम शॉर्टकट"
कमांड जोड़ें:
python3 /path/to/auto_wall.py
अपनी पसंद के एक प्रमुख संयोजन के लिए।