दोहरी मॉनिटर सेटअप पर पूर्ण स्क्रीन अनुप्रयोग


9

लिनक्स पर ऑप्टिमस सही से बहुत दूर है, लेकिन मूल nVidiaचालकों का उपयोग करते हुए मैंने पिछले दिनों ज्यादातर मुद्दों को हल किया है, मुख्य रूप से एक को छोड़कर।

जब भी मैं एक पूर्ण स्क्रीन अनुप्रयोग चलाता हूं, जैसे Kodiया कुछ Steamगेम की स्थिति बंद होती है, या तो स्क्रीन 2 स्क्रीन के ठीक बीच में 1080p पर केंद्रित होती है या किसी भी डिस्प्ले पर केवल बाएं आधे भाग को दिखाती है।

मुझे लगता है कि यह इस बात के कारण है कि कैसे मैंने मल्टी मॉनिटर सेटअप का उपयोग करके काम किया xrandr। जब sddmयह इनिशियलाइज़ होता है तो यह निम्न कमांड चलाता है:

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --output HDMI-1-1 --mode 1920x1080 --pos 1920x0 --output HDMI-0 --primary --mode 1920x1080 --panning 3840x1080+0+0/0x0+0+0/0/0/-1920/0

हालाँकि यह पूरी तरह से काम करता है क्योंकि आप देख सकते हैं कि कंटेनर 3x1080p है क्योंकि यह 3 स्क्रीन (सभी 1080p) होने के कारण है, मेरे आंतरिक डिस्प्ले को अक्षम कर रहा है और पैनिंग का उपयोग करके मैं 2 मॉनिटर के आउटपुट को एक दूसरे के ठीक बगल में शिफ्ट करने में सक्षम हूं।

ऐसा प्रतीत होता है कि मैं पूर्ण स्क्रीन व्यवहार, नूर को KDEया उपयोग करके नियंत्रित नहीं कर सकता put। एप्लिकेशन सेटिंग में इधर-उधर खेलना मैं यह चुन सकता हूं कि इसे किस रेंडर पर मॉनिटर करना है, लेकिन यह सेंटर वैसे भी रेंडर करता है।

स्पष्टीकरण देना:

xs on monitor left at 1920/2
ys on monitor left at 1080
xe on monitor right at (1920/2)+1920
ye on monitor right at 1080

यहाँ दृश्य संदर्भ के लिए एक कड़ी है

ईमानदार होने के लिए, मैंने कई चीजों की कोशिश की है और मैं यहां नुकसान में हूं। मैं लिनक्स विशेषज्ञ नहीं हूं, मैं इसे केवल 4 साल के लिए अपने ऑपरेटिंग सिस्टम के रूप में उपयोग कर रहा हूं।

चूंकि केडीई समर्थन करता है इसलिए Waylandमैं इसे एक कोशिश देने के लिए तैयार हूं, हालांकि पहले से ऑप्टिमस के साथ मेरे पास मौजूद मुद्दों की मात्रा के कारण मैं इसे आज़माने के लिए अनिच्छुक हूं क्योंकि सब कुछ इतनी आसानी से चल रहा है और ऑप्टिमस / एनवीडिया / वेलैंड संगतता के बारे में बहुत कम जानकारी है ।

क्या ऐसा कुछ भी है जो शायद मैं कट्टरपंथी के रूप में कुछ नया करने के लिए एक स्थिर प्रदर्शन प्रबंधक को बदलने से पहले कर रहा हूं? या शायद अनुप्रयोगों को चलाने के लिए टर्मिनल से एक सरलीकृत आदेश मैं पूरी तरह से याद किया।

किसी भी मदद की सराहना की है।

अतिरिक्त जानकारी:

xorg.conf, xorg.conf.d खाली है।

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
    Option "AllowEmptyInitialConfiguration"
EndSection

टिप्पणियों में यदि आवश्यक हो तो अधिक जानकारी का अनुरोध करें।


वर्तमान में वीलैंड एनवीडिया के मालिकाना ड्राइवरों के साथ अनुपयोगी है (लेकिन नोव्यू के साथ ठीक काम करता है)। dunno कैसे optimus इसे प्रभावित करता है।
क्विक्सोटिक

@quixotic Little, मुझे असतत वीडियो कार्ड पर काम करने वाले एचडीएमआई पोर्ट प्राप्त करने में सक्षम होने की आवश्यकता है। भौंरा केवल एक विशिष्ट एप्लिकेशन के लिए पोर्ट को सक्षम करने के रूप में दूर जाता है। मतलब अगर यह सच है कि आप क्या कह रहे हैं तो आप कई मॉनिटरों का समर्थन नहीं कर पाएंगे। लेकिन मैंने पढ़ा है nvidiaकि मैं काम कर रहा था mirऔर waylandसमर्थन कर रहा था , लेकिन यह कुछ महीने पहले था।
Xorifelse

