테스트환경 : Debian linux(데비안), KDE
X window의 설정 메뉴에 없는 설정으로 화면 해상도를 변경하는 법.
설정에 1600x900 해상도가 없어서 직접 추가해보게 되었다.
1. cvt명령으로 원하는 해상도의 modeline을 계산한다.
$ cvt 1600 900
아래와 같은 결과가 출력된다.
이 출력 결과를 잠시 다른 곳에 복사해 둔다.
1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
modeline에서 각각의 수치는 video timing에 관련된 것이고 아래와 같다.
이름, pixelclock, hdisp, hsync-start, hsync-end, htotal, vdisp, vsync-start, vsync-end, vtotal
(관련 내용은 http://www.arachnoid.com/modelines/ 참고.)
(pixelclock는 초당 뿌려줄 수 있는 픽셀 수)
2. xrandr명령으로 현재 디스플레이 정보를 본다.
$ xrandr
아래 결과가 출력되는데,  xxxx connected 라는 부분이 있다. 
디스플레이 장치마다 다르게 나오므로 이 부분의 이름을 기억해 둔다.
Screen 0: minimum 320 x 200, current 1360 x 768, maximum 8192 x 8192
xxxx connected primary 1360x768+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
   1920x1080     59.93 +
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      59.80*   59.96  
   1152x864      60.00  
   1024x768      60.00  
   800x600       60.32    56.25  
   640x480       59.94  
3. xrandr의 newmode와 addmode로 추가한다.
newmode에서 1번에서 복사한 modeline수치들을 붙여넣는다.
(xxxx는 2번에서 확인한 이름)
$ xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
$ xrandr --addmode xxxx 1600x900_60.00
다시 xrandr를 쳐서 확인해 보면 방금 설정한 해상도가 추가되어 있는 것을 볼 수 있다.
해상도를 적용하려면 xwindow의 디스플레이 설정 메뉴에서 설정해도 되고, 터미널에서도 할 수 있다.
$ xrandr --output xxxx --mode 1600x900_60.00
그러니 이 설정은 컴퓨터를 재부팅하면 초기화된다.
아래와 같이 쉘스크립트로 작성해 두고 xwindow시작 시 자동으로 실행되게 하면 편하다.
(x 시스템마다 다르므로 별도 설정)
#!/bin/sh
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode xxxx 1600x900_60.00
xrandr --output xxxx --mode 1600x900_60.00