मैं विशिष्ट कार्यस्थान पर प्रत्येक प्रोग्राम का एक सेट खोलने के लिए स्क्रिप्ट कैसे करूं?


35

मैंने थोड़ी देर के लिए चारों ओर देखा और मेरी निम्नलिखित समस्या का उत्तर नहीं दे सका:

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

अतिरिक्त प्रश्न : मामले को और जटिल करने के लिए, मैं दो स्क्रीन को ट्विन व्यू मोड में चला रहा हूं। मुझे वास्तव में प्रत्येक कार्यक्रम को एक विशिष्ट स्क्रीन पर शुरू करने की आवश्यकता है, अधिमानतः पूर्ण स्क्रीन में।


1
आपको यह मददगार लग सकता है। यह wmctrl को इंगित करता है, लेकिन मैं इसे इस्तेमाल नहीं किया है: movingtofreedom.org/2010/08/10/...
RobotHumans

यह मददगार हो सकता है। askubuntu.com/questions/87002/…
सुहैब

1
एक बहुत ही सरल दृष्टिकोण से इस पर आ रहा है, क्या कोई कारण है कि आप अपने मशीन को सस्पेंड मोड में नहीं छोड़ सकते हैं? मुझे लगता है कि यह आपके लिए एक त्वरित समाधान होगा जब आप एक अधिक स्थायी समाधान पा रहे हों ...
Adeyfk

जब आप डेस्कटॉप कहते हैं, तो क्या आपका मतलब कार्यक्षेत्र है?
p0llard

KDE गतिविधियाँ ऐसा करने में सक्षम हो सकती हैं।
मैकेनिकल घोंघा

जवाबों:


20

compizconfig का उपयोग करने का jdp407 का विचार किसी विशेष कार्यक्षेत्र के साथ एक विशेष एप्लिकेशन को संबद्ध करेगा ताकि हर समय जो एप्लिकेशन खोला जाता है, उसे संबंधित कार्यक्षेत्र में रखा जाए। यदि यह वांछित नहीं है तो आप निम्नलिखित कार्य कर सकते हैं:

1) स्थापित करें wmctrl

sudo apt-get install wmctrl

2) निम्नलिखित सामग्री के साथ एक फ़ाइल बनाएं और इसे निष्पादन योग्य बनाएं

#!/bin/bash
wmctrl -s 0 #Switches to workspace 0 [workspaces are numbered from 0]
gnome-terminal & #Say you want a terminal in the 0th workspace
nautilus & #Maybe a file browser too
sleep 2 #Windows take some time to open. If you switch immediately, they'll open up in wrong workspaces. May have to change the value 2.
wmctrl -s 1 #Switches to workspace 1
firefox & #You get the idea. Continue for all workspaces
sleep 2
wmctrl -s 0 #You will be left at this workspace when the script finishes executing

3) इस स्क्रिप्ट को .xsessionrcअपने होम डायरेक्टरी से कॉल करें [अगर आपको यह फाइल बनानी पड़ सकती है] प्रत्येक लॉगिन पर प्रक्रिया को स्वचालित करने के लिए। या आप जरूरत पड़ने पर बस इसे टर्मिनल से बुला सकते हैं। संपादित करें: इसे "स्टार्टअप एप्लिकेशन" में डालें, न कि .xsessionrc। .xsessionrc डेस्कटॉप वातावरण लोड होने से पहले ही निष्पादित हो जाएगा।


आप jdp407 द्वारा सुझाए अनुसार एक कस्टम xsession बनाना चाह सकते हैं, ताकि आपके पास चुनने के लिए दो सत्र हों, एक जो इन अनुप्रयोगों को स्वचालित रूप से खोलता है और एक जो नहीं करता है। लेकिन वह मुझे अनावश्यक लगता है।


यदि आपको लगता है कि कार्यक्षेत्र में स्विच करना, उचित एप्लिकेशन खोलना और फिर अगले पर स्विच करना समय लेने वाला है तो आप एक शॉट में सभी एप्लिकेशन खोल सकते हैं, और फिर विंडोज़ का उपयोग करके स्थानांतरित कर सकते हैं wmctrl। उदाहरण के लिए

wmctrl -r 'Firefox' -t 1

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


फ़ुलस्क्रीन में अनुप्रयोग खोलना:

सूक्ति-टर्मिनल जैसे कुछ अनुप्रयोगों में अधिकतम स्थिति में या पूर्णस्क्रीन मोड में विंडो खोलने के लिए कमांड-लाइन तर्क हैं। यदि ऐसे विकल्प मौजूद हैं तो उनका उपयोग करें। अन्यथा wmctrlनिम्नानुसार उपयोग करें

