आप i3 विंडो प्रबंधक में अनुप्रयोगों के ऑटोस्टार्टिंग के साथ लेआउट को कैसे लागू करते हैं?


23

यह एक पूर्व प्रश्न पर है कि i3 विंडो मैनेजर के साथ अलग-अलग कार्यस्थानों पर एप्लिकेशन को कैसे ऑटोस्टार्ट किया जाए और ~/.i3/configकॉन्फ़िगरेशन फ़ाइल के अंदर क्या किया जा सकता है और क्या नहीं ।

सबसे पहले, आर्क लिनक्स प्रलेखन पर आधारित प्रदान किया गया समाधान और ऑप द्वारा प्रदान किया गया एक अपडेट जहां वह तर्क को और आगे बढ़ाता है:

exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'

रुचि की पुस्तकें भी यह है विनिमय सीधे नकल के बिना कमांड लाइन पर इस बात का कुछ लाभ के बारे में:

i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium

लेकिन मैंने कभी ऐसा कॉन्फ़िगरेशन नहीं देखा है जो वांछित कार्यक्षेत्र या क्षैतिज लेआउट के अनुसार प्रत्येक कार्यक्षेत्र में कई विंडो / ऐप को ऑटोस्टार्ट करता है। मेरा लक्ष्य मेरे द्वारा उपयोग किए जाने वाले इस सरल विन्यास को ऑटोस्टार्ट करना है:

 _____ _____     ___________     ___________
| lx  | lx  |   |        |u_|   |     |     |   proportions:
|_____|_____|   |  FF    |lx|   |spacefm    |   1- 25% each
|medit| lx  |   |        |__|   |     | vlc |   2- 75/25 x 25/50/25
|_____|_____|   |________|u_|   |_____|_____|   3- 50/50
      1               2               3

तो यह configफ़ाइल में कुछ इस तरह से शुरू होता है :

exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'

लेकिन दुनिया में आप किस प्रकार के लेआउट और ऊर्ध्वाधर / क्षैतिज विभाजन को प्राप्त करना चाहते हैं? मैं कोशिश कर रहा हूं, लेकिन यह स्पष्ट नहीं है कि आप निष्पादन और लेआउट को कैसे "मिक्स" करते हैं। वाक्यविन्यास शुरू करने के लिए अज्ञात लगता है क्योंकि आप i3-imgi3 के कॉन्फ़िगरेशन में निष्पादित कर रहे हैं । क्या आप प्रत्येक कॉल के बीच में split h(या v) - layout split v- exec layout split v- focus down(या सही) का उपयोग करते execहैं ??

एकल कार्यक्षेत्र के लिए, कॉन्फ़िगरेशन सभी अनुप्रयोगों को या तो लंबवत या क्षैतिज रूप से शुरू करता है और मैं लेआउट को प्रभावित करने के लिए प्रतीत नहीं हो सकता है - या splitश्रृंखला में अंतिम आदेश यह तय करता है कि क्या विंडोज़ को लंबवत या क्षैतिज रूप से जोड़ा जाता है। i3-msgप्रतीत होता है कि कमांड के कुछ हिस्सों को नजरअंदाज कर दिया गया है जो कुछ मामलों में ठीक से स्वरूपित नहीं हैं, इसलिए यह डीबग करना कठिन है। यह इस तथ्य से और अधिक जटिल है कि आपको startxपरिणाम को सत्यापित करने के लिए हर बार एक्स को छोड़ने की आवश्यकता होती है और साथ ही कॉन्फ़िगरेशन को ताज़ा करने के साथ mod+shift+Rही इसे काट दिया जाएगा भले ही आप प्रत्येक कार्यस्थल पर सब कुछ बंद कर दें।

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


इस पर भी विस्तार किया ।

किसी को समाधान प्रदान करने के लिए FF या urxvt का उपयोग करने की आवश्यकता नहीं है। उन कार्यक्रमों के बारे में कुछ खास नहीं है, जहां तक ​​मुझे पता है कि कोई भी किसी भी प्रोग्राम के साथ लेआउट # 2 को पुन: उत्पन्न कर सकता है, एक जोंस फाइल को सेव करें, उसे स्ट्रिप करें, देखें कि क्या इसे लॉगिन फाइल को लॉगिन से लॉन्च किया जा सकता है, तो बस प्रोग्राम के नाम बदल दें जवाब प्रस्तुत करने से पहले ...

