흔히 발생하는 문제는 아니지만, 데스크톱 화면이 잘못된 해상도에 고정되는 경우가 종종 있습니다. 대표적인 원인 중 하나는 GPU 드라이버의 버그로 인해 모니터가 올바르게 인식되지 않는 것입니다. 바탕 화면이 모니터 한가운데 썸네일처럼 작게 보이거나, 전체 내용을 보려면 화면을 계속 스크롤해야 하는 상황이라면 해상도를 수동으로 설정해 볼 필요가 있습니다. 이번 글에서는 Ubuntu에서 화면 해상도를 변경하는 다양한 방법을 소개합니다.
디스플레이 설정에서 해상도 변경하기
가장 기본적인 방법은 디스플레이 설정(Display Settings)을 이용하는 것입니다. 바탕 화면에서 마우스 오른쪽 버튼을 클릭한 후 '디스플레이 설정'을 선택하세요.
설정 창이 열리면 '해상도(Resolution)' 항목을 클릭하고, 모니터의 기본(native) 해상도를 선택하면 됩니다.
xrandr 명령어로 해상도 변경하기
터미널 환경을 선호한다면 xrandr 명령어를 활용할 수 있습니다. xrandr은 대부분의 최신 리눅스 배포판에 기본적으로 포함되어 있어 별도 설치 없이 바로 사용할 수 있습니다.
터미널에 xrandr을 입력하고 엔터를 누르면 연결된 모니터와 지원되는 해상도 목록이 출력됩니다. 현재 활성화된 해상도 옆에는 별표(*)가 표시되어 있으니 참고하세요.
명령어 실행 결과에서 해상도 목록 바로 위에 있는 정보에서 모니터의 별칭(alias)을 확인해 두세요. 이 글의 스크린샷은 VMware 환경에서 캡처했기 때문에 별칭이 'Virtual1'로 표시됩니다.
다른 해상도를 적용하려면 대상 모니터와 원하는 해상도를 아래 형식으로 지정하면 됩니다:
xrandr --output MONITOR_ALIAS --mode SUPPORTED_RESOLUTION
모니터의 기본 해상도가 아니더라도 지원되는 해상도라면 어떤 값이든 선택할 수 있습니다. 실제 사용한 명령어는 다음과 같습니다:
xrandr --output Virtual1 --mode 1440x900
cvt로 사용자 지정 해상도 추가하기
원하는 해상도가 목록에 없거나, 특별한 이유로 직접 만든 커스텀 해상도를 사용하고 싶다면 xrandr만으로도 해결할 수 있습니다. 다만 VESA 표준에서 벗어난 규격은 피하는 것이 좋은데, 이때 cvt 명령어가 유용하게 쓰입니다.
cvt 역시 대부분의 배포판에 기본 포함되어 있으며, VESA Coordinated Video Timing(CVT) 모드의 매개변수를 계산해 줍니다. 사용법은 간단합니다. cvt 뒤에 원하는 가로 해상도와 세로 해상도를 차례로 입력하면 됩니다. 예를 들어 비표준 해상도인 1500×900의 매개변수를 계산하려면 다음과 같이 입력합니다:
cvt 1500 900
출력 결과에서 'Modeline'부터 줄 끝까지 전체를 선택해 클립보드에 복사합니다.
복사한 값을 이용해 xrandr로 새로운 해상도 모드를 생성합니다:
xrandr --newmode CLIPBOARD_CONTENTS
참고로 출력 결과의 '1504x900_60.00' 같은 이름은 cvt가 해상도와 주사율을 기반으로 자동 생성한 것입니다. 관리 편의를 위해 원하는 이름으로 자유롭게 바꿔도 무방합니다. 실제 예시는 다음과 같습니다:
xrandr --newmode "MyMode" 111.00 1504 1592 1744 1984 900 903 913 934 -hsync +vsync
여기서 끝이 아닙니다. 새로 만든 모드를 해당 모니터에 연결해 주는 추가 작업이 필요합니다. 다음 명령어를 사용하세요:
xrandr --addmode MONITOR_ALIAS "NAME_OF_XRANDR-CREATED_MODE"
지금까지의 과정을 종합하면 명령어는 다음과 같습니다:
xrandr --addmode Virtual1 "MyMode"
이제 새로 추가한 해상도를 디스플레이 설정에서 정상적으로 선택할 수 있습니다.
마치며
위 방법을 모두 시도했는데도 데스크톱이 계속 잘못된 해상도에 머물러 있다면, GPU 드라이버를 최신 버전으로 업데이트할 때가 된 것일 수 있습니다.
또한, 문제의 본질이 해상도 자체가 아니라 고해상도 모니터에서 글자가 지나치게 작게 보이는 것이라면, 해상도를 낮추는 대신 부분 배율(Fractional Scaling) 기능을 활용하는 것이 더 좋은 해결책입니다.