2008年9月7日 星期日

在X window 用xrandr改變螢幕解析度或雙螢幕組合

筆電最大的優勢就是移動力,一般都可以有外接螢幕作簡報。習慣的人都知道可以從顯示器內容作雙螢幕輸出到投影機,或是擁有兩個桌面。但是到了X window,就會不知從何做起。
答案就是xrandr
以前要在X設定好雙螢幕,才可以使用兩個螢幕。寫法是在xorg.conf寫上兩個device(即使只有一張顯示卡、但是有兩個頭),組成兩個screen放在serverlayout。
現在走一遭xrandr,就可以省去修改多個xorg.conf的功夫。首先試試這
xrandr -q
就可以看到現在X螢幕的組態,以我的筆電而言
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2304 x 1624
VGA-0 connected 1280x1024+0+0 (normal left inverted right) 376mm x 301mm
1280x1024 60.0*+ 75.0 59.9
DVI-0 disconnected (normal left inverted right)
LVDS connected (normal left inverted right)
1024x600 60.0 +
S-video disconnected (normal left inverted right)

這時候如果我想要關掉筆電上的小螢幕,就只要
xrandr --output LVDS --off
如果我想要雙螢幕組合,首先要確認你有這樣大的虛擬桌面可能,就是-q時回報的最大值。修改最大值的方法就是修改xorg.conf裡面display增加Virtual選項。然後就可以雙螢幕排列
首先把兩個螢幕內容同步
xrandr --output LVDS --same-as --output VGA-0
然後假設把小螢幕擺在右方為第二個螢幕
xrandr --output LVDS --right-of --output VGA-0
然後就可以看到雙螢幕組態出現了

我自己進階實驗一個組態卻遭遇到挫敗,概念上是這樣的,左螢幕為1280x1024,右邊為旋轉後的。600x1024。組態過程是這樣的,首先要把1024x600旋轉後放左邊,1280x1024先作left在調到right。但是詭異的事情發生了。旋轉後的螢幕可以顯示,也可以roll over,但是不能click!!
問題應該是出現在X server的層級,沒有想過有人亂旋轉。事實上這問題在Windows也是一樣。螢幕反轉後,會發現觸控筆「所見非所點」。

開始考慮寫個openbox pipemenu來改變螢幕解析度或組態。

沒有留言: