聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

二月 7, 2013
» 藉由 Disper 自動切換延伸桌面

相信不少背著筆電(laptop)到處跑的伙伴都習慣在一處要塞[註1]使用雙螢幕(Multiple Monitor),可惜 Ubuntu 目前還無法像 Windows7 那樣自動切換,讓凍仁每每使用雙螢幕都得重新設定,真的是很惱人啊

在早期還可以透過編寫 /etc/rc.local 與 /etc/X11/xorg.conf 來達到切換的效果,但如今的 Ubuntu 已不吃這套。最後得知 disper 也可達到同樣的效果,索性就小小研究一下,不得不說 Windows7 真的整合得不錯

延伸後的顯示器設定

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 出去,真的是賺到了,之前在 Ubuntu 11.10 用 nvidia-settings 切換 的感覺還不是很穩呢

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

十二月 20, 2011
» 萬用 N900 之「Vlc 遙控器」是也

擁有 NOKIA N900 的主公們一定都知道在 N900 裡有個很棒的藍芽套件 —「Bluemaemo」,它可以模擬成滑鼠(Mouse)、鍵盤(Keyboard)、簡報器(Presentation)、多媒體播放器(Media Remote)以及遊戲手把(Gamepad),但凍仁實際使用 Media Remote mode 後發現只有全螢幕可用,生命會自己找到出路的,換個 VLC Remote 照樣拿 N900 當遙控器!這一切的一切都是為了在大大的 TV 上看影片所準備的啊 (茶)

感謝 Violet 提供的影片。

1. 環境介紹

以下的 Vlc Server 為影片播放端,而 Vlc Client 則是裝有 Vlc Remote 的手持設備。

1.1 Vlc Server

安裝套件
root@thinkpad-t410:~$ aptitude install vlc [Enter]

Ubuntu 11.10 (64 bit) @ Lenovo ThinkPad T410
Vlc 1.1.11 @ Ubuntu 11.10

1.2 Vlc Client

安裝套件
root@nokia-n900:~$ aptitude install vlc-remote [Enter]

Maemo 5 @ NOKIA N900
Vlc Remote 0.6-1

2. 環境設定

2.1 Vlc Server 設定

1. 開啟 Vlc 偏好設定
2. 於左下方點選 全部 並近入進階設定模式。
3. 於 主介面 底下找到 HTTP遠端控制介面 後打勾。
4. 重新開啟 Vlc。

2.2 Vlc Client 設定

1. 開啟 Vlc remote 後點選標題選單。
2. 點選右上方的配置(Configuration)。
3. 預設是沒有 thinkpad-t410 這段,請點選 Add 繼續。
4. Name可以隨便取,但 Ip 必須填入 Vlc Server的 IP,而 Port 請使用預設的 8080。
5. 選好配對的 Vlc Server 之後點選 Use
6. 使用中的截圖。
7. 最棒的是還可以遠端選擇影片。

2011-10-30

Vlc Remote 與 Bluemaemo 不同在於前者是靠無線網路(Wireless)的技術來遠端控制 Vlc 播放器;而後者則是靠藍芽(Bluetooth)來模擬相關的週邊設備,並借以控遙控遠方的機器。

相關連結:
王中之王:Nokia N900 Part 4 DSLR x N900 x 遙控器
VLC Media Player 跨平台的多功能影音播放器

六月 1, 2010
» Logitech Marble Trackball on Ubuntu 10.04

凍仁自從升上 Ubuntu 10.04 以後就一直有個很頭痛的問題,那就是羅技的木星軌跡球(Logitech Marble Trackball)原本改 hal 的部份沒了。

感謝 BlueT 前輩介紹的 gpointing-device-settings,它是專門用來設定捲動(Scroll)、中鍵點擊(Middle button Click)的圖形化設定軟體,不巧 Marble 的設定少了第 9 鍵,也就是圖中的 3 號,也試過撰寫 shell script 來跑 xinput (請參考 Ubuntu 10.04 LTS (Lucid Lynx) Note 一文)。

