私は3つのモニターを使用していますが、2つのモニターは回転しています。
正常に構成できませんでしたxorg.conf
2つのモニターをローテーションするために使用しましたが、ログインマネージャーの起動後に使用できるxrandr
コマンドが見つかりました。
xrandr --output DisplayPort-1 --rotate right --left-of DisplayPort-0
xrandr --output DisplayPort-2 --rotate left --right-of DisplayPort-0
現在、ログイン後にこれらのコマンドを手動で実行しています。
ログイン時にモニターが回転するように、これらをどこに配置すればよいですか。また、私はおそらくそれをグローバルに行うことができますか?他のユーザーとしてログインすると、モニターが回転します。または、すべてのユーザーがログイン後にこれを行うにはユーザースクリプトが必要ですか?
私はあなたに少し似ている2画面のレイアウトを使用しています。私の画面は右側が通常の画面、左側が縦長の画面です。私のセットアップでは、2つの画面でXが完全に機能しています。
これがあなた自身のケースに対する私の提案です(私には同じ画面がなく、3つの画面がないのでテストするのは困難です)が、X設定を機能させるには十分です。
次のファイルを/etc/X11/xorg.conf.d/
30-screen-dport0.conf
30-screen-dport1.conf
30-screen-dport2.conf
次の内容で:
Section "Monitor"
Identifier "DisplayPort-0"
Option "Primary" "true"
Option "PreferredMode" "3840x2160" # Adapt this if you resolution is not the same
Option "Position" "1200 0"
EndSection
Section "Screen"
Identifier "DPC"
Device "nVidia" # here you choose your driver
Monitor "DisplayPort-0"
EndSection
Section "Monitor"
Identifier "DisplayPort-1 "
Option "LeftOf" "DisplayPort-0"
Option "Rotate" "left"
Option "PreferredMode" "1920x1200"
Option "Position" "0 0"
EndSection
Section "Screen"
Identifier "DPL"
Device "nVidia"
Monitor "DisplayPort-1"
EndSection
Section "Monitor"
Identifier "DisplayPort-2"
Option "RightOf" "DisplayPort-0"
Option "Rotate" "right"
Option "PreferredMode" "1920x1200"
Option "Position" "5040 0" # 1200 + 3840
EndSection
Section "Screen"
Identifier "DPR"
Device "nVidia"
Monitor "DisplayPort-2"
EndSection
Section "ServerLayout"
Identifier "Main"
Screen 0 "DPL"
Screen 1 "DPC"
Screen 2 "DPR
EndSection
Xserverの座標は次のように機能します
0 X
+ -----------------> X-axis
|0
|
|
|
|
|
| Y
V Y-axis
NVidia識別子は、次のファイルで定義されたビデオカードへの参照です。
Section "Device"
Identifier "nVidia"
Driver "nouveau"
Option "AccelMethod" "sna"
Option "GLXVBlank" "true"
# Need to flag this as only referring to one output on the card
Screen 0
EndSection
ユーザーランドのsystemdサービス(フルパス= $HOME/.config/systemd/user/set-display.service
)を使用して、XFCEを使用し、画面を自動的に埋めない(conkyのために短くする)QEMU VMで同様の状況を処理します。
[Unit]
Description=Set Display Resolution
[Service]
ExecStartPre=/bin/sleep 5
Type=oneshot
ExecStart=/usr/bin/xrandr --output Virtual-0 --mode 1499x996
[Install]
WantedBy=default.target
DEが完全に読み込まれていることを確認するには、sleepコマンドを使用します。 SSD上のVMは常に5秒以下で問題なく、HDDのVMはそれ以上必要な場合がありました。両方のxrandrコマンドを実行するスクリプトを作成し、それをExecStart =(ExecStart=/path/to/your/script
のようなもの)に置き換え、それを有効にします(systemctl --user enable set-display
)。
更新:ログイン後にサービスを手動で実行した場合(rootおよび通常のユーザーとして試行)でも、Debianバスターのシステムサービスとしてのテストは機能しませんでした。
コマンドラインから(nanoを使用している場合は、vimに置き換えます)
Sudo nano /etc/xdg/autostart/rotate-screen-1.desktop
次に、以下を貼り付けて保存します。
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Name=Xrandr Screen 1 Rotation
Icon=preferences-desktop-screensaver
Exec=xrandr --output DisplayPort-1 --rotate right --left-of DisplayPort-0
Terminal=false
OnlyShowIn=LXDE;OPENBOX;GNOME;KDE;
Categories=System;Security;Utility;
StartupNotify=false
X-KDE-autostart-after=panel
X-OPENBOX-Autostart-enabled=true
次に、2番目の画面についても同じです
Sudo nano /etc/xdg/autostart/rotate-screen-2.desktop
次に、以下を貼り付けて保存します。
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Name=Xrandr Screen 2 Rotation
Icon=preferences-desktop-screensaver
Exec=xrandr --output DisplayPort-2 --rotate left --right-of DisplayPort-0
Terminal=false
OnlyShowIn=LXDE;OPENBOX;GNOME;KDE;
Categories=System;Security;Utility;
StartupNotify=false
X-KDE-autostart-after=panel
X-OPENBOX-Autostart-enabled=true
再起動後、画面は自動的に回転するはずです
これらの2行は、ログインマネージャーまたはウィンドウマネージャーの起動時に実行されるファイルの1つに配置する必要があります。どのファイルを使用するかは、使用するログインマネージャーとウィンドウマネージャー、およびシステムのローカルセットアップによって異なります。
たとえば、slim
ログインマネージャーを使用する場合は、スタートアップコマンドを構成のlogin_cmd
で指定されたファイルに配置する必要があります。例えばDebianでは:
$ grep '^login_cmd ' /etc/slim.conf
login_cmd exec /bin/bash -login /etc/X11/Xsession %session
しかしSlackwareでは:
$ grep '^login_cmd ' /etc/slim.conf
login_cmd exec /bin/bash -login ~/.xinitrc %session
Debianでは、/ etc/X11/Xsession.dに作成された新しいファイルが最適な場所だと思います。たとえば、次の内容で90xrandr
と言います。
xrandr --output DisplayPort-1 --rotate right --left-of DisplayPort-0
xrandr --output DisplayPort-2 --rotate left --right-of DisplayPort-0
/etc/X11/Xsession
から供給されるため、実行可能にしたり、シバンを追加したりする必要はありません。
# use run-parts to source every file in the session directory; we source
# instead of executing so that the variables and functions defined above
# are available to the scripts, and so that they can pass variables to each
# other
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
set +e
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
set -e
fi
また、login_cmd
が実行されるafterユーザーがログインするため、起動するたびにデフォルトのモニター設定でslim
を使用する必要があることに注意してください。