잘못된 로그인 화면 해상도


44

이상한 경우에는 일반적으로 컴퓨터를 잘못 다시 시작한 후 로그인 화면 해상도가 기본 1440x900이 아니지만 1600x900이라고 생각합니다. 이제이 모니터는 처리하도록 설계되지 않은 해상도를 처리하는 데 실제로 좋지 않으며 화면 주위를 어리석은 "잘못된 해상도"상자로 표시됩니다.

로그인 화면이 1440x900 해상도로로드되도록하는 방법이 있습니까? Unity 및 LightDM으로 Ubuntu 11.10을 실행하고 있습니다.


나를 위해, 모든 솔루션 에서이 하나만 18.04에서 lightdm을 실행했습니다 : askubuntu.com/questions/507726/…
Takkat

답변:


40

이를 위해 스크립트를 작성할 수 있습니다 (소스 LightDM Resolution ).

  1. 먼저 모니터 식별자가 무엇인지 찾아야합니다. 터미널을 열고 terminal유니티 대시에 입력 을 시작하여 옵션을 보거나 Ctrl+ Alt+를 누릅니다.T
  2. 디스플레이 세부 사항을 표시하려면이 명령을 입력 / 복사하십시오.

    xrandr -q
    

    모니터가 하나 뿐인 경우 다음과 같이 출력에 한 줄이 표시됩니다 (아마도 다른 값을 가지면 그 시작 부분의 식별자).

    DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
    

    이 경우 화면 식별자는 DVI-0입니다.

  3. 좋아하는 텍스트 편집기를 열고이 예제에 gedit를 사용 하고 Alt+를 누른 다음F2gedit

  4. 다음을 입력하거나 복사하십시오 :

    #!/bin/sh
    xrandr --output DVI-0 --primary --mode 1440x900
    

    이것을 데스크탑에 다음과 같이 저장하십시오 lightdmxrandr.sh

  5. 실제로 사용하기 전에 스크립트를 테스트 할 수 있습니다. 터미널로 돌아가 방금 저장 한 위치로 이동합니다.

    cd ~/Desktop
    

    이제 실행 가능하게 만들어야합니다.

    chmod a+rx lightdmxrandr.sh
    

    이제 실행하십시오.

    ./lightdmxrandr.sh
    

    (로그인 후 화면이 자동으로 수정되는 경우 차이가 표시되지 않으므로 테스트 해상도가 다르지만 테스트 중에는 작동하는 것으로 알고있을 수 있습니다)

  6. 이제 우리가 만든 작은 스크립트를 옮깁니다.

    sudo mv ~/Desktop/lightdmxrandr.sh /usr/share/.
    

    사용하지 않으면 sudo권한 오류가 발생할 수 있습니다 (개인 폴더에서이 폴더를 사용합니다)

  7. 이제 이것을 lightdm에서 실행하고 올바른 폴더로 이동해야합니다.

    cd /etc/lightdm
    
  8. lightdm conf 파일을여십시오 :

    sudo gedit lightdm.conf
    
  9. 이제 마지막 줄 다음에 스크립트를 실행하는 지침을 추가하고 저장하십시오.

    display-setup-script=/usr/share/lightdmxrandr.sh
    

이제 재부팅하면 lightdm 로그인 화면에서 올바른 해상도를 설정해야합니다.

(이러한 지침은 시간이 오래 걸릴 수 있지만 시간이 오래 걸리지 않습니다)


1
감사! 아래 언급 된 Leon의 스크립트를 사용합니다. askubuntu.com/a/88882/28071
beanaroo

좋은 스크립트입니다. 나중에 사용할 수 있도록 저장할 것입니다!
captain_G

불행히도 이것은 우분투 13.04의 문제를 해결합니다. OS에 큰 변화가 있었기 때문일 수 있습니다.
Patrick

또한 Ubuntu 13.10 + NVIDIA 드라이버 319에서는 작동하지 않습니다. 스크립트가 실행되었지만 해상도가 변경되지 않습니다. 아마도 NVIDIA 드라이버가이를 무시하기 때문입니다.
연설자