最後參考 lRabbit 的方式可以正常運作Logitech_Marblemouse_USB 文中的 10.04 設定凍仁可從來沒成功過呢。

於 /usr/lib/X11/xorg.conf.d 建個 20-marble.conf。

jonny@lucid:~$ sudo vi /usr/lib/X11/xorg.conf.d/20-marble.conf
Section "InputClass"
Identifier "Trackball Wheel Emulation"
MatchProduct "TrackBall"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "9" # 9 為上圖的 3 號鍵
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection

然後重新啟動 gdm 或登出。
jonny@lucid:~$ sudo /etc/init.d/gdm restart

接下來只希望 Ubuntu 別在搞改版 = 改使用者習慣的事情發生。

延伸閱讀:
Logitech Marble on Ubuntu 9.10

資料來源:
Ubuntu Lucid Lynx & Trackpoint by lRabbit

相關連結:
Logitech_Marblemouse_USB on Ubuntu Documentation

» Logitech Marble Trackball on Ubuntu 9.10


凍仁早在去年 12 月就買了這隻羅技木星軌跡球滑鼠(以下簡稱木星球),因為過度使用的情形下,掌心、手背、手腕及手臂漸漸出現疼痛,問了社群伙伴們才知道有軌跡球(Trackball)這種利器可以減輕雙手的負擔。

高雄只有多米資訊廣場有擺木星跟火星,雖然軌跡球的評價很兩極,看在有著平價稱號的木星以及有凍仁喜愛的紅色份上就敗了一隻,從此就踏上左右開弓之路。

在 Windows 上有 Logitech 自家的 SetPoint 軟體可設定各個按鍵,Ubuntu 的部份得手動新增 mouse-wheel.fdi 並改些小設定。



這邊的參數 8 是對照圖中的 2 號鍵,而參數 9 則是對照圖中的 3 號鍵,由於木星球凍仁給左手使用,所以習慣將模擬中鍵的功能設在 2 號鍵而模擬捲動頁面功能設在 3 號鍵請依自己的需求更改

模擬滑鼠滾輪水平及重直捲動(Horizontal and Vertical Scrolling)

新增滾輪設定檔,以 3 號鍵為例。
jonny@karmic:~$ sudo vi /etc/hal/fdi/policy/mouse-wheel.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.product" string="Logitech USB Trackball">
      <merge key="input.x11_options.ButtonMapping" type="string">1 2 3 4 5 6 7 8 9</merge>
      <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
      <merge key="input.x11_options.EmulateWheelButton" type="string">9</merge> # 右手建議改用 8
      <merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge>
      <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
      <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
    </match>
  </device>
</deviceinfo>

重新啟動 hal 及 gdm。
jonny@karmic:~$ sudo service hal restart
jonny@karmic:~$ sudo service gdm restart

模擬滑鼠中鍵點擊(Middle Click)

在家目錄底下新增中鍵設定檔 .Xmodmap,以 2 號鍵為例。
jonny@karmic:~$ vi ~/.Xmodmap
pointer = 1 8 3 4 5 6 7 2 9

寫入木星球的對應參數及設定,要重開 X 才有作用
jonny@karmic:~$ xmodmap .Xmodmap

重新登入 Gnome (X Windows) 後, 系統會詢問是否要載入設定,至於他牌的 X 凍仁在 Gnome 設定好以後都可使用,不過模擬滑鼠中鍵點擊(即同時點滑鼠左右鍵)的功能就無作用了,恕小弟沒有深入研究

資料來源:
Ubuntu.com | Logitech Marblemouse USB
Silice |「習慣」vs「真的好用」軌跡球

相關連結:
Logitech | 羅技® 木星軌跡球
癮科技 | 羅技木星(Marble Mouse)試用
永遠的UNIX | X Window 系統使用指南 -- 第18章 鍵盤和滑鼠 -- 對應和參數
國泰2010年春季號 | 腕隧道症候群

support:

biggo.com.tw

A Django site.