แอปพลิเคชั่นเต็มหน้าจอในการตั้งค่าจอภาพสองจอ


9

Optimus บน Linux นั้นยังห่างไกลจากความสมบูรณ์แบบ แต่การใช้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) การปิดการใช้งานจอแสดงผลภายในของฉันและการแพนกล้อง

แต่ดูเหมือนว่ามันฉันไม่สามารถควบคุมการทำงานแบบเต็มหน้าจอ noor ในหรือโดยการใช้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

นี่คือลิงค์สำหรับการอ้างอิงด้วยภาพ

พูดตามตรงฉันได้ลองหลายอย่างแล้ว ฉันไม่ใช่ผู้เชี่ยวชาญด้าน Linux ฉันใช้งานมาเป็นเวลาประมาณ 4 ปีในฐานะระบบปฏิบัติการเดียวของฉัน

เนื่องจาก KDE สนับสนุนWaylandฉันยินดีที่จะลองทำ แต่เนื่องจากปัญหาที่ฉันมีกับ Optimus ในอดีตที่ผ่านมาฉันลังเลที่จะลองใช้เพราะทุกอย่างทำงานได้อย่างราบรื่นและมีข้อมูลเกี่ยวกับความเข้ากันได้ของ Optimus / Nvidia / 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

ขอข้อมูลเพิ่มเติมหากต้องการในความคิดเห็น


ในปัจจุบัน wayland ไม่สามารถใช้งานได้กับไดรเวอร์ที่เป็นกรรมสิทธิ์ของ nvidia (แต่ใช้งานได้ดีกับนูโว) dunno ออปติมัสมีผลกับสิ่งนี้อย่างไร
quixotic

@quixotic Little ฉันต้องการความเหมาะสมเพื่อให้สามารถใช้งานพอร์ต HDMI บนการ์ดจอแยกได้ Bumblebee ไปได้ไกลเท่าที่เปิดใช้งานพอร์ตสำหรับแอปพลิเคชันเฉพาะ หมายความว่าถ้ามันเป็นจริงสิ่งที่คุณพูดนูโวจะไม่สามารถรองรับจอภาพหลายจอได้ แต่ฉันอ่านแล้วnvidiaก็กำลังทำงานmirและให้waylandการสนับสนุน แต่นั่นเป็นสองสามเดือนที่ผ่านมา
Xorifelse

คำตอบ:


1

ผมเคยใช้บางสคริปต์ด้านบนของxrandrปีบางตอนในการตั้งค่าด้านโดยด้านข้างและเดสก์ท็ (ปัจจุบัน) ทีมีรูปร่างใน Arch ลินุกซ์ มันควรจะเป็นงานง่าย ๆ ที่จะปรับด้านข้างโดยด้านข้างให้ตรงกับความต้องการของคุณ:

#!/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หรือหลังจากเริ่ม X และคุณควรจะไป

การตั้งค่านี้ใช้งานได้กับทั้งการ์ดแสดงผล AMD และ nVidia โดยใช้ทั้งไดรเวอร์ที่เป็นกรรมสิทธิ์และโอเพ่นซอร์ส ฉันไม่คิดว่าฉันเคยลองกับ Wayland แทนที่จะเป็น X แต่ฉันคิดว่ามันน่าจะใช้ได้ถ้าxrandrทำงานกับ Wayland ได้


ฉันได้ทดสอบแก้ไขและลองหลาย ๆ อย่างด้วยรหัสนี้และไม่สามารถทำงานได้ทำให้เกิดการฉีกขาดหน้าจอไม่มีหน้าจอหรือหน้าจอไม่รีเฟรช (ยกเว้นเมาส์ของฉัน) (บนจอภาพที่สองที่เชื่อมต่อกับ NVIDIA ชิป). มันคือการแพนกล้องที่แก้ไขสิ่งนี้ แต่ในเวลาเดียวกันก็เป็นสาเหตุของปัญหาเอง
Xorifelse

เสียใจเป็นอย่างยิ่ง. ฉันกลัวว่านี่เป็นขีด จำกัด ของความรู้ของฉันเองเนื่องจากการสืบสวนหยุดลงเมื่อฉันมีการตั้งค่าการทำงาน
l0b0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.