나는 chown root:root또한 그것이 있어야한다고 생각 합니까?
Aquarius Power

38

13.04를 실행하는 데 완벽하게 작동하는 매우 간단한 해결 방법을 찾았습니다. 영구적으로 연결되지 않은 24 인치 외부 화면이있는 랩톱에서 ( 업데이트 : 13.10)

여기 에서 복사 하겠습니다

  1. 로그인
  2. xrandr 또는 디스플레이 제어 유틸리티를 사용하여 로그인 화면에서 모니터를 구성 할 방법을 모니터하십시오
  3. ~ / .config / monitors.xml을 /var/lib/lightdm/.config로 복사하십시오.

이미 모니터를 올바르게 구성 했으므로 3 단계 만 수행하면됩니다.

여기에 주어진 다른 답변은 저에게 효과적이지만 다른 시나리오에서는 사용할 수없는 시스템 위험을 발생시키는 동안 특정 시나리오에서만 작동했습니다 (LOW GRAPHICS MODE ERROR). 예를 들어 외부 모니터가 영구적으로 연결되어 있거나 (@captain_G가 응답을 수락 함) 항상 외부 모니터에 사용 된 출력에 동일한 장치가 연결되어있는 경우 (@Axlrod의 스크립트). @MarcoV의 답변이 가장 일반적인 솔루션 인 것 같지만 여전히 스크립팅 규칙이 포함됩니다.


4
다른 답변보다 훨씬 간단합니다 ... 왜 더 많은 투표권이 없는지 궁금합니다. 글쎄, 내 것이있다.
aap

그런 다음 다시 로그인 화면에 도움이 되더라도 다른 사용자가 디스플레이 해상도를 다시 설정할 필요가 없다면 좋을 것입니다.
aap

3
파일을 복사하는 대신 화면 설정을 변경할 때마다 자동으로 업데이트되도록 링크를 만드십시오. $ sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml(아니요, 심볼릭 링크는 작동하지 않습니다.)
Nathan JB

3
어떤 응용 프로그램이 쓰기 / 업데이트 monitors.xml됩니까? XFCE를 사용하고 있는데이 파일은 2 살이며 완전히 구식입니다. 비슷한 파일을 찾을 수 없습니다.
scai

1
해상도를 변경하는 스크립트를 만드는 것과는 반대로 올바른 방법입니다. .config / monitors.xml은 다중 모니터 구성을 지원할 수 있습니다 (즉, 도크를 사용하는 작업 환경에서의 설정 및 2 개의 모니터 대 집이없는 독 및 외부 모니터 설정). 해결 방법을 설정하기 위해 수동 스크립트를 작성하는 것은 비교적 복잡합니다. |
Iyad K

20

스크립트를 작성하는 대신 /etc/lightdm/lightdm.conf다음과 같은 행 을 파일에 추가 하십시오.

display-setup-script=xrandr --output default --mode 1280x720

삽입하기 전에 잘못된 명령으로 lightdm이 시작되지 않기 때문에 명령이 작동하는지 확인하십시오.


안녕, 당신의 xrand명령은 말합니다 :warning: output default not found; ignoring
SebMa

@SebMa 올바른 출력 이름을 사용해야합니다!
Ken Sharp

2

랩톱 연결을 끊고없이 사용할 수있는 다중 모니터 설정의 경우 간단한 해결책은 다음과 같습니다.

운영:

xrandr

랩톱을 사용하는 장치는 일반적으로 LVDS1이며 DP2 (디스플레이 포트 2)가 HDMI1 또는 다른 장치 일 수 있습니다. 해당 장치 옆에 해상도가있는 장치를 찾으십시오.

이 작은 bash 파일을 작성하십시오.

#!/bin/bash

mode="$(xrandr -q|grep -A1 "DP2 connected"| tail -1 |awk '{ print $1 }')"
if [ -n "$mode" ]; then
  xrandr --output LVDS1 --off
  xrandr --output DP2 --primary --mode 2540x1440
fi

LVDS1을 랩탑 모니터 연결로 교체하십시오.

