लॉगिन पर केंद्रीय कार्यक्षेत्र की स्थिति


12

मैंने 3x3 कार्यक्षेत्र स्विचर स्थापित किया है, और मैं चाहता हूं कि मेरी स्थिति डिफ़ॉल्ट रूप से केंद्रीय एक पर हो। क्या यह संभव है?

जवाबों:


7

मार्को के लिए धन्यवाद, मैंने इसका उपयोग करने का एक तरीका निकाला है wmctrl

क्योंकि compiz कार्यस्थान वास्तव में एक डेस्कटॉप के व्यूपोर्ट हैं, इसलिए समाधान डेस्कटॉप के केंद्र क्षेत्र को कवर करने के लिए वर्तमान व्यूपोर्ट को स्थानांतरित करना है।

सबसे पहले, wmctrl -dवर्तमान डेस्कटॉप की जानकारी प्राप्त करने के लिए कॉल करें :

read desktop_id _ast \
    DG_ geometry \
    VP_ viewport \
    WA_ wa_off wa_size \
    title \
    < <(LANG=C wmctrl -d | grep '*')

geom_w=${geometry%x*}
geom_h=${geometry#*x}

# The workarea size isn't accurate, because the top/bottom panel is excluded. 
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}

rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))

# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))

फिर, केंद्र व्यूपोर्ट की उत्पत्ति की गणना करें:

center_row=$((rows / 2))
center_col=$((cols / 2))

center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))

center_viewport=$center_x,$center_y

और वहां व्यूपोर्ट ले जाएं:

wmctrl -o $center_viewport

6

हाँ: wmctrl स्थापित करें

sudo apt-get install wmctrl

और ~/.config/autostart/wmctrl.desktopनिम्नलिखित के साथ एक फ़ाइल बनाएँ :

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application

1
कॉम्पिज़ में केवल एक ही डेस्कटॉप है। लेकिन wmctrlवैसे भी डेस्कटॉप के भीतर व्यूपोर्ट को स्विच कर सकते हैं। नीचे मेरा जवाब देखें।
क्ज़िआ जेलेई

2
  1. कमांड लाइन से कम्पोज़ को नियंत्रित करने के लिए पहले इस सहायक स्क्रिप्टवैकल्पिक शब्द को डाउनलोड करें । इसे compiz-send.pyअपने होम फोल्डर में सेव करें ।
  2. python compiz-send.py vpswitch switch_to_5_keyयह सुनिश्चित करने के लिए कमांड चलाएँ कि यह सही ढंग से काम करता है। यह आपको केंद्र के कार्यक्षेत्र में स्विच करना चाहिए।
  3. यदि यह काम करता है, तो .switch_to_center_workspace.shअपने होम फ़ोल्डर में एक फ़ाइल बनाएं और उसके अंदर निम्नलिखित पेस्ट करें:

    #!/bin/bash
    sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
    

    userअपने उपयोगकर्ता नाम के साथ बदल रहा है ।

  4. स्टार्टअप एप्लिकेशन, सिस्टम -> प्राथमिकताएं -> स्टार्टअप एप्लिकेशन खोलें ।

  5. जोड़ें और कमांड में: प्रविष्टि पर क्लिक करें /home/user/.switch_to_center_workspace.shनाम में जो कुछ भी आप चाहते हैं उसे डालें : और टिप्पणी: प्रविष्टियाँ।

  6. लॉग आउट करें और लॉग इन करें और सत्यापित करें कि यह काम करता है।


दुर्भाग्य से स्क्रिप्ट काम नहीं करती हैdbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
क्ले जेली

@ @ To 雷sleep 5स्क्रिप्ट का हिस्सा अधिक संख्या में बदलना जैसे sleep 10यह सुनिश्चित करना कि स्क्रिप्ट चलने पर पहले से ही चल रहा है। आप सही का उपयोग कर रहे हैं?
यशायाह

मैं स्क्रिप्ट को सूक्ति-टर्मिनल में चलाने की कोशिश करता हूं, और अपवाद प्राप्त करता हूं। मैं 0.8.6 compiz का उपयोग कर रहा हूँ।
क्ले जेली

स्क्रिप्ट में, यह कहा गया है कि विधि हस्ताक्षर "सी" मौजूद नहीं है, इसलिए मुझे लगता है कि सक्रिय करने के लिए पारित तर्क (स्ट्रिंग, इंट) सही नहीं हो सकते हैं ..
क्ले जेलेई

2

मैं इसी तरह का सवाल पूछने जा रहा था, लेकिन 3 क्षैतिज कार्यक्षेत्रों के लिए और मैं कम्पिज़ भी चला रहा हूं, और wmctrl -dआउटपुट (प्रति कार्यक्षेत्र) इस तरह दिखता है:

  • कार्यक्षेत्र 1 पर: 0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • कार्यक्षेत्र 2 पर: 0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • कार्यक्षेत्र 3 पर: 0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1

क्या मैंने स्टार्टअप पर केंद्र को अपना डिफ़ॉल्ट कार्यक्षेत्र बनाने के लिए बस wmctrl -o 1366,0( वीपी मूल्यों) का इस्तेमाल किया । हर किसी के लिए काम नहीं हो सकता है, लेकिन सिर्फ मामले में;)


कमांड मैं "सिस्टम -> प्रेफरेंस -> स्टार्टअप एप्लिकेशन" में उपयोग कर रहा हूं:sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
विक

... आपको नींद के मूल्य को समायोजित करने की आवश्यकता हो सकती है, उदाहरण के लिए 10, 15 आदि की कोशिश करें
विक

इस नोट के लिए धन्यवाद - खेद है कि मैंने आपका उत्तर पढ़ने से पहले इसे नहीं पढ़ा :)
sadaau

0

बस एक संक्षिप्त नोट - मैं नेट्टी का उपयोग कर रहा हूं, और @ 继 s note के उत्तर के लिए धन्यवाद, मैंने देखा कि यूनिटी में चार 'वर्कस्पेस' में से प्रत्येक में टर्मिनल को स्थानांतरित करके निम्नलिखित की सूचना दी गई है:

$ wmctrl -d
# top left
0  * DG: 2048x1200  VP: 0,0  WA: 0,24 1024x576  Workspace 1
# bottom left
0  * DG: 2048x1200  VP: 0,600  WA: 0,24 1024x576  Workspace 1
# top right
0  * DG: 2048x1200  VP: 1024,0  WA: 0,24 1024x576  Workspace 1
# bottom right 
0  * DG: 2048x1200  VP: 1024,600  WA: 0,24 1024x576  Workspace 1

... यानी वे न तो अलग-अलग डेस्कटॉप हैं, न ही कार्यक्षेत्र - बस व्यूपोर्ट बदल जाता है!

इसलिए, उन चार व्यूपोर्ट के बीच बदलाव करने के लिए, ऊपर दिए wmctrl -oगए VPमानों के साथ सीधे कमांड को कॉल करें , अर्थात:

wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600

संपादित करें: अप्स, क्षमा करें, बस यह देखा है कि यह @ विक के उत्तर के समान है - उपयुक्त के रूप में मर्ज करें / हटाएं ..

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