क्या उबंटू के लिए डायनेमिक-मल्टीपल-मॉनिटर फ्रेंडली डेस्कटॉप वातावरण उपलब्ध है?


14

मैं एक लैपटॉप का उपयोग करता हूं और दिन के दौरान एक (शारीरिक) कार्यस्थल से दूसरे स्थान पर पलायन करना और उपलब्ध होने पर बाहरी मॉनिटर से कनेक्ट करना पसंद करता हूं।

मुझे बहुत अधिक मल्टीटास्क भी करना होगा, इसलिए मेरे पास किसी भी समय बहुत सारी खिड़कियां खुली हैं और उस पर व्यवस्थित करने के लिए कई (आभासी) कार्यक्षेत्र हैं।

लेकिन हर बार जब मैं बाहरी मॉनिटर को कनेक्ट / डिस्कनेक्ट करता हूं तो मेरी सारी सावधानी बरती जाती है। यह मुझे वास्तव में पागल बनाता है

क्या एक डेस्कटॉप वातावरण है जो कनेक्ट होने / दूसरे मॉनिटर को डिस्कनेक्ट करने के दौरान बस विंडोज़ को अकेला छोड़ देता है? या इससे भी बेहतर, कि मॉनिटर की व्यवस्था के अनुसार खिड़की की व्यवस्था याद है? ताकि जब मैं अपने घर कार्यालय (17 "लैपटॉप स्क्रीन के ऊपर मॉनिटर) से अपने सामान्य कार्यस्थल (21" लैपटॉप स्क्रीन के बाएं मॉनिटर) या मेरे सहयोगी डेस्क (19 "मॉनिटर को राइट ऑफ लेटोप स्क्रीन) पर चला गया, विंडोज़ अंत में जहां वे आखिरी बार थे कि मॉनिटर जुड़ा हुआ था - या लगा रखा है अगर उन्होंने इस मॉनिटर को कभी नहीं देखा।

जिस तरह से एकता "हैंडल" बाहरी मॉनिटर मुझे दुखी करती है और काश मेरे पास कनेक्ट करने के लिए उन सभी अतिरिक्त मॉनीटर नहीं होते और एक बार कनेक्ट होने के बाद मुझे इस व्यवस्था में जकड़ लिया जाता, जैसे कि मैंने एक डेस्कटॉप मशीन को फर्श पर डाल दिया हो।


क्या यह किसी भी विंडो मैनेजर के साथ होता है? गनोम 3, केडीई, एलएक्सडीई, एक्सएफसीई?
ब्रिअम

मुझे नहीं पता। यह एकता के साथ होता है।
आर्टम

क्या आपको इसका कोई अच्छा समाधान मिला है? मुझे एक डेल लैपटॉप का उपयोग करने के लिए मजबूर किया गया है, जिसे मैंने ubuntu पर रखा है, लेकिन मैं अपने मैकबुक प्रो के लिए उपयोग किया जाता हूं। मैक पर स्टे नामक एक प्रोग्राम है, जो अपरिहार्य है, क्योंकि यह प्रत्येक मॉनिटर कॉन्फ़िगरेशन के लिए विंडो स्थानों को याद करता है। एक मॉनिटर में प्लग करें, सभी विंडो उस स्थान पर चले जाते हैं जहां वे थे। एक दूसरे मॉनिटर में प्लग करें, वे सभी फिर से चलते हैं। अनप्लग, वे सभी वापस चले जाते हैं जहां वे थे। इसके अलावा मैक काफी स्मार्ट है बिना स्टे के भी सुनिश्चित करें कि सभी विंडो दिखाई दे रही हैं। इस उबंटू लैपटॉप पर मुझे स्क्रीन बंद रहने वाली खिड़कियों को खोजने के लिए रखा गया है।
ग्रेविएव

मुझे कुछ भी नहीं मिल रहा है जैसे कि लिनक्स पर रहें। ऐसा लगता है कि आप व्यक्तिगत आदेशों से सभी जानकारी और नियंत्रण प्राप्त कर सकते हैं, और नीचे दी गई स्क्रिप्ट बंद हो सकती हैं। मैं इन कार्यक्षमता में सुधार लाने के लिए काम कर रहा हूं जिनकी मुझे आवश्यकता है ...
ग्रेविएव

लगता है कि मैं क्या याद कर रहा हूँ। नहीं, मुझे कोई हल नहीं मिला है।
आर्टम

जवाबों:


10

मैं आपको दो शेल स्क्रिप्ट प्रदान कर रहा हूं। यह विंडोज़ की स्थिति और आकार की आपकी व्यवस्था को बचाने में आपकी सहायता करेगा । यदि किसी तरह आपकी इच्छित विंडो व्यवस्था गड़बड़ा जाती है, तो आप इन स्क्रिप्ट का उपयोग करके सभी विंडो के लिए सटीक विंडो आकार और पदों के साथ उन व्यवस्थाओं को पुनर्स्थापित करने में सक्षम होंगे ।

wmctrlजब तक आपके पास पहले से ही नहीं है, आपको स्थापित करने की आवश्यकता है । टर्मिनल के माध्यम से स्थापित करें,

sudo apt-get install wmctrl

विंडोज़ कॉन्फ़िगरेशन को बचाने के लिए स्क्रिप्ट

# Script_Name: save_window_conf.sh
#!/bin/bash
if [ -f $HOME/.my_windows_config.txt ]; then
    echo -e "Information: Previous configuration file \"$HOME/.my_windows_config.txt\" already exists.\nTo save a new configuration remove it manually using the following command,\n\n\trm $HOME/.my_windows_config.txt"
    exit 1
else
    wmctrl -p -G -l | awk '($2 != -1)&&($3 != 0)&&($NF != "Desktop")' | awk '{print $1}' | while read mywinid
    do
        xwininfo -id "$mywinid" >> $HOME/.my_windows_config.txt
    done
fi

निष्पादन के समय उपरोक्त स्क्रिप्ट आपकी सभी खुली खिड़कियों के लिए .my_windows_config.txtआपकी होम डाइरेक्टरी में नाम की फ़ाइल के लिए आपकी विंडोज़ स्थिति और आकार को बचाएगा । यह एक छिपी हुई पाठ फ़ाइल है।

विंडोज़ कॉन्फ़िगरेशन को फिर से लोड करने के लिए स्क्रिप्ट

# Script_Name: load_window_conf.sh
#!/bin/bash

file=$HOME/.my_windows_config.txt
declare -a mywinid
declare -a x
declare -a y
declare -a width
declare -a height

nl=$(cat "$file" | grep xwininfo |wc -l)

for i in $(seq 1 $nl)
do
    mywinid[i]=$(cat "$file" | grep "xwininfo" | awk -v p="$i" '{if(NR==p) print $4}')
    x[i]=$(cat "$file" | grep "Absolute upper-left X" | awk -v p="$i" '{if(NR==p) print $NF}')
    y[i]=$(cat "$file" | grep "Absolute upper-left Y" | awk -v p="$i" '{if(NR==p) print $NF}')
    width[i]=$(cat "$file" | grep "Width" | awk -v p="$i" '{if(NR==p) print $NF}')
    height[i]=$(cat "$file" | grep "Height" | awk -v p="$i" '{if(NR==p) print $NF}')
done

for it in $(seq 1 $nl)
do
    wmctrl -i -r "${mywinid[$it]}" -e 0,"${x[$it]}","${y[$it]}","${width[it]}","${height[it]}"
done

जब आप दूसरी स्क्रिप्ट निष्पादित करते हैं तो यह आपके सभी विंडोज़ के लिए सटीक आकार के साथ आपकी विंडोज़ स्थिति को बहाल करेगा।

प्रयोग

इन लिपियों को अपनी $HOME/bin/निर्देशिका में सहेजें । $HOME/bin/अपने में जोड़ें PATH। इसके लिए अपने अंत में इन पंक्तियों को जोड़ें$HOME/.bashrc

PATH=$HOME/bin:$PATH
export PATH

यह आपको उन लिपियों को उनके नाम के साथ निष्पादित करने में सक्षम करेगा। स्क्रिप्ट निष्पादन की अनुमति दें,

chmod +x $HOME/bin/save_window_conf.sh
chmod +x $HOME/bin/load_window_conf.sh

अपने में कॉन्फ़िगरेशन को बचाने के लिए $HOME/.my_windows_config.txt

टर्मिनल में चलने वाली अपनी सभी विंडो खोलने और समायोजित करने के बाद,

save_window_conf.sh

अपने से कॉन्फ़िगरेशन पुनः लोड करने के लिए $HOME/.my_windows_config.txt

load_window_conf.sh

आशा है कि यह आपकी समस्या को हल कर देगा। यहाँ एक स्क्रीन शॉट है,

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


वाह, धन्यवाद, यह आशाजनक लग रहा है। मैं स्क्रिप्ट की कोशिश करूँगा।
आर्टम ३१'१४

@artm मैंने थोड़ा गड़बड़ और एक टाइपो संपादित किया है, अब यह ठीक लगता है। मैंने इसे एकता और सूक्ति-पतन-सत्र पर परीक्षण किया, gnome3 पर काम करना चाहिए। अगर आपको किसी मुद्दे का सामना करना है तो मुझे बताएं।
स्मारिका

@ जब आप हटाना चाहें तो यह आपका निर्णय होना चाहिए .my_windows_config.txt। यदि आप मौजूदा विंडो के लिए कई बार समान विंडो कॉन्फ़िगरेशन लोड करना चाहते हैं, तो आप इसे संरक्षित करना चाह सकते हैं। लेकिन अगर आप एक नया सत्र शुरू करते हैं, तो उन विंडोज़ आईडी में अंतर होगा और उस स्थिति में पुरानी कॉन्फ़िगरेशन फ़ाइल को निकालना बेहतर होगा $HOME/.my_windows_config.txt। नया कॉन्फ़िगरेशन सहेजने से पहले आपको मैन्युअल रूप से सहेजे गए कॉन्फ़िगरेशन फ़ाइल को हटाने की आवश्यकता है।
souravc

उबंटू 18.04 में XFCE4 पर मुझे गुरुत्वाकर्षण (पहले "0" -ई पैरामीटर में) को 31 में बदलना पड़ा, अन्यथा विंडोज़ को लगभग 31px सही और नीचे की जगह पर बहाल किया गया था जहाँ वे थे। मुझे लगता है कि डिफ़ॉल्ट XFCE पैनल का आकार हो सकता है। कोड के लिए धन्यवाद!
एकोम

-1

आम गाइड यहाँ है: संकल्प

डायनेमिक रिज़ॉल्यूशन के बारे में आपके समाधान Xorg & XrandR या Xinerama के पास हैं

आपके पास:
सेटअप करने के चार तरीके

  1. सत्र के साथ .xprofile

  2. Xrandr टूल का उपयोग करके गतिशील रूप से

  3. Xorg.conf में सेट करके स्टैटिकली।

  4. Xrandr ग्राफ़िकल फ्रंट एंड जीयूआई।

अच्छा जवाब कई मॉनिटरों के लिए सेटिंग्स संग्रहीत नहीं हैं

अपने कार्यक्षेत्रों में अपने विंडो प्रबंधन को हल करने के लिए आप Compiz config Manager द्वारा दी गई रूपरेखा प्रणाली का उपयोग कर सकते हैं


2
मुझे संकल्पों या प्रदर्शन व्यवस्थाओं से कोई समस्या नहीं है - जो अपेक्षित है।
आर्टेम

तो किसी भी डेस्कटॉप वातावरण आपके लिए पूरी तरह से है। कृपया सार्वजनिक रूप से दोष न दें।
स्विफ्ट

मैं किसी को दोष नहीं देता। मैं सिर्फ खुली खिड़कियां रखना चाहता हूं, जहां मैं मॉनिटर कनेक्ट / डिस्कनेक्ट करते समय उन्हें डाल देता हूं।
आर्टम

तो आपके पास आधिकारिक संदर्भ के साथ चार समाधान हैं। मेरा जवाब पर्याप्त रूप से आपके "पागलपन" को कवर करता है;)
स्विफ्ट

2
ओह, बस इसे अपने लिए आज़माएँ: प्रत्येक कार्यक्षेत्र पर एक विंडो खोलें, फिर एक मॉनिटर कनेक्ट करें जो मूल स्क्रीन के शीर्ष पर दिखाई देता है और देखें कि आप कहां विंडो समाप्त करते हैं। फिर मुझे बताएं कि मॉनिटर से कनेक्ट होने पर विंडोज़ को बेतरतीब ढंग से कूदने से रोकने के लिए ज़ेंडर कितना प्रासंगिक है।
आर्टम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.