DP2를 외부 모니터 연결로 교체하십시오.

bash 스크립트를 / usr / bin / local /에 배치하십시오.

chmod + x 스크립트

/etc/lightdm/lightdm.conf 편집

더하다

display-setup-script=/path/to/my/script

재부팅하십시오.

해상도 변경은 실제로 해당 디스플레이에있을 때만 발생합니다.

동일한 커넥터에 다른 모니터 / 해상도를 가진 여러 장소가있는 경우 bash 스크립트에 더 많은 정보를 제공해야합니다.


2

위의 Axlrod의 스크립트가 약간 개선되었습니다 .

기본 모니터를 사용할 모니터와 노트북 디스플레이 (LVDS)를 지정하기 만하면됩니다.

#! / bin / bash
LVDS = "LVDS-0"
PRIMARY = "VGA-0"

get_displays () 함수
{
        xrandr -q | 그렙 연결 | awk '{print $ 1}'
}

get_resolution () 함수
{
        [[-z "$ 1"]] && 리턴 0 || xrandr -q | grep -A1 $ 1 | 꼬리 -1 | awk '{print $ 1}'| grep -e "^ [0-9]"
}

$ (get_displays)로 표시; 하다
        resolution =`get_resolution $ display`

        [[$ display == $ PRIMARY]] && arg = "-기본";
        [[-n $ resolution]] && mode = "-mode $ resolution";

        만약 [[$ display == $ LVDS]]; 그때
                xrandr --output $ display --off
        elif [[-n $ mode]]; 그때
                xrandr --output $ display $ arg $ mode
        fi
        설정되지 않은 모드 인수 분해능;
끝난

1
sudo gedit /usr/share/X11/xorg.conf.d/52-myres.conf

그런 다음 파일에서 :

Section "Monitor"
    Identifier "VGA1"
    Option "PreferredMode" "1152x864"
EndSection

저장 및 종료. 값은 command에서 얻었습니다 xrandr -q. VGA1내 커넥터 1152x864의 이름이며 해상도의 이름입니다.

이것은 Xubuntu 16.04에서 작동합니다. 기본 해상도를 설정하고 기본적으로 지원되는 최고 해상도로 설정하는 대신 로그인 화면의 해상도를 설정할 수 있습니다.

여기 에서 답변을 수정


1
open-vm-tools 및 open-vm-tools-desktop을 설치 한 후 monitors.xml을 /var/lib/lightdm/.config에 복사하면 더 이상 작동하지 않습니다. 이와 같은 선호 해상도를 지정하면 해결되었습니다.
jropella

1

내가 유용하다고 생각한 것은 Ubuntu 안내서 웹 사이트 의 게시물이었습니다 . 나는 우분투 11.10에서 너무 많은 것을 시도했고 심지어 그놈 클래식을 사용하려고했습니다. 해상도는 항상 1024x768이고 수동으로 1440x900으로 설정했을 때 "가상"이었습니다. 실제 화면 크기를 넘어서는 전체 데스크톱을 탐색하려면 마우스로 스크롤해야했습니다.

터미널 에서이 명령을 실행했습니다.

sudo gedit /etc/default/grub

텍스트 편집기를로드하는 데 시간이 걸릴 수 있습니다. 일단로드되면 라인을 편집했습니다.

GRUB_GFXMODE=1024x768

그것을 다음과 같이 변경했습니다 :

GRUB_GFXMODE=1440x900

update-grub변경 사항을 적용 하기 위해 실행 해야합니다.

그 후 VESA 드라이버를 다시 설치하려고했습니다 (이 컴퓨터에는 GeForce 260 GTX가 있습니다). 더 좋은 방법은 Nvidia 공식 드라이버를 사용하는 것이지만 문제는 항상 동일하다는 것을 알고 있습니다. 물론 지금은 성능이 떨어질 것입니다.

따라서 Nvidia X Server 설정 패널을 확인하면 해상도가 추가되었음을 확인하고 전환하면 화면이 올바르게 보입니다. 실제로 나는 우분투 11.10을 사용하고 있지만 그놈 클래식에서는 사용하고 있습니다.

