デュアルモニター設定のフルスクリーンアプリ

デュアルモニター設定のフルスクリーンアプリ

LinuxのOptimusは完璧とは遠いですが、基本的なnVidiaドライバを使用すると、過去に遭遇したほとんどの問題が1つを除いて解決されました。

Kodi一部のゲームなどのフルスクリーンアプリケーションを実行するたびにSteam位置がオフになり、画面が1080pから2つの画面の中央にあるか、左半分だけがモニタに表示されます。

の使い方のためだと思います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

ビジュアル参照リンクは次のとおりです。

正直言ってたくさん試してみましたが、ここでは迷いました。私はLinuxの専門家ではなく、約4年間Linuxを唯一のオペレーティングシステムとして使用してきました。

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

必要に応じてコメントでより多くの情報をリクエストしてください。

ベストアンサー1

少し書いてみました。スクリプトxrandr私たちは、長年にわたってArch Linuxで(現在の)T字型デスクトップを並べて構築することに取り組んできました。これは適応するための簡単な作業でなければなりません。並んで.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

モニター解像度.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グラフィックカードで機能します。 Xの代わりにWaylandを使ったことはありませんが、xrandrWaylandと一緒に動作する場合は動作すると思います。

おすすめ記事