« 玩星海爭霸 (StarCraft) 所學到的幾件事 | 首頁 | Linux Shell Script: pdf2png »
2008年02月22日
Xinerama 雙螢幕實作
![]()
目的: 利用筆記型電腦的 VGA Out 連接電腦螢幕, 讓 Fedora 8 Gnome 桌面延伸到外接螢幕, 以獲取更多的桌面操作範圍
環境:
- BenQ S41 Laptop (Nvidia GeForce 8600M GS)
- Twinhead 1024x768 LCD Monitor
- Fedora 8, Gnome 2.20.3, Xorg 1.3.0
Before
- Fedora 8 Gnome with Compiz-Fusion
- 使用 Compiz 視窗管理程式, Avant Window Navigator
- 桌面大小: 1280x800
- Ref:
After
- 接上外螢幕時
- 使用 Gnome 預設的 Metacity 視窗管理程式
- 主螢幕底部出現 Gnome Panel, 並帶有 Window List Applet (視窗清單)
- 桌面大小: 2304 (1024+1280) x 800 (外接螢幕的可用高度依然是 768 畫素)
- 僅使用主螢幕時
- 使用 Compiz (Compiz-Fusion) 視窗管理程式
- 隱藏主螢幕底部的 Gnome Panel
- 啟動 Avant Window Navigators
Step 1: 備份原本的 xorg.conf 設定檔
su -
cd /etc/X11
cp xorg.conf xorg.conf.original註: 雖然 system-config-display 修改後會自動備份原始設定, 但還是另外手動備份一份比較安心 :P
Step 2: 設定 "Dual Head"
System → Administration → Display → Dual head
- 勾選 "Use dual head"
- Second Monitor Type: Generic LCD Display → LCD Panel 1024x768
- Resolution: 1024x768 (如果不能選就算了)
- Desktop layout: Spanning Desktops
sudo vi /etc/X11/xorg.conf
#以下僅列出編輯重點, 未提到的部份皆保持原設定
Section "ServerLayout"
Screen 0 "Screen0" RightOf "Screen1"
Option "Xinerama" "on"
Option "Clone" "off"EndSection
↑說明:
- 因為我的主螢幕 (Screen0) 在外接螢幕 (Screen1) 的右手邊, 所以改成 RightOf
- 延展桌面 (Spanning desktops) 的設定: Xinerama=on, Clone=off
- 獨立桌面 (Individual desktops) 的設定: Xinerama=off, Clone=on
Section "Device"
Identifier "Videocard1"
Driver "nvidia" (與 Videocard0 的 Driver 一致)
Screen 1EndSection
Section "Screen"
Identifier "Screen1"
SubSection "Display"
Modes "1024x768" (外接螢幕的解析度)
EndSubSectionEndSection
連結: 完整的 xorg.conf
Step 3: 設定登入後自動判斷是否啟用 Compiz 桌面管理程式
System → Preferences → Personal → Sessions → 停用自動啟動 avant-window-navigator 與 fusion-icon
於畫面下方加入 Gnome panel, 並在這個 panel 加入 "Window List" applet (像 MS Windows 那樣的視窗清單)
vi ~/.bash_profile
#加入以下內容
if [ -n "$DISPLAY" ]; then
if [ -n "`grep 'Unable to find available Display Devices for screen 1.' /var/log/Xorg.0.log`" ]; then
#未連接外接螢幕時, 使用 Compiz 桌面管理程式 (由 fusion-icon 設定使用 Compiz) 與 Avant Window Navigator, 並隱藏 Gnome 的 bottom panel.
gconftool-2 -t bool -s /apps/panel/toplevels/panel_1/auto_hide true
fusion-icon &
avant-window-navigator &else
gconftool-2 -t bool -s /apps/panel/toplevels/panel_1/auto_hide false
fi
fi
Step 4: 測試
- 接上外螢幕, 按 Ctrl + Alt + Backspace 重新啟動 X window:
- 登入畫面出現在主螢幕上
- 登入後外螢幕出現延伸桌面
- 視窗管理程式為 Metacity
- 主畫面底部出現 Gnome Panel
- 拔除外螢幕連接線, 按 Ctrl + Alt + Backspace 重新啟動 X window, 登入後:
- 視窗管理程式為 Compiz
- 畫面底部出現 Avant Window Navigator
- 畫面底部看不到 Gnome Panel
附錄: Xinerama vs. Nvidia TwinView 我所觀察到的差異
Xinerama Nvidia Twinview X window 登入畫面 只會出現於主螢幕 兩個螢幕合併成一個登入畫面 螢幕解析度 每個螢幕以自己的解析度顯示 整合成新的解析度 Compiz 支援 否 是 Menu 在右螢幕,
向左邊延伸桌面可 不行 置中視窗預設出現位置 游標所在螢幕 兩個螢幕之間 視窗最大化 只在視窗所在螢幕最大化 跨越所有的螢幕 設定介面 system-config-display
nvidia-settingsnvidia-settings 簡而言之, Twinview 將兩個顯示裝置整合起來, 將它視為一個超大型螢幕, 適合用在解析度相同的顯示裝置; 我只想把舊的顯示器拿來延伸桌面, 所以選擇使用 Xinerama :)
Bookmarks
Posted by Jamyy at 2008年02月22日 00:17
Trackback Pings
TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/333