나는 리눅스의 초보자이므로 괜찮은 것들을 작성했으면 좋겠다.


0

로그인 화면을 사용할 수 없게하는 스크립트 또는 구성 파일을 사용하지 마십시오!

대신 로그인하여 원하는 화면 설정 *을 설정 한 후 다음 명령을 실행하십시오.

sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml

로그인 해상도에는 항상 현재 로그인 한 사용자의 설정이 반영됩니다.

* "적용"을 클릭하는 것을 잊지 마십시오


이것은 작동하지만 부차적입니다. 최대 해상도에서 정상로드를 수행 한 다음 설정으로 전환합니다. 올바른 해상도로 시작하여 어떻게 시작할 수 있습니까?
Goddard

0

Axelrod의 스크립트는 다소 결함이 있습니다. 'connected'에 대한 grep이 모든 'disconnected'디스플레이를 잡습니다.

또한, awk와 tail 등으로 grep을 사용하는 것은 낭비 적이며, 다음과 같이 제안합니다. 또한 get_resolution에서 리턴 코드를 1로 변경합니다. 리턴 코드 0은 일반적으로 오류가 없음을 나타내므로 첫 번째 매개 변수가 없으면 1을 사용합니다.

결론적으로 스크립트의 주요 부분에 함수를 인스턴스화하면 함수 라이브러리에 필요할 때 추가로 소스를 작성하고 실행할 수 있으며 설정하지 않아도되는 로컬 변수의 사용을 얻을 수 있습니다.

function get_displays()
{
    xrandr -q | awk '($2 == "connected") {print $1;}'
};

# the "\" and c/r were added for readability on this website
# I do not have them in my code variant that I use.
function get_resolution()
{
    [[ -z "$1" ]] && return 1;
    xrandr -q | \
    awk -v display="$1" '($1 == display && $2 == "connected") {getline; print $1;}';
};

function setup_displays()
{
    local   primary=${2:-"VGA-0"};
    local   lvds=${3:-"LVDS-0"};

    for display in $(get_displays);
    do
            local   resolution=${1:-"$(get_resolution $display)"};

            [[ $display == $primary ]] && local arg="--primary";
            [[ -n $resolution ]] && local mode="--mode $resolution";

            if [[ $display == $lvds ]];
            then
                    xrandr --output $display --off;
            elif [[ -n $mode ]];
            then
                    xrandr --output $display $arg $mode;
            fi;
    done;
};

setup_displays;

0

이것이 내가 Xubuntu 16.04에서 작동하게하는 방법입니다.

원하는 해상도를 얻으려면 문자열을 따라야합니다. 이것은 명령 결과 내에 있습니다.

xrandr --verbose

이제 원하는 해상도로 부품을 선택하십시오. 다음과 같이 보일 것입니다 :

1152x864 (0xa6) 108.000MHz +HSync +VSync
    h: width  1152 start 1216 end 1344 total 1600 skew    0 clock  67.50KHz
    v: height  864 start  865 end  868 total  900           clock  75.00Hz

위의 데이터에서 문자열을 가져와야합니다 108.000 1152 1216 1344 1600 864 865 868 900 +HSync +VSync.

출력 이름을 찾으려면 비슷한 줄을 찾으십시오.

VGA1 connected 1152x864+0+0 (0xa4) normal (normal left inverted right x axis y axis) 306mm x 230mm

여기 내 출력의 이름은 VGA1입니다.

이제 스크립트를 작성하십시오.

sudo gedit /usr/share/lightdmxrandr.sh

그런 다음 파일에 다음을 작성하십시오.

#!/bin/sh
xrandr --newmode "1152x864_75.00"  108.000  1152 1216 1344 1600  864 865 868 900 +HSync +VSync
xrandr --addmode VGA1 "1152x864_75.00"
xrandr --output VGA1 --mode 1152x864_75.00 --pos 0x0 --rotate normal

파일을 저장하고 닫습니다. 스크립트를 실행 가능하게 만드십시오.

