i3wm: i3 शुरू होने पर विशिष्ट कार्यस्थानों पर आवेदन शुरू करें


56

मैं i3 में विशिष्ट कार्यस्थानों पर आवेदन कब शुरू कर सकता हूं?

यह मेरी कॉन्फ़िग फ़ाइल में काम क्यों नहीं कर रहा है? :

workspace 1; exec firefox; workspace 2; exec chromium; workspace 1

जवाबों:


61

आर्क विकी i3 पेज के अनुसार , एक विशिष्ट कार्यक्षेत्र पर एक एप्लिकेशन को ऑटोस्टार्ट करने के लिए, आप उपयोग करते हैं i3-msg:

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

4
हां, एक लाइन exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'काम करती है। लेकिन, मुझे यह उपयोग करने में थोड़ा अजीब लगता है जिस execपर i3-msgi3 कमांड निष्पादित करने के लिए एक कमांड है। मैं सीधे workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1अपनी कॉन्फ़िग फ़ाइल में क्यों नहीं लिख सकता हूँ ?
ढाल

3
यह सिर्फ मेरे लिए कार्यक्षेत्र 1 में सब कुछ खोलता है।
सीएमसी

4
अधिकांश ऐप्स के लिए काम करता है। हालांकि google-chrome-stableमेरे सेटअप में हमेशा अंतिम कार्यक्षेत्र पर खुलता है। उदाहरण के लिए, इस कॉन्फ़िगरेशन के साथ , क्रोम htop के बगल में कार्यक्षेत्र 4 पर खुलता है।
दानीझार २३'१५

3
ध्यान दें कि i3 अब अधिकतर मामलों में i3-msg को कॉल करने के लिए अनावश्यक बचत / पुनर्स्थापना सुविधाएँ प्रदान करता है ।
विलेलैंड

1
@ ऑटोइंड लेआउट सेविंग / रिस्टोरिंग ऑटो स्टार्ट से अलग है ; पूर्व केवल प्रोग्राम विंडो के लिए निगलना जाल स्थापित करने से संबंधित है, जबकि बाद में ओपी के अनुरोध के अनुसार एक आवेदन का एक उदाहरण शुरू होता है।
एंटनी थॉमस

12
# This is what I use in ie config
# custom variables for workspaces
set $ws1 "1< txt >"
set $ws2 "2> fm "
set $ws3 "3< Web >"
set $ws4 4
set $ws5 5
set $ws6 6
set $ws7 7
set $ws8 8
set $ws9 9


##==================================================##
#                         *** Workspace specific settings ***                     #
##=================================================##
# Assign Workspaces:
assign [class="Firefox"] $ws3
assign [class="Chromium"] $ws3
assign [class="Google-chrome-beta"] $ws3
assign [class="^Geany"] $ws1

यह कुछ अनुप्रयोगों के लिए काम करता है, लेकिन दूसरों के लिए नहीं। मुझे संदेह है कि यह classतर्क में प्रयुक्त स्ट्रिंग से संबंधित हो सकता है। क्या यह जानने का कोई तरीका है कि आवेदन किस वर्ग से जुड़ा है?
लुइस डी सूसा

@ LuísdeSousa में आप xprop | grep CLASSटर्मिनल में, आपका माउस पॉइंटर एक क्रॉसहेयर में बदल जाता है, आप उस प्रोग्राम पर क्लिक करते हैं जिसे आप क्लास में लाना चाहते हैं और अपने टर्मिनल में आने वाले दूसरे वेरिएबल का उपयोग करें। क्रोम के लिए उदाहरण परिणाम:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
kittenparry

@kittenparry। सुझाव के लिए धन्यवाद, लेकिन फिर भी xpropकमांड से स्ट्रिंग का उपयोग करके विंडोज़ को वांछित कार्यक्षेत्र को नहीं सौंपा गया है।
लुइस डी सूसा

1
@ LuísdeSousa कुछ कार्यक्रम Spotify की तरह इसके साथ काम नहीं करते हैं। उनके लिए आप ऐसा कुछ लिख सकते हैं for_window [class="Spotify"] move to workspace $ws10जहां $ws10आपका कार्यक्षेत्र चर हो।
बिल्ली का बच्चापार्टी

10

यह केवल i3 शुरू होने पर एक ऑटोस्टार्ट नहीं, बल्कि कार्यक्षेत्र लॉन्च पर एक ऑटोस्टार्ट है, लेकिन मुझे लगा कि यह उपयोगी हो सकता है।

उदाहरण के लिए, मेरे वेब ब्राउज़र को दूसरे कार्यक्षेत्र "वेब" में लॉन्च करने के लिए यह वही है जो मैंने अपने कॉन्फ़िगरेशन में किया था:

bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s

जब मैंने कुंजी 2 को मारा, तो मेरा वेब ब्राउज़र शुरू होता है, लेकिन जब यह पहले से ही खुल जाता है तो इसे फिर से लॉन्च नहीं किया जाता है, यह सिर्फ वेब वर्कस्पेस पर स्विच होता है।

नोट: लेआउट भाग कभी-कभी कष्टप्रद हो सकता है, यह कोई आवश्यकता नहीं है।

अधिक जानकारी के लिए मेरा कॉन्फिडेंस देखें


1
कार्यक्षेत्र असाइन करके आप इसे बहुत आसानी से कर सकते हैं । उदाहरण के लिए pidginइसके हर लॉन्च पर 3-आरडी कार्यस्थान पर जाने के लिए, मेरे पास कॉन्फ़िगरेशन में है assign [class="Pidgin"] $tag3
हाय-एंजेल

एक कार्यक्षेत्र को सौंपना अलग है। @ tyjak के समाधान के कारण एप्लिकेशन लॉन्च होगा जब आप किसी विशेष कार्यक्षेत्र को खोलेंगे। किसी कार्यस्थान पर किसी एप्लिकेशन को असाइन करने से उस एप्लिकेशन को कार्यक्षेत्र में ले जाया जाएगा जब भी आप इसे खोलते हैं।
माइक

5

मैंने इसे अपनी ~/.config/i3/configफ़ाइल के अंत में इसके साथ काम कर लिया है :

for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox

फ़ायरफ़ॉक्स के लिए आर्क लिनक्स i3 उदाहरण के अनुसार : पहले अपना वेरिएबल सेट करें set $ws1 "Firefox"और फिर निम्नलिखित लाइन डालेंfor_window [class="Firefox"] move to workspace $ws1
मार्कस वेबर

0

बस उपयोग करें assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>। यह मेरे लिए काम कर रहा है।

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