कई मॉनिटर पर अलग वॉलपेपर


16

मेरे पास एक लैपटॉप और एक मॉनिटर है। ज्यादातर समय मेरा लैपटॉप एचडीएमआई से अधिक मॉनिटर से जुड़ा होता है। मैं Ubuntu Gnome 14.04 का उपयोग करता हूं और यहां मैं चाहता हूं:

  • जब कोई मॉनिटर नहीं जुड़ा होता है तो मैं एक साधारण पृष्ठभूमि छवि चाहता हूं
  • जब मॉनिटर कनेक्ट होता है, तो मैं अपने लैपटॉप पर एक ही बैकग्राउंड इमेज और मेरे मॉनिटर पर एक और एक होना चाहूंगा।

क्या यह संभव है? मैंने पाया इस सवाल के साथ ही नाइट्रोजन । लेकिन दोनों ने मेरी मदद नहीं की।

संपादित करें:

गनोम-ट्वीक-टूल को चलाने के बाद, बाईं ओर के पैनल में "डेस्कटॉप" टैब पर जाएं और फिर "फ़ाइल प्रबंधक को हैंडल करें डेस्कटॉप" सेटिंग को बंद करें।

स्रोत: उबंटू मंच

दुर्भाग्य से मैं अपने ग्नोम-ट्वीक-टूल में इसे खोजने में असमर्थ हूं: सूक्ति-ट्वीक-उपकरण

मैंने उसी विन्यास का उपयोग करने की कोशिश की dconf-editorजिसके तहत org.gnome.desktop.backgroundयह कहा गया था:

सारांश: डेस्कटॉप पृष्ठभूमि ड्रा करें: डेस्कटॉप पृष्ठभूमि को
GNOME ड्रा करें। परिभाषित : इस कुंजी को पदावनत और उपेक्षित किया गया है।

मेरा भी gnome-shell --versionहै GNOME Shell 3.10.4

इस gist का आउटपुट है xrandr। पहला एक दूसरे मॉनिटर से जुड़ा हुआ है। दूसरा इसके बिना है।


नाइट्रोजन का उपयोग करते समय, क्या आपने डेस्कटॉप को हाथ लगाने से फ़ाइल प्रबंधक को अक्षम कर दिया था?
कज़ वुल्फ

मुझे Gnome-Tweak-Tool में कोई विकल्प नहीं मिल रहा था। मैंने अपने प्रश्न में अतिरिक्त जानकारी जोड़ी है। आशा है कि यह मदद करता है
बाई-फेरडी

@Whaaaaaat नाइट्रो केवल 13.10 और निम्न के लिए है : /
ब्लेड19899

मुझे लगता है कि मुझे कुछ मिला है, आपकी स्क्रीन के संकल्प क्या हैं?
जैकब वल्जिम

दोनों 1920x1080 (16: 9)। लैपटॉप 19 '' मुझे लगता है, मॉनिटर 27 '' है।
बाईफ-फेरडी

जवाबों:


10

चाल

मुख्य स्क्रीन और दूसरी स्क्रीन के लिए अलग से वॉलपेपर सेट करना असंभव लगता है। हालाँकि, वॉलपेपर सेट करने के लिए क्या किया जा सकता है और क्या यह दो स्क्रीन पर फैला है। हम स्वचालित रूप से आपकी पसंद के दो वॉलपेपर की एक फैले हुए छवि बना सकते हैं और (स्वचालित रूप से) वॉलपेपर और चित्र विकल्पों को स्विच कर सकते हैं, यह निर्भर करता है कि दूसरी स्क्रीन कनेक्ट है या नहीं।
इसे अच्छा दिखने के लिए, यह आवश्यक है कि दोनों स्क्रीन के कम से कम ऊर्ध्वाधर स्क्रीन रिज़ॉल्यूशन समान हो, जो आपकी स्थिति में मामला है।

यहाँ छवि विवरण दर्ज करें

प्रयोग में

तैयारी

इस समाधान में, आपको जो काम करना है, वह है:

  • सबसे पहले, स्वचालित रूप से फैले चित्र बनाने के लिए इमेजमैगिक स्थापित करें:

    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

अपनी पसंद के एक प्रमुख संयोजन के लिए।


यह अद्भुत लग रहा है। जैसे ही मैं कर सकता हूं और आपको बता देता हूं कि आप इसे देख लें! किसी भी तरह काम के लिए धन्यवाद!
18:01 बजे बाईफ़-फ़ेरी

@ byf-ferdy उफ़, गलती से स्क्रिप्ट में अपनी खुद की (परीक्षण) निर्देशिका छोड़ दी, अब इसे ठीक कर दिया।
जैकब व्लिजम

अच्छा कार्य! यह पूरी तरह से काम करता है!
बाईफ-फेरडी

1
अच्छे प्रश्न के लिए धन्यवाद! मुझे यही करना अच्छा लगता है।
जैकब वल्जिम

1

उपरोक्त उत्तर के अलावा, आप इस सेवा का उपयोग करके दो सटीक आकार की छवियों को जोड़ सकते हैं: http://www.photojoiner.net/

आपके द्वारा दो या अधिक छवियों के जुड़ने के बाद, आपको पृष्ठभूमि सेटिंग पृष्ठ में "स्पान" विकल्प का चयन करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.