sudo chmod a+rx /usr/share/lightdmxrandr.sh

구성 파일을 작성하여 방금 작성한 스크립트를 호출하십시오.

sudo gedit /etc/lightdm/lightdm.conf.d/00-myres.conf

이 파일 안에 다음을 입력하십시오.

[Seat:*]
display-setup-script=/usr/share/lightdmxrandr.sh

파일을 저장하고 닫습니다. 다시 시작하면 원하는 해상도로 로그인하면됩니다.

기존의 해상도를 재현하는 것이 논리적이지 않더라도 실제로는 이것이 나를 위해 일한 유일한 방법입니다.

질문 에서 답변이 수정되었습니다 .

노트

긴 해상도 문자열을 얻는 다른 방법은 프로그램 cvt입니다. 해상도 1152x864의 문자열을 얻으려면 새로 고침 빈도 75.00 :

cvt 1152 864 75

이것은 저의 데스크탑 해상도와 약간 다른 해상도를 제공했으며, 주 답변에 방법을 포함시키지 않은 이유입니다.


0

LightDM의 GTK greeter를 사용하는 경우 xrandr -q모니터 이름을 찾은 다음 해당 파일 내의 주석에 설명 된대로 /etc/lightdm/lightdm-gtk-greeter속성 을 편집 하고 설정할 active-monitor수 있습니다. 이 속성은 #cursor현재 마우스 커서를 표시하는 모니터를 포함하여 여러 개의 정렬 된 값을 사용할 수 있습니다 .


0

다른 방법으로 사용하지 않는 키보드의 멀티미디어 키 중 하나에 모니터를 구성하는 스크립트를 첨부하고 싶습니다. 현재 'windows media center'라는 버튼이 표시되어 디스플레이를 원하는 구성으로 강제합니다. 이렇게하면 시각 장애인이고 모니터가 원하는 해상도와 동기화되지 않으면 바로 가기 키를 으깨면 모든 것이 고정됩니다.


-1

"기본 화면 모드"가 문제 일 수 있음

모니터가 높은 화면 해상도를 선호한다고보고합니다. 이제이 기본 환경 설정무시하고 싶습니다 . 이 작업을 수행하는 방법에 대한 자세한 내용 은 매우 유사한 질문에 대한 내 답변을 참조하십시오 .

나는 반대의 문제가 있었다 : 나는 항상 내가 원했던 것 (1600x1200)보다 낮은 화면 해상도 (1280x1024)를 얻었다. 내가 찾은 (그리고 링크 된 답변에 설명 된) 수정은 문제와 유사하게 적용될 수 있기를 바랍니다.


누가 내 대답에 투표했는지, 왜이 답변이 유용하지 않다고 생각하는지 메모를 추가해 주시겠습니까?
Chriki

-2

2014 년 중반 (11,1)의 Xenial을 실행하는 MacBook Pro에서 동일한 문제가 발생했습니다. 위에서 언급 한 모든 솔루션을 다양한 형태로 시도했지만 항상 X가 안전 장치가 낮은 그래픽 모드로 전환됩니다 (그러나 매우 해상도로 표시되어 기본값으로 설정하기를 원했습니다).

포럼과 인터넷 검색을 많이 마친 후에는 가장 간단하고 기본적인 해결책 인 nomodeset을 잊어 버린 것으로 나타났습니다. 문제가 해결되었습니다.

TL; DR : nomodeset을 시도하는 것을 잊지 마십시오! Esp. MacbookPro 11,1에서


-3

이 스크립트 를보다 동적으로 만들기 위해 (여러 작업 공간 / 다른 모니터) 만들었습니다 .

성가심 만 : lightdm에서 로그인하면 해상도를 변경하려는 것처럼 화면이 계속 깜박입니다.


1
붙여 넣기를 찾을 수 없습니다.
Tobold

과연; 여전히 로컬 스크립트 사본이있는 경우 다시 업로드하는 것을 고려하십시오.
wchargin

1
스크립트를 github에 업로드했습니다. paste.ubuntu.com이 왜 그것을 제거했는지 모르겠습니다 :(
Leon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.