3つのモニターを使用し、そのうちの2つは回転するサイドモニターです。
2つのモニターの回転を正常に設定できませんでしたが、ログインマネージャの起動後に使用できるコマンドが見つかりxorg.conf
ました。xrandr
xrandr --output DisplayPort-1 --rotate right --left-of DisplayPort-0
xrandr --output DisplayPort-2 --rotate left --right-of DisplayPort-0
現在、ログイン後に手動でこれらのコマンドを実行します。
ログイン時にモニターを回転させるには、どこに入れる必要がありますか?そしてグローバルにできますか?これにより、他のユーザーとしてログインするとモニターが回転します。または、各ユーザーがログインした後にこれを行うには、ユーザースクリプトが必要ですか?
答え1
私はあなたと少し似ている2画面レイアウトを使用しています。私は右側に通常の画面があり、左側に縦画面があります。私の設定によると、Xは両方の画面で完璧に動作します。
以下はあなたの状況に対する私の提案です(同じ画面もなく3つもないのでテストするのは難しいです)。しかし、動作するX設定を取得するのに十分です。
次のファイルを挿入します。/etc/X11/xorg.conf.d/
30-screen-dport0.conf
30-screen-dport1.conf
30-screen-dport2.conf
次のコンテンツが含まれています。
30-screen-dportcenter.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
30-screen-dportleft.conf
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
30-スクリーン-dportright.conf
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
90-serverlayout.conf
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識別子は、次の名前のファイルで定義されているビデオカードへの参照です。
20-nvidia.conf
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
答え2
$HOME/.config/systemd/user/set-display.service
XFCEを使用し、画面をオートコンプリートしない(conkyのために短縮された)QEMU VMで同様の状況を処理するために、userland systemdサービス(フルパス=)を使用しました。
[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は時々より多くの時間がかかります。 2 つの xrandr コマンドを実行するスクリプトを作成し、次に置き換えます。実行開始=(同様ExecStart=/path/to/your/script
)次に有効にします(systemctl --user enable set-display
)。
アップデート:ログイン後に手動でサービスを実行しても(rootユーザーと一般ユーザーとして試しても)、Debian Busterでシステムサービステストが機能しません。
答え3
ログインマネージャまたはウィンドウマネージャの起動時に実行されるファイルの1つにこれらの2行を含める必要があります。一部のファイルは、使用するログインマネージャとウィンドウマネージャとシステムのローカル設定によって完全に異なります。
たとえば、ログインマネージャを使用している場合は、設定で指定されたファイルに起動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
90xrandr
Debian では、/etc/X11/Xsession.d に次の内容を含む新しいファイルを作成するのが最善の場所だと思います。
xrandr --output DisplayPort-1 --rotate right --left-of DisplayPort-0
xrandr --output DisplayPort-2 --rotate left --right-of DisplayPort-0
ソースは次のようになるため、実行可能にしたりshebangを追加したりする必要はありません/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
実行中です。後ろにユーザーがログインしているため、slim
起動するたびにデフォルトのモニター設定を使用する必要があります。
答え4
コマンドラインから(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
再起動後、画面は自動的に回転するはずです。