wmctrl -r 'prasanth@nb37' -b add,maximized_vert,maximized_horz

यह मेरी (पहले से मौजूद) टर्मिनल विंडो को अधिकतम करता है।

wmctrl -r 'prasanth@nb37' -b add,fullscreen

यह विंडो को फुलस्क्रीन मोड पर भेजता है।


wmctrlआदमी के पृष्ठ के माध्यम से जाओ । आप इसकी अधिक कार्यक्षमता के लिए उपयोग कर सकते हैं।


1
कार्यक्षेत्र का चयन करने के लिए स्पष्ट रूप से wmctrl का उपयोग करने के बाद लिंक्स वितरण में काम नहीं करता है। '-S' विकल्प केवल '0' पर सेट किया जा सकता है, या यह एक त्रुटि फेंक देगा, या कुछ भी नहीं करेगा। स्रोत: movingtofreedom.org/2010/08/10/...
p0llard

मैं unity2d के साथ 12.04 का उपयोग करता हूं (कोई दृश्य प्रभाव नहीं) और यह मेरे लिए काम करता है। ऐसा लगता है कि यह दृश्य प्रभावों के साथ काम नहीं करेगा।
एस प्रशांत

wmctrlयहाँ ठीक काम करता है (LXDE और XFCE, xcompgr के माध्यम से संयोजन सक्षम)
Glutanimate

मेरे लिए मिंट 14 में दालचीनी के साथ काम करता है, धन्यवाद!
k102

Ubuntu 14.04 में, wmctrl -o X,Yएक विशिष्ट व्यूपोर्ट में जाने के लिए उपयोग करें। यदि आपके पास कई मॉनीटर हैं, तो आप एप्लिकेशन को अन्य मॉनीटर का उपयोग करके स्थानांतरित कर सकते हैं wmctrl -r "App name" -e G,X,Y,W,H। एकता दृश्य प्रभावों के साथ ठीक काम करता है।
नैट

10

