जवाबों:
आर्क विकी i3 पेज के अनुसार , एक विशिष्ट कार्यक्षेत्र पर एक एप्लिकेशन को ऑटोस्टार्ट करने के लिए, आप उपयोग करते हैं i3-msg:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
google-chrome-stableमेरे सेटअप में हमेशा अंतिम कार्यक्षेत्र पर खुलता है। उदाहरण के लिए, इस कॉन्फ़िगरेशन के साथ , क्रोम htop के बगल में कार्यक्षेत्र 4 पर खुलता है।
# 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तर्क में प्रयुक्त स्ट्रिंग से संबंधित हो सकता है। क्या यह जानने का कोई तरीका है कि आवेदन किस वर्ग से जुड़ा है?
xprop | grep CLASSटर्मिनल में, आपका माउस पॉइंटर एक क्रॉसहेयर में बदल जाता है, आप उस प्रोग्राम पर क्लिक करते हैं जिसे आप क्लास में लाना चाहते हैं और अपने टर्मिनल में आने वाले दूसरे वेरिएबल का उपयोग करें। क्रोम के लिए उदाहरण परिणाम:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xpropकमांड से स्ट्रिंग का उपयोग करके विंडोज़ को वांछित कार्यक्षेत्र को नहीं सौंपा गया है।
for_window [class="Spotify"] move to workspace $ws10जहां $ws10आपका कार्यक्षेत्र चर हो।
यह केवल i3 शुरू होने पर एक ऑटोस्टार्ट नहीं, बल्कि कार्यक्षेत्र लॉन्च पर एक ऑटोस्टार्ट है, लेकिन मुझे लगा कि यह उपयोगी हो सकता है।
उदाहरण के लिए, मेरे वेब ब्राउज़र को दूसरे कार्यक्षेत्र "वेब" में लॉन्च करने के लिए यह वही है जो मैंने अपने कॉन्फ़िगरेशन में किया था:
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
जब मैंने कुंजी 2 को मारा, तो मेरा वेब ब्राउज़र शुरू होता है, लेकिन जब यह पहले से ही खुल जाता है तो इसे फिर से लॉन्च नहीं किया जाता है, यह सिर्फ वेब वर्कस्पेस पर स्विच होता है।
नोट: लेआउट भाग कभी-कभी कष्टप्रद हो सकता है, यह कोई आवश्यकता नहीं है।
अधिक जानकारी के लिए मेरा कॉन्फिडेंस देखें
pidginइसके हर लॉन्च पर 3-आरडी कार्यस्थान पर जाने के लिए, मेरे पास कॉन्फ़िगरेशन में है assign [class="Pidgin"] $tag3।
मैंने इसे अपनी ~/.config/i3/configफ़ाइल के अंत में इसके साथ काम कर लिया है :
for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox
set $ws1 "Firefox"और फिर निम्नलिखित लाइन डालेंfor_window [class="Firefox"] move to workspace $ws1
बस उपयोग करें assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>। यह मेरे लिए काम कर रहा है।
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अपनी कॉन्फ़िग फ़ाइल में क्यों नहीं लिख सकता हूँ ?