क्या आप सहेजे गए / बहाल जोंस-लेआउट के संयोजन में अपनी i3-फ़ाइल में भाग अपलोड कर सकते हैं? मैं एक ही समस्या है .. लेकिन यह काम करने के लिए नहीं मिलता है। क्या आप अपने config / json फाइल में मल्टी डिस्प्ले का उपयोग करते हैं?

जवाबों:


11

मेरा मानना ​​है कि आप नए लेआउट-बचत फीचर की तलाश कर रहे हैं जो i3 v4.8 (2014-06-15) में पेश किया गया था । जुड़ा हुआ प्रलेखन बहुत गहन लगता है।

प्रलेखन से उद्धरण:

लेआउट सेविंग / रिस्टोरिंग आपको JSON लेआउट फ़ाइल को लोड करने की अनुमति देता है ताकि आपके कंप्यूटर पर पावर करने के बाद काम शुरू करने के लिए आपके पास बेस लेआउट हो सके। गतिशील उपयोग के मामले भी ध्यान में आते हैं: यदि आप अक्सर (लेकिन हमेशा नहीं!) नेटवर्क मुद्दों के निदान के लिए पिंग / ट्रैसरूट कमांड के साथ टर्मिनलों के ग्रिड लेआउट की आवश्यकता होती है, तो आप आसानी से इन विंडो को सिर्फ सही लेआउट में खोल सकते हैं।

... और रिलीज नोट :

tl; dr: JSON फ़ाइल के रूप में अपने वर्तमान लेआउट को 1 निर्यात करें, इसे नए i3 सत्रों में लोड करें, प्लेसहोल्डर विंडो प्राप्त करें जो आपके द्वारा शुरू करने के बाद वास्तविक एप्लिकेशन द्वारा बदल दी जाएंगी।


1. उपयोगिता का उपयोग करने के लिए आपको perl-anyevent-i3 और perl-json-xs पैकेज की आवश्यकता हो सकती है i3-save-tree


3
लेआउट सुविधा आश्चर्यजनक रूप से उपयोग करने के लिए चुनौतीपूर्ण है। प्लेसहोल्डर विंडो की उनकी अवधारणा जो "एप्लिकेशन निगलती है" का अर्थ है कि यदि आप एक ही ऐप को एक ही बार lxterminalया urxvtएक ही कार्यक्षेत्र के लिए चाहते हैं , तो आपको --name somethingउन्हें .i3 / config में निष्पादित करते समय उपयोग करके अंतर करना होगा । डॉक्टर में उदाहरण काम करता है, लेकिन जब मैं अपने किसी कार्यक्षेत्र से निर्यात का उपयोग करता हूं तो मैं इसे काम नहीं कर सकता। आप नाम और उदाहरण के लिए वर्ग का उपयोग करते हैं जो आपने --name के साथ उपयोग किया है। इस मामले में मैं केवल एक gui टूल के लिए गंभीरता से आशा कर सकता हूं, क्योंकि json फॉर्मेट में इतने सारे कोष्ठक हैं !!

1
मैंने अब 4.8 में अपडेट किया और मैं इस नई सुविधा से बहुत खुश हूं। मैं हमेशा चीजों .i3/configको पहले संस्करणों के साथ लॉगिन से मज़बूती से शुरू करने से कुछ परेशान था , लेकिन एक बार जब मैं ठीक से लॉग इन कर लेता हूं, तो सबकुछ ठीक हो जाता है। मैंने जो किया वह कुछ लेआउट को व्यवस्थित करने और उन्हें बचाने के लिए है, फिर केवल जसन फ़ाइलों के वर्ग चर को संपादित करें। तो कुछ पसंद है i3-msg workspace 2\; append_layout mylayout.json\;और फिर i3-msg exec lxterminal\; exec lxterminal\; exec lxterminal\; exec meditअपने पहले वांछित लेआउट को बहाल करना चाहिए। // मेरे उत्तर को बेहतर बनाने के लिए धन्यवाद, btw।
डेमियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.