कई प्रदर्शनों के लिए i3 पर कार्यस्थान निर्दिष्ट करें


16

मैंने अपने लिनक्स लैपटॉप पर i3 का उपयोग किया है। मैं आमतौर पर केवल लैपटॉप के आंतरिक मॉनिटर (डिस्प्ले eDP1) का उपयोग कर रहा हूं , लेकिन जब मैं काम पर होता हूं तो मैं अपने कंप्यूटर के एचडीएमआई पोर्ट (डिस्प्ले HDMI2) में एक सेकेंडरी मॉनिटर कनेक्ट करने के लिए जाता हूं । अब तक, मैंने अपने i3 कॉन्फिग फ़ाइल में इन कमांडों को जोड़कर यह काम ठीक कर दिया है:

# use workspaces on different monitors
workspace "1: P1" output eDP1
workspace "2: P2" output eDP1
workspace "3: P3" output eDP1
workspace "4: P4" output eDP1
workspace "5: P5" output eDP1
workspace "6: S1" output HDMI2 
workspace "7: S2" output HDMI2
workspace "8: S3" output HDMI2
workspace "9: S4" output HDMI2
workspace "10: S5" output HDMI2

# add HDMI monitor when connected
exec --no-startup-id xrandr --output HDMI2 --right-of eDP1
bindsym $mod+m exec --no-startup-id xrandr --output HDMI2 --auto --right-of eDP1

दूसरे शब्दों में, जब मैं अपने एचडीएमआई डिस्प्ले को कनेक्ट करता हूं तो मैं इसे दबाने के लिए i3 प्राप्त करने के लिए सिर्फ Mod+ दबाता हूं M, इसे अपने प्राथमिक प्रदर्शन के दाईं ओर रखें, और 5 नामित कार्यस्थानों (6-10) को प्रतिनिधि करें।

यहां समस्या है: घर पर, मेरे पास एक और मॉनिटर है जिसे मैं वीजीए (डिस्प्ले DP2) के साथ जोड़ सकता हूं । मैं xrandrइस प्रदर्शन को अपने प्राथमिक प्रदर्शन के दाईं ओर रखने के लिए ऊपर भी कमांड चला सकता हूं , लेकिन मुझे कार्यस्थानों को डिफ़ॉल्ट रूप से इस डिस्प्ले को सौंपा नहीं जा सकता है, जब तक कि मैं अपने एचडीएमआई मॉनिटर के लिए पहले से मौजूद नियमों को प्रतिस्थापित नहीं करता। मैं चाहूंगा कि ये दोनों कार्यस्थल समान ही काम करें, जो मेरे द्वारा उपयोग किए जाने वाले मॉनिटर पर हो, इसलिए यह कोई विकल्प नहीं है।

TL, DR क्या दो अलग-अलग डिस्प्ले पर कार्यस्थानों को असाइन करने का एक तरीका है, जिसके आधार पर डिस्प्ले कनेक्ट होता है (यह मानते हुए कि वे एक ही समय में कनेक्ट नहीं होंगे)?

जवाबों:


22

आप एकल कार्यक्षेत्र में कई आउटपुट नहीं दे सकते, देखें: https://github.com/i3/i3/issues/555

तो एक ही तरीका है i3 config को गतिशील रूप से बदलना। आप हॉटकी स्क्रिप्ट को असाइन कर सकते हैं जो 2 काम कर रही होगी: मॉनिटर आउटपुट को बदलते xrandrऔर कार्यस्थानों को साथ ले जाना i3-msg:

xrandr --output DP2 --auto --right-of eDP1
i3-msg "workspace 6, move workspace to output DP2"
...
i3-msg "workspace 10, move workspace to output DP2"

उपरोक्त स्क्रिप्ट के साथ, आप 6-10 कार्यस्थानों को DP2 में स्थानांतरित करेंगे और कार्यक्षेत्र 10 पर बने रहेंगे।

अपडेट 2019: एकाधिक आउटपुट असाइनमेंट v4.16 से शुरू किया गया था, https://i3wm.org/docs/userguide.html#workspace_screen देखें । अब आप उन्हें इस तरह इस्तेमाल कर सकते हैं:

workspace "6: S1" output HDMI2 VGA

पहले उपलब्ध आउटपुट का उपयोग किया जाएगा।


2

उपयोगकर्ता के गाइड के अनुसार , वाक्य रचना:

workspace 1 output eDP1
...
workspace 6 output HDMI2 VGA

कार्य करना चाहिए।

या आप अपनी मशीनों पर प्राथमिक आउटपुट को परिभाषित कर सकते हैं, यदि सेट नहीं किया जाता है ( xrandr --output <output> --primary), और इस सिंटैक्स का उपयोग करें:

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