우분투에서 시작할 때 xrandr 명령을 실행하는 방법


13

xrandr시작할 때 다음 명령을 어떻게 실행할 수 있습니까?

크 랜더

cvt 1368 768 
xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00 

1
안녕하세요 Udhaya Kumar 답변이 있으십니까? 관리하는 경우 알려주십시오.
Jacob Vlijm

답변:


21

시작 응용 프로그램에 복잡한 명령 추가

일반적으로 Dash> Startup Applications> Add를 선택하여 시작시 (로그인) 실행할 명령을 추가 할 수 있습니다. 이 경우에는 복잡한 명령을 실행해야합니다.

이를위한 두 가지 옵션이 있습니다.

  1. 별도의 스크립트를 작성하십시오.

    #!/bin/bash
    
    cvt 1368 768 
    # xrandr only works in X11 sessions, not Wayland
    [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
    xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
    xrandr --addmode VGA1 1368x768_60.00
    xrandr --output VGA1 --mode 1368x768_60.00

    스크립트를 빈 파일로 복사하고 다른 이름으로 저장 set_monitor.sh 한 후 위에서 설명한대로 시작 응용 프로그램에 다음 명령을 추가하십시오.

    /bin/bash /path/to/set_monitor.sh
    
  2. 명령을 하나의 (매우 긴) 명령에 연결하십시오.

     /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"
    

    이 경우, &&명령 사이를 사용 하면 각 명령이 별도의 행에있는 것처럼 이전 명령이 성공적으로 실행되는 즉시 각 명령이 실행됩니다.

    그런 다음 위에서 설명한대로 시작 응용 프로그램에 명령을 추가하십시오.

중요 사항 : 시작 응용 프로그램에 xrandr 명령 추가

xrandr시작에 명령을 추가하는 것은 까다로울 수 있습니다. 때로는 데스크탑이 완전히로드되기 전에 너무 일찍 실행되면 중단됩니다. 따라서 (마지막으로) 스크립트 또는 명령을 실행하기 위해 명령에 약간의 휴식을 추가해야 할 수도 있습니다.

/bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"

당신은 조금 연주해야 할 수도 있습니다 sleep 15최적의 시간을 찾으려면와 .

노트

첫 줄을 남겼습니다.

xrandr

아무것도 아니지만 화면 설정에 대한 정보를 표시하기 때문에 :)


6
모델 cvt을 이미 알고 있다면 명령 을 포함 할 필요가 없습니다 .
thethakuri

1
/bin/bash -c "..."포장 : 나를 위해 속임수를 썼는지
Superole

Kubuntu 17.10 sleep에서 "세션 시작 전"옵션을 선택하여 '시작 응용 프로그램'에 포함 되지 않은 명령을 추가했습니다 .
pat-s

1
삼년 전에 작성하기위한 한 # xrandr only works in X11 sessions, not Wayland. 그때 좋은 미래 교정.
WinEunuuchs2Unix

7

에 따르면 (가)에서 지금 로그인에 자동화 섹션, 난 내 자신의 스크립트를 만든 45custom_xrandr-settings과로 배치 /etc/X11/Xsession.d/. 우분투 14.04 LTS에서 잘 작동합니다. case해당 섹션에 설명 된 명령 뒤에 아래 코드를 배치 할 수 있습니다.

PRI_OUTPUT="DVI-0";
# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'Modeline\K.*') &&                           #grep evrything after 'Modline'
myNewModeName=\"$(echo $myNewMode | grep -oP '"\K[^"\047]+(?=["\047])' )\" &&       #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;       
xrandr --addmode $PRI_OUTPUT $myNewModeName;

위의 내용이 귀하가 찾고있는 것이라고 생각합니다. xrandr명령 을 실행하여 사용 가능한 출력을 간단히 볼 수 있습니다 . 출력이 될 수있다 VGA, VGA-0, DVI-0, TMDS-1또는DisplayPort-0 .

여기 내가 만든 완전한 스크립트가 있습니다.

# To configure xrandr automatically during the first login, 
# save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings: 

# If an external monitor is connected, place it with xrandr
# External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

# More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


PRI_OUTPUT="DVI-0";
SEC_OUTPUT="DisplayPort-0";
SEC_LOCATION="left";    # SEC_LOCATION may be one of: left, right, above, or below

case "$SEC_LOCATION" in
       left|LEFT)
               SEC_LOCATION="--left-of $PRI_OUTPUT"
               ;;
       right|RIGHT)
               SEC_LOCATION="--right-of $PRI_OUTPUT"
               ;;
       top|TOP|above|ABOVE)
               SEC_LOCATION="--above $PRI_OUTPUT"
               ;;
       bottom|BOTTOM|below|BELOW)
               SEC_LOCATION="--below $PRI_OUTPUT"
               ;;
       *)
               SEC_LOCATION="--left-of $PRI_OUTPUT"
               ;;
esac

# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'Modeline\K.*') &&                           #grep evrything after 'Modline'
myNewModeName=\"$(echo $myNewMode | grep -oP '"\K[^"\047]+(?=["\047])' )\" &&       #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;       
xrandr --addmode $PRI_OUTPUT $myNewModeName;


# Activate secondary out (display port)
xrandr | grep $SEC_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
#   xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
    xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
else
    xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
fi

2

파일을 작성하고 ~/.xprofile라인을 넣으십시오. X 사용자 세션이 시작될 때 실행됩니다.


3
이 작동하지 않았다. 명령이 너무 일찍 발생합니다.
Necktwi

@neckTwi 감사 xrandr --output ...합니다. 작동하지 않지만 이전 두 줄은 작동합니다. 이 모든 것이 저에게 효과적입니다.
golopot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.