यहां दो 'समस्याएँ' हैं: पहली बार जब आप लॉग इन करते हैं तो कार्यक्रमों का एक विशिष्ट सेट खोलना शामिल है; दूसरे में उन्हें विशिष्ट कार्यक्षेत्रों पर खुला बनाना शामिल है। मैं दोनों के साथ अलग से काम करूँगा:

  1. एक कस्टम X सत्र बनाना

    यह करना काफी आसान है। आपको बस एक X Session Script बनाने की ज़रूरत है, और फिर इसका इस्तेमाल करने के लिए LightDM बताएं। आपको टर्मिनल से इच्छित प्रोग्राम लॉन्च करने के लिए कमांड जानने की आवश्यकता होगी।

    1. टर्मिनल खोलें।
    2. टाइप करें touch ~/.customxsession, और एंटर दबाएं।
    3. टाइप करें gedit ~/.customxsession, और एंटर दबाएं।
    4. अब आपके पास एक खाली फ़ाइल के साथ एक टेक्स्ट एडिटर ओपन होगा।
    5. आपको इस फ़ाइल में एक X सत्र को परिभाषित करने की आवश्यकता है। मैंने उत्तर के तल पर एक नमूना 'रिक्त स्थान को भरें' फ़ाइल बनाया है। मुझे लगता है कि उबंटू gnome-session का उपयोग करता है क्योंकि यह विंडो मैनेजर है, लेकिन मैं संभवतः गलत हूं। मैं इस समय इसका परीक्षण नहीं कर सकता (लैपटॉप टूटा हुआ है) इसलिए यदि यह अपेक्षित रूप से काम नहीं करता है (जैसे: एकता के बजाय सूक्ति लोड करता है), तो आपको कुछ शोध करने की आवश्यकता हो सकती है।
    6. फ़ाइल सहेजें, और Gedit बंद करें।
    7. टाइप करें touch /usr/share/xsessions/multi.desktop, और एंटर दबाएं।
    8. टाइप करें gedit /usr/share/xsessions/multi.desktop, और एंटर दबाएं।
    9. अब आपके पास एक खाली फ़ाइल के साथ एक टेक्स्ट एडिटर ओपन होगा।
    10. कॉपी और जवाब के नीचे कोड चिपकाएँ (Gedit में '/usr/share/xsession/multi.desktop:' लेबल)।
    11. फ़ाइल सहेजें, और Gedit बंद करें।
    12. रीबूट। जब आप लॉगिन स्क्रीन पर आते हैं, यदि आप उपलब्ध सत्रों को देखते हैं (अपने उपयोगकर्ता नाम के बगल में थोड़ा उबंटू लोगो पर क्लिक करें), तो आपको बहु-सत्र नामक एक को देखना चाहिए। यदि आप इसके साथ लॉग इन करते हैं, तो आपके द्वारा X सत्र स्क्रिप्ट में रखे गए प्रोग्राम अपने आप खुलने चाहिए।
  2. कार्यक्षेत्रों को कार्यक्रम सौंपना

    यह भी काफी आसान है, लेकिन इसे कुछ अतिरिक्त सॉफ़्टवेयर की आवश्यकता है जो डिफ़ॉल्ट रूप से उबंटू में स्थापित नहीं है।

    1. Compizconfig-settings-manager स्थापित करें (आप सॉफ़्टवेयर सेंटर का उपयोग कर सकते हैं, या बस sudo apt-get install compizconfig-settings-managerटर्मिनल में चला सकते हैं )।
    2. डैश से CompizConfig सेटिंग खोलें।
    3. 'प्लेस विंडोज' प्लगइन खोलें (यह 'विंडो मैनेजमेंट' सेक्शन में है)।
    4. 'विंडोज में फिक्स्ड व्यूपोर्ट' सेक्शन में 'न्यू' पर क्लिक करें।
    5. 'प्लस' आइकन पर क्लिक करें।
    6. 'टाइप' को 'विंडो टाइटल' के रूप में सेट करें, और 'वैल्यू' बॉक्स में से किसी एक प्रोग्राम का विंडो टाइटल एंटर करें। सुनिश्चित करें कि 'संबंध' 'और' पर सेट है, और 'जोड़ें' पर क्लिक करें।
    7. 'X' और 'Y' बॉक्स में नंबर दर्ज करके कार्यक्षेत्र सेट करें। जब आपके पास 'X' के लिए 4 वर्कस्पेस हैं, तो '1' लेफ्ट है और '2' राइट है, और 'Y' के लिए, '1' टॉप है और '2' बॉटम है। यह देखते हुए कि आपके पास 6 कार्यस्थान हैं, इस बात पर निर्भर करता है कि चीजें कैसे सेट की जाती हैं, 'Y' को '3' पर सेट करना नीचे की पंक्ति का चयन करेगा, और 'X' को '3' पर सेट करने से 3rd कॉलम का चयन होगा।
    8. आप जिन कार्यस्थानों को असाइन करना चाहते हैं, उनके लिए स्टेप 4-7 को दोहराएं।
    9. CompizConfig सेटिंग्स को बंद करें।
  3. प्रवेश किया

    जब आप लॉग इन करते हैं, तो आपको उबंटू को बताना होगा कि आप अपने कस्टम एक्स सेशन का उपयोग करना चाहते हैं।

    1. रीबूट।
    2. जब आप लॉगिन स्क्रीन पर आते हैं, यदि आप उपलब्ध सत्रों को देखते हैं (अपने उपयोगकर्ता नाम के बगल में थोड़ा उबंटू लोगो पर क्लिक करें), तो आपको बहु-सत्र नामक एक को देखना चाहिए। यदि आप इसके साथ लॉग इन करते हैं, तो आपके द्वारा X सत्र स्क्रिप्ट में रखे गए प्रोग्राम अपने आप खुलने चाहिए, और आपके द्वारा चुने गए कार्यक्षेत्रों को सौंपा जाएगा।
  4. समस्या का

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

~ / .Customxsession:

#!/usr/bin/env bash
program-command-1 &
program-command-2 &
program-command-3 &
program-command-4 &
program-command-5 &
program-command-6 &
exec gnome-session

/usr/share/xsessions/multi.desktop:

[Desktop Entry]
Name=Multi-Session
Exec=/home/your-username/.customxsession

1

StarupApplications Program में आवश्यक एप्लिकेशन जोड़ें और फिर इस स्क्रिप्ट को भी जोड़ें। यह मेरी स्क्रिप्ट है: ManageWorkSpaces.sh

echo "Jeril"
wmctrl -r NetBeans IDE 7.1.1 -t 0
wmctrl -r /bin/bash -t 1
wmctrl -r Google Chrome -t 2
wmctrl -r jerilkuruvila - Skype™ -t 3

// टर्मिनल पर ध्यान दें

wmctrl -a NetBeans IDE 7.1.1   -t 0 

लेकिन मुझे 2 डिस्प्ले को संभालने के बारे में कोई जानकारी नहीं है।


हाय जेरिल! उबंटू पूछने के लिए आपका स्वागत है! आपका समाधान मेरे लिए काम नहीं करता है। अगर मैं दौड़ता हूं wmctrl -d, तो मेरे पास केवल एक "डेस्कटॉप" है। क्या आपने Ubuntu 12.10 में एकता पर यह परीक्षण किया?
फ्लिम्स

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