जवाबों:


1

मैंने कुछ वर्षों से शीर्ष पर साइड-बाय-साइड और (वर्तमान में) टी-आकार के डेस्कटॉप को आर्क लिनक्स पर सेट करने के लिए कुछ लिपियों का उपयोग किया है xrandr। अपनी आवश्यकताओं के लिए पक्ष-by-side.sh को अनुकूलित करना एक सरल काम होना चाहिए :

#!/bin/sh
eval `\`dirname -- "$0"\`/monitor_resolutions.sh`
expected_monitors=2
if [ "${monitor_count:-0}" -ne "$expected_monitors" ]
then
    echo "$0: Expected ${expected_monitors} monitors; found ${monitor_count:-0}." >&2
    exit 1
fi

xrandr \
    --output "$monitor1_name" \
        --mode ${monitor1_width}x${monitor1_height} \
        --rotate normal \
    --output "$monitor2_name" \
        --mode ${monitor2_width}x${monitor2_height} \
        --right-of "$monitor1_name" \
        --rotate normal

Monitor_resolutions.sh सहायक स्क्रिप्ट:

#!/bin/sh
#
# NAME
#        monitor_resolutions.sh - Variables for monitor resolutions
#
# SYNOPSIS
#        eval `./monitor_resolutions.sh`
#
# DESCRIPTION
#        Prints a set of `eval`-able variable assignments with monitor name,
#        width and height for each monitor plus a monitor count.
#
# EXAMPLES
#        eval `./monitor_resolutions.sh`
#               Assign monitor1_name, monitor1_width, monitor1_height,
#               monitor2_name, etc. and monitor_count variables.
#
# BUGS
#        https://github.com/l0b0/tilde/issues
#
# COPYRIGHT
#        Copyright (C) 2013-2014 Victor Engmark
#
#        This program is free software: you can redistribute it and/or modify
#        it under the terms of the GNU General Public License as published by
#        the Free Software Foundation, either version 3 of the License, or
#        (at your option) any later version.
#
#        This program is distributed in the hope that it will be useful,
#        but WITHOUT ANY WARRANTY; without even the implied warranty of
#        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#        GNU General Public License for more details.
#
#        You should have received a copy of the GNU General Public License
#        along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
################################################################################

monitor_info() {
    xrandr --query | tee ~/.xsession-xrandr-query
}

monitor_resolutions() {
    # Input: XRandR monitor info
    # Output: Lines with monitor name, width and height separated by spaces
    while read -r word1 word2 _
    do
        if [ "${word2:-}" = 'connected' ]
        then
            IFS='xi ' read -r width height _
            printf '%s %d %d\n' "$word1" "$width" "$height"
        fi
    done
}

monitor_assignments() {
    # Input: Lines with monitor name, width and height separated by spaces
    # Output: eval-able variable assignments for each input value, including a final count
    count=0
    while read monitor width height
    do
        count=$(($count + 1))
        printf "monitor%d_name='%s'\n" "$count" "$monitor"
        printf "monitor%d_width='%s'\n" "$count" "$width"
        printf "monitor%d_height='%s'\n" "$count" "$height"
    done
    printf "monitor_count='%s'\n" "$count"
}

monitor_info | monitor_resolutions | monitor_assignments

side-by-side.shअपने स्थानीय .xprofileया अन्यथा एक्स शुरू करने के बाद ही चलाएं , और आपको जाने के लिए अच्छा होना चाहिए।

इस सेटअप ने मालिकाना और खुले स्रोत ड्राइवरों दोनों का उपयोग करते हुए एएमडी और एनवीडिया वीडियो कार्ड के साथ काम किया है। मुझे नहीं लगता कि मैंने कभी एक्स के बजाय वेलैंड के साथ प्रयास किया है, लेकिन मुझे संदेह है कि वेफलैंड के xrandrसाथ काम करना चाहिए ।


मैंने इस कोड के साथ कई चीजों का परीक्षण किया, संशोधित किया है और कोशिश की है कि यह स्क्रीन फाड़, कोई स्क्रीन या जिसके परिणामस्वरूप स्क्रीन सिर्फ ताज़ा नहीं हुई (मेरे माउस को छोड़कर) में काम कर सकता है (एनवीडिया से जुड़े दूसरे मॉनिटर पर) टुकड़ा)। यह वास्तव में पैनिंग है जो इसे ठीक करता है, लेकिन एक ही समय में समस्या का कारण होने की संभावना है।
Xorifelse

ऐसा सुनने के लिए क्षमा करें। मुझे डर है कि यह मेरे खुद के ज्ञान की सीमा है, क्योंकि एक बार काम करने का सेटअप होने के बाद जांच बंद हो गई थी।
l0b0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.