모니터 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은 때때로 더 많은 시간이 걸립니다. 두 개의 xrandr 명령을 실행하는 스크립트를 작성하고 다음으로 바꾸십시오.실행 시작 =(비슷함 ExecStart=/path/to/your/script
) 그런 다음 활성화합니다( systemctl --user enable set-display
).
업데이트: 로그인 후 수동으로 서비스를 실행하더라도(루트 및 일반 사용자로 시도) Debian Buster에서 시스템 서비스 테스트가 작동하지 않습니다.
답변3
로그인 관리자나 창 관리자가 시작될 때 실행되는 파일 중 하나에 이 두 줄을 넣어야 합니다. 어떤 파일은 사용하는 로그인 관리자 및 창 관리자와 시스템의 로컬 설정에 따라 전적으로 달라집니다.
예를 들어 로그인 관리자를 사용하는 경우 구성에 지정된 파일 slim
에 시작 명령을 넣어야 합니다 . login_cmd
데비안을 예로 들어보겠습니다:
$ 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
데비안에서는 /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
그럼 두 번째 화면도 마찬가지예요
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
재부팅 후 화면이 자동으로 회전해야 합니다.