藉由 Disper 自動切換延伸桌面
相信不少背著筆電(laptop)到處跑的伙伴都習慣在一處要塞[註1]使用雙螢幕(Multiple Monitor),可惜 Ubuntu 目前還無法像 Windows7 那樣自動切換,讓凍仁每每使用雙螢幕都得重新設定,真的是很惱人啊。
在早期還可以透過編寫 /etc/rc.local 與 /etc/X11/xorg.conf 來達到切換的效果,但如今的 Ubuntu 已不吃這套。最後得知 disper 也可達到同樣的效果,索性就小小研究一下,不得不說 Windows7 真的整合得不錯。
Disper 是一支快速(on-the-fly)切換螢幕的小工具,它是為了讓筆記型電腦可以在連接投影機時即時切換螢幕而設計的。強大歸強大,但它除了得在 console 下執行外,還得使用對應的參數才行!若您只是想快速切換投影機,不妨試試看 disper-indicator。
目前 disper 與 disper-indicator 還未列入官方的套件庫,故需手動加入 PPA 上的來源。
2.1. 新增套件來源。
2.2. 安裝 disper。
3.1. 列出已連接的螢幕,以下以 ThinkPad T410 為範例。
3.2. 使用雙螢幕並啟用延伸桌面(Extend)。
3.3. 使用雙螢幕並啟用複製桌面(Clone),此功能同時也有鏡像(Mirror)與同步桌面之稱。
3.4. 只使用筆記型電腦上的螢幕。
3.5. 其他相關參數。
此 script 執行時會自動偵測螢幕數量,當螢幕數量大於 2 時才會啟用延伸桌面,當然它也需加入 Startup Applications(自動啟動),至於三螢幕以上呢?等哪天有好心人贊助再補完了。。
有空在試著整合至快捷鍵 Fn + F7 了。
# - 註1: 這個要塞可以是公司的辦公室也可以家裡的工作室,會用「要塞」這個字眼來形容是因為通常都還會搭配 USB Hub 或是專屬底座(Dock)來連接其他的週邊設備。
心血來潮的外接 32" Toshiba TV 測試 Display Port 轉 HDMI 音效輸出,發現 Ubuntu 12.04 也可以把聲音輸出給電視播放了,而且還可以直接使用 Disper 延伸 Display Port 出去,真的是賺到了,之前在 Ubuntu 11.10 用 nvidia-settings 切換 的感覺還不是很穩呢。
在早期還可以透過編寫 /etc/rc.local 與 /etc/X11/xorg.conf 來達到切換的效果,但如今的 Ubuntu 已不吃這套。最後得知 disper 也可達到同樣的效果,索性就小小研究一下,
延伸後的顯示器設定 |
1. Disper 簡介
Disper 是一支快速(on-the-fly)切換螢幕的小工具,它是為了讓筆記型電腦可以在連接投影機時即時切換螢幕而設計的。強大歸強大,但它除了得在 console 下執行外,還得使用對應的參數才行!若您只是想快速切換投影機,不妨試試看 disper-indicator。
2. 安裝 Disper
目前 disper 與 disper-indicator 還未列入官方的套件庫,故需手動加入 PPA 上的來源。
2.1. 新增套件來源。
[ jonny@precise ~ ]$ sudo add-apt-repository ppa:disper-dev/ppa && sudo aptitude update [Enter]
2.2. 安裝 disper。
[ jonny@precise ~ ]$ sudo aptitude install disper [Enter]
3. Disper 使用說明
3.1. 列出已連接的螢幕,以下以 ThinkPad T410 為範例。
[ jonny@precise ~ ]$ disper -l [Enter]
# - with HannStar Display Corp JG171A (17") display DFP-0: LEN # DFP-0 為 T410 內建螢幕裝置代號。 resolutions: 320x175, 320x200, 360x200, 320x240, 400x300, 416x312, 512x384, 640x350, 576x432, 640x400, 680x384, 720x400, 640x480, 720x450, 640x512, 700x525, 800x512, 840x525, 800x600, 960x540, 832x624, 960x600, 896x672, 928x696, 1024x768, 1152x864, 1360x768, 1440x900 display CRT-0: HannStar Display Corp JG171A # CRT-0 為 VGA 裝置代號。 resolutions: 320x240, 400x300, 512x384, 680x384, 640x480, 720x450, 700x525, 840x525, 800x600, 960x540, 832x624, 960x600, 1024x768, 1152x864, 1360x768, 1280x960, 1440x900, 1400x1050, 1680x1050, 1920x1080, 1280x1024 # - whit Toshiba TSB-TV (32") display DFP-0: LEN resolutions: 320x175, 320x200, 360x200, 320x240, 400x300, 416x312, 512x384, 640x350, 576x432, 640x400, 680x384, 720x400, 640x480, 720x450, 640x512, 700x525, 800x512, 840x525, 800x600, 960x540, 832x624, 960x600, 896x672, 928x696, 1024x768, 1152x864, 1360x768, 1440x900 display DFP-2: Toshiba TSB-TV # DFP-2 為 Display Port(DP) 裝置代號。 resolutions: 320x175, 320x200, 360x200, 320x240, 400x300, 416x312, 512x384, 640x350, 576x432, 640x400, 680x384, 720x400, 640x480, 720x450, 640x512, 700x525, 800x512, 840x525, 800x600, 960x540, 832x624, 960x600, 896x672, 928x696, 960x720, 1440x480, 1024x768, 1280x720, 1152x864, 1360x768, 1280x960, 1440x900, 1280x1024, 1400x1050, 1600x1024, 1680x1050, 720x480, 1920x1080
3.2. 使用雙螢幕並啟用延伸桌面(Extend)。
[ jonny@precise ~ ]$ disper -d auto -e [Enter]
3.3. 使用雙螢幕並啟用複製桌面(Clone),此功能同時也有鏡像(Mirror)與同步桌面之稱。
[ jonny@precise ~ ]$ disper -d auto -c [Enter]
3.4. 只使用筆記型電腦上的螢幕。
[ jonny@precise ~ ]$ disper -d DFP-0 -s [Enter]
3.5. 其他相關參數。
[ jonny@precise ~ ]$ disper --help [Enter]
Usage: disper [options] (-l|-s|-c|-e|-p|-i) Options: --version show program's version number and exit -h, --help show this help message and exit -v, --verbose show what's happening -q, --quiet be quiet and only show errors -r RESOLUTION, --resolution=RESOLUTION set resolution, e.g. "800x600", or "auto" to detect the display's preferred resolution, or "max" to use the maximum resolution advertised. For extend it is possible to enter a single resolution for all displays or a comma-separated list of resolutions (one for each display). Beware that many displays advertise resolutions they can not fully show, so "max" is not advised. -d DISPLAYS, --displays=DISPLAYS comma-separated list of displays to operate on, or "auto" to detect; the first is the primary display. -t DIRECTION, --direction=DIRECTION where to extend displays: "left", "right", "top", or "bottom" --scaling=SCALING flat-panel scaling mode: "default", "native", "scaled", "centered", or "aspect-scaled" --plugins=PLUGINS comma-separated list of plugins to enable. Special names: "user" for all user plugins in ~/.disper/hooks; "all" for all plugins found; "none" for no plugins. --cycle-stages=CYCLE_STAGES colon-separated list command-line arguments to cycle through Actions: Select exactly one of the following actions -l, --list list the attached displays -s, --single only enable the primary display -S, --secondary only enable the secondary display -c, --clone clone displays -e, --extend extend displays -p, --export export current settings to standard output -i, --import import current settings from standard input -C, --cycle cycle through the list of cycle stages
4. Shell Script 應用
此 script 執行時會自動偵測螢幕數量,當螢幕數量大於 2 時才會啟用延伸桌面,當然它也需加入 Startup Applications(自動啟動),
[ jonny@precise ~ ] $ vi display-switcher.sh [Enter]
1 #!/bin/bash 2 # Info: Auto switch single/extend display with disper on Multiple Monitor. 3 4 lines=`disper -l | wc -l` 5 display_count=$((lines / 2)) 6 7 if [ $display_count -eq "1" ]; then 8 disper -d DFP-0 -s 9 else 10 disper -d auto -e 11 #disper -d auto -e -t left #向左延伸桌面。 12 fi
有空在試著整合至快捷鍵 Fn + F7 了。
# - 註1: 這個要塞可以是公司的辦公室也可以家裡的工作室,會用「要塞」這個字眼來形容是因為通常都還會搭配 USB Hub 或是專屬底座(Dock)來連接其他的週邊設備。
2012-05-024
心血來潮的外接 32" Toshiba TV 測試 Display Port 轉 HDMI 音效輸出,發現 Ubuntu 12.04 也可以把聲音輸出給電視播放了,而且還可以直接使用 Disper 延伸 Display Port 出去,真的是賺到了,
Disper 預設的主螢幕是筆記型電腦內建的 |
Disper 的自動設定目前很夠凍仁用了。 |
延伸閱讀:
★Disper Indicator, Easily Clone or Extend Displays on Multiple Monitor Setups [NVIDIA Cards Only] ~ Ubuntu Vibes
★Disper › Wiki › ubuntuusers.de
★Sample Fn-F7 script - ThinkWiki
相關連結:
★NVIDIA - Ubuntu 中文
★Modify xorg.conf for better performance | TuxRadar Linux
★Installing Ubuntu 11.10 on a ThinkPad T410: 1.7 Workarounds
★Sample Fn-F7 script - ThinkWiki
資料來源:
★[ubuntu] nvidia-settings command line - Ubuntu Forums
★Disper package archive : “disper” team
★Disper - Willem
怎麼感覺跟CLI的xrandr差不多?
回覆刪除xrandr !? 有空再來研究看看,感謝分享。
刪除有空再來修這支 script 了,手邊沒螢幕還挺麻煩的。
回覆刪除-> monitor-switch.sh - GitHub
由於凍仁家的 ThinkPad T410 不支援同時輸出三螢幕的關係,就先不實作了,等哪天摸到 T410s, T420 或是有支援 NVIDIA Optimus 技術的機種再來試試看了。
回覆刪除補上 NVIDIA Optimus 介紹文章。
刪除-> NVIDIA Optimus讓你的筆電自動打檔 - T客邦
已確認 NVIDIA NVS 3100M 是不支援同時輸出三個螢幕 (Display) 的,要之後有支援 Optimus 才有支援。
刪除雖說後期搭配 Optimus 的 T410s, T420 有切換內顯及外顯的功能,但它對 Linux 的支援度還不夠成熟,如沒有三螢幕及切換顯卡功能的伙伴不妨留守在 T410 的機種 :-)
據 RJ 的分享是如使用 Bumblebee 來驅動 Optimus,會造成 Display Port 無法作用的情形,這點對需要接大電視看電影的伙伴而言是挺傷的一件事啊。
刪除現在 Debian wheezy (testing) 跟 sid (unable) 也有收入 disper 套件了!
回覆刪除