2008年4月29日 星期二

ubuntu 8.04 投影顯示與雙螢幕輸出

晚間突然想起之前想要在 ubuntu 底下搞個雙螢幕輸出 ...
但是想起時,人都不在電腦
在電腦前時,都沒被想起 XD
於是剛剛在 yurenju 指點下,再加上自己胡亂實驗的結果
發現在 ubuntu 8.04 底下做出這效果還真是簡單 Orz

先說說 VGA out 吧
就是直接 clone screen 到另一個螢幕
ubuntu 8.04 內建就有這個了
系統 >> 偏好設定 >> 螢幕解析度
把 clone screen 選取起來即可


再來是雙螢幕輸出
先編輯一下 xorg.conf 把虛擬桌面的最大解析度加進去吧
sudo gedit /etc/X11/xorg.conf
把以下這堆

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection

改成類似以下這樣
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
SubSection "Display"
Depth 24
Modes "1024x768"
Virtual 2048 2048
EndSubSection
EndSection

最主要是 Virtual 的部份,記得喔,不用用雙引號把數字包起來
把 virtual 調成比你現在主螢幕+外接螢幕想要的解析度加起來還大就可以了
存檔後離開,並且登出重起 x window 讓設定檔生效
再來只要安裝一套叫 grandr 的軟體即可
sudo apt-get install grandr
開啟後在 layout 那邊設定一下兩個螢幕要顯示的方位後,再按下「ok」確認就可以用啦 :D

其實 grandr 裡面也有許多簡單易用的設定,諸如鏡像螢幕、反轉螢幕、選解析度大小等等
有興趣就自己研究吧

2008年1月10日 星期四

[教學]在 linux 底下下載 mms, rtsp 影音串流檔

先前在 "[軟體介紹] MultiGet -- 在 linux 上一套類似 FlashGet 的下載軟體" 一文中介紹了 MultiGet 這樣的一套類似 FlashGet 的下載軟體,但是,FlashGet 從 1.5 開始,就已經支援 mms, rtsp 等影音串流檔案的下載,不過我介紹的 MultiGet 只能單純的下載 http, ftp 的檔案下來,那如果在 linux 要下載網路上的影音串流檔下來要怎辦呢?
針對 mms 這種影音串流檔,有個很好用的小程式叫 "mimms" ,他的檔案很小,連 GUI 都沒有,只有純文字介面而已,ubuntu 的話,可以透過 apt-get 直接抓取安裝,使用的指令更是簡潔
mimms mms://ooxx
這樣一行就可以了,其中 mms://ooxx 則是套用上要下載的 mms 網址。如果需要更多參數,可以由 man 中查詢

那如果要下載 rtsp 協定的影音串流檔呢?我沒直接找到專為下載 rtsp 的軟體,不過我倒是發現了個有趣的小技巧,當然使用這技巧前,請確定您有裝上 mplayer 影音播放器軟體,因為他是使用這軟體來間接達到下載的目的。
請輸入以下字串:
mplayer -noframedrop -dumpfile out.rm -dumpstream rtsp://ooxx
其中 out.rm 請替換成您要儲存的位置與檔名,而 rtsp://ooxx 則替換成要下載的 rtsp 網址即可。

2007年12月10日 星期一

[軟體介紹] WebKit on Linux (ubuntu) -- GTK+ 篇

繼上一篇 "[軟體介紹] WebKit on Linux (ubuntu) -- QT 篇" 中介紹了用 QT 函數庫安裝
或許有些朋友覺得說本身用的是 Gnome 而非 KDE
有沒有採用 GTK+ 函數庫的 WebKit 版本阿?
很歡樂的是,最近剛好誕生了一款叫做 "Midori"的瀏覽器軟體

稍微翻譯一下官方網站介紹的 Midori 內容
Midori 是一個輕量化的瀏覽器
*完全採用 GTK+2 打造。
*快速繪製出 WebKit
*分頁、視窗與任務對話管理。
*書籤的儲存方式是使用 XBEL
*搜尋框則是基於 OpenSearch 上。
*可自訂前後選單動作。
*支援使用者腳本與樣式自訂。
*可透過 Lua scripts 擴充。
然而,這個專案目前還是屬於 alpha 測試版的狀態,所以可能會比較不穩定些。
(啥?翻譯的很爛?好吧,我承認我爛的不只是英文 Orz)

Midori 目前則可以透過 apt-get 的方式去安裝到他
不過得先編輯一下 source list
sudo gedit /etc/apt/sources.list
然後加入以下兩行
deb http://ppa.launchpad.net/stemp/ubuntu gutsy main
deb-src http://ppa.launchpad.net/stemp/ubuntu gutsy main

儲存後離開,並且更新一些 source list 吧
sudo apt-get update
然後就可以安裝 Midori
sudo apt-get install midori
跑完後,就可以直接從 "應用程式" 裡的 "網際網路" 開啟 Midori

大公告成,看到沒?這就是 Midori 的掃描砲彈啦 :D



恩,這邊就來解釋一下為啥上一篇 "[軟體介紹] WebKit on Linux (ubuntu) -- QT 篇" 時,要說那個只是個 "偽 Safari" 呢?
請看以下圖片就知道啦 XD

第一張是我們的 "偽 Safari" ,第二張則是剛剛裝好的 "Midori"
請把眼睛往下面粗框的部份看


看到沒有?第一張用 QT 跑的WebKit 被這種會去判斷瀏覽器送出的 http header 資訊的網站解析成 "Safari" 了,所以我才說他是 "偽 Safari" 嘛 XD
第二張呢,則是該網站無法解析 "Midori" 所送出的 http header 中的 agent 欄位
所以會顯示成這樣
好啦,那就祝各位使用愉快摟 :D

[軟體介紹] WebKit on Linux (ubuntu) -- QT 篇

在經歷了每天 n 次 crash 的 firefuck 洗禮後
終於受不了跟了 jserv 抱怨了一下
於是在他的推薦下,我去嘗試了這樣的東西 "WebKit"

WebKit 是一種開放原始碼瀏覽器引擎,同時他也是 Mac OS X 底下的 Safari 、 Dashboard, Mail、與其他 OS X 所使用的系統框架版本。WebKit 所使用的 KDE 函數庫 KHTML 與 KJS 是屬於 HTML 與 JavaScript 的分支。
(以上是從 WebKit 官方首頁上大致翻譯所得 XD)

所以簡單說
他原生版本只有在 KDE
在過去,如果要跑的話,只能裝上 Konqueror 來爽一下
畢竟 Safari 也是改自於 Konqueror 的嘛
KDE 上所使用的視窗程式語言框架就是著名的 QT 所以我們在這邊就是要介紹在 ubuntu 底下怎樣透過 QT 的函數庫來建立一個以 WebKit 為基礎的 "偽 Safari"
(至於為啥叫 "偽 Safari" 呢?我在下一篇 "[軟體介紹] WebKit on Linux (ubuntu) -- GTK+ 篇"會講 XD)

請跟著我下面的步驟做,就可以安裝好一個 "偽 Safari" 了 XD
1. 先安裝一些等會編譯時所需要的軟體與套件庫
sudo apt-get install libqt4-dev libxslt-dev gperf bison libsqlite3-dev flex build-essential subversion
2.SVN 去撈回原始碼 (這邊我抓了快 20 min ,所以請多等待一下)
svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit
3.建立一個 WebKit 的瀏覽器 (我的機器 Intel CoreDue L2300@1.5GHZ 跑了接近 45 min ,所以,可以先去吃個飯,丟給他慢慢跑 Orz )
QTDIR=/usr/share/qt4/ WebKit/WebKitTools/Scripts/build-webkit
4.安裝完後,打以下指令開啟剛剛建立的瀏覽器吧 :P
WebKit/WebKitBuild/Release/bin/QtLauncher

看到了沒?我們的 "偽 Safari" 出現啦 :D


恩,功能很陽春沒錯
但是拿來做一般性瀏覽與測試用已足夠啦
或許有人會問說要這種東西幹麻用?
其實這是種屬於比較實驗性質的東西啦
針對嵌入式系統或者客制化系統時
需要個簡易瀏覽器,卻又不需要像 firefuck 這種癡肥的東西時
WebKit 會是個好選擇 :)h

2007年10月19日 星期五

[教學]將 ubuntu 7.10 Gutsy 的桌面資料夾等中文路徑改成英文路徑方法

昨天 ubuntu 推出了 7.10,先抓了下來,睡前把檔案丟到另一台電腦上去備份
今天一覺醒來,很帥氣的直接 format 硬碟,然後把 7.10 裝了上去
結果...赫然發現一件很 Orz 的事件

沒想到...7.10 rc 出來時,就被提出的一個問題,沒有被改善
就是...家目錄底下的幾個目錄檔名的路徑名稱都是「中文路徑」
沒錯,就是道道地地的中文字
這...有好有壞啦
不過...壞處肯定大於好處
好處是...新手一目了然這個路徑是啥鬼,比較有親和力
壞處是...打路徑名稱都是英文阿,你還要切中打打路徑名稱,那多麻煩阿,如果又是在終端機底下,就又更麻煩了 Orz

於是...翻了一下資料和設定檔後發現了罪魁禍首了 !!
想更改成原本的英文路徑者,可以照著我以下的步驟
mv 桌面 Desktop
gedit ~/.config/user-dirs.dirs
打開後找到

XDG_DESKTOP_DIR="$HOME/桌面"

把他改成
XDG_DESKTOP_DIR="$HOME/Desktop"

就可以了
其他的資料夾路徑同樣改法

記得,改完後請重新啟動 gnome 阿~~~

2007年10月18日 星期四

在 linux 底下,簡單又快速的製作光碟印象檔

cat /dev/cdrom > mycd.iso

對,就這樣就好了
順便印出 md5 吧
md5sum mycd.iso
md5sum /dev/cdrom

印出兩者後,比對看看是否一樣

不然就丟給程式自己比對吧 XD
md5sum mycd.iso > mycd.iso.sum ; md5sum -c mycd.iso.sum
成功的話,他會印出

mycd.iso: 沒問題

2007年9月27日 星期四

[軟體介紹] MultiGet -- 在 linux 上一套類似 FlashGet 的下載軟體

許多剛從 Windows 平台上轉移到 Linux 的朋友
最常遇到的問題是...
FlashGet 有 for linux 的嗎?」
抱歉,沒有。
「 Linux 上有啥好用的續傳軟體阿?」
ㄜ...隨便講都一堆,預設就被安裝的 wget 純文字軟體,Gnome 環境的 Gwget,或 KDE 的 Kget等等,但是...介面還是跟 FlashGet 差異過大,功能也還差一大截。
於是,有人就提議說...那去建議做 FlashGet 的大陸仔,也出 for linux 的版本阿
這人回答真是妙阿 (其實...那個人就是我 XD)

於是有某長輩實在看不下去,就跳出來說...
同樣是對岸的同胞,有開發出一套很像 FlashGet 的軟體,叫做「MultiGet
到底有多像呢?
我抓了掃描砲彈(screenshots)來給大家比較一下
以下貼圖,前者都為 FlashGet 後者都為 MultiGet

主程式視窗介面


新增下載視窗介面



分割下載時,主程式視窗介面

夠像了吧 :P
不過能吃的協定就沒 FlashGet 這麼多了

廢話不多說,請看官們到此頁面下載最新安裝程式 :P
http://sourceforge.net/project/showfiles.php?group_id=174989

[教學]在 linux 上,替 ThinkPad 系列 laptop 加上中鍵捲動功能

前些日子跟某長輩聊天,發現有許多使用 ThinkPad 的 linuxer
竟然都沒去用 ThinkPad 的中鍵捲軸?
雖說沒用也不會怎樣,不過還是少了個好用的功能阿
( netman 大大,我絕對不會說是你的)
其實問題要解決很簡單...就只要加上兩行字就可以了
這邊還是以 Ubuntu 為例,其他 Linux 套件發行版本亦雷同
請跟著我這樣做
sudo gedit /etc/X11/xorg.conf
然後找出下面敘述的這一段

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection

把他改成
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
EndSection

然後重新啟動 X-Window 就可以使用中鍵捲動功能了 :D

[教學]在 Linux 上,替 ThinkPad 系列的 laptop 加上投影顯示

許多使用 ThinkPad 的朋友,如果是裝了 Linux 的話
常常會發現,當接上單槍投影機時
卻吃不到 RGB 線的訊號源
又不像 windows 那樣有 hotkey 可以切換
其實問題要解決很簡單...就只要加上一行字就可以了
這邊以 Ubuntu 為例,其他的 Linux 套件發行版本作法亦雷同
請跟著我這樣做
sudo gedit /etc/X11/xorg.conf
然後找出下面敘述的這一段

Section "Device"
Identifier "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
Driver "i810"
BusID "PCI:0:2:0"
EndSection

把他改成
Section “Device”
Identifier "Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller"
Driver “i810″
Option “MonitorLayout” “CRT,LFP”
Option “Clone” “true”
BusID “PCI:0:2:0″
EndSection

然後重新啟動 X-Window 後
就可以一接上單槍投影機,就直接吃到 RGB 訊號了
完全不用再使用 hotkey 切換了 :D

2007年8月20日 星期一

用 screen + irssi 上 irc 之鄉民版教學 (含Q&A)

最近身旁許多在上 irc 的朋友都問我哪個 irc client 比較好用
其實,只要問過我的,而且又是 unix like 的系統使用者時
基本上都會被我推薦 irssi 這個 command mode 的純文字 irc 程式
(啥?不知道啥是 irc ? Internet Relay Chat 的縮寫,其他請洽 GoogleWiki
然後如果還有 server 的朋友,更是會被我力推 screen + irssi 的組合
好處是,可以遠端持續掛著 irc ,到哪邊都可以 ssh 進去繼續看 irc log
這樣真的很方便,也不用擔心因為沒開自己的電腦,就看不到別人的對話或別人要留給自己的訊息
不過跟太多的朋友推薦了 screen + irssi 後,卻發現一直回來問我問題
原因是... man 寫的陽春到不行,然後就吵著要鄉民教學
所以這篇文章就這麼被誕生了,也順便當我的備忘錄吧 :P
以下是針對我操作時會遇到的問題整理一下

irssi 的程式安裝我就不詳細講了
apt-get or yum 裡面可以直接打撈到

先在這邊釐清第一次使用 screen + irssi 上 irc 的朋友們觀念
請先搞清楚說遇到的問題跟操作,該是由 screen 還是由 irssi 的程式部份來處理
或者本身只是 irc 上面的指令操作罷了
screen 只是方便讓使用者可以利用 server 不關機的優勢,使 irssi 可以連續開著不中斷
然後下次再透過 screen 來接軌回到掛著的 irssi 然後繼續熱血 irc 這樣子
所以,這樣看下面的簡介操作後比較不會搞不懂到底發生啥狀況,如果請教朋友也比較能問到問題處
以下例子皆以 irssi 0.8.10 或以上版本,經實驗都可順利執行
且都以在 FreeNode 上的 OrzLab channel 為例子

(如果不掛 screen 者,這一段請直接跳過)
首先 ssh login 到 server 後
請輸入

screen -RD
-R Reattach if possible, otherwise start a new session.
-D (-r) Detach and logout remote (and reattach here).

然後會進入到新開啟的 screen ,並且 screen 會自動開啟一個新的 window 讓我們使用
接下來直接輸入
irssi
就會在 screen 底下的第一個視窗執行 irssi 這隻程式

如果沒有要掛著 screen 執行 irssi 的朋友
那直接輸入
irssi
就可以直接執行 irssi 這隻程式

進入 irssi 後
直接在提示輸入字元處輸入
/connect irc_server
就會直接連到該個 irc server 了
例如
/connect irc.freenode.net
這樣就會直接連接到 freenode 的 irc server 上
此時,可以先在這邊修改自己要在該 irc server 上的暱稱
如果要修改,則輸入以下格式
/nick you_want_nickname
例如當我輸入
/nick lzy
時,那我顯示出來的暱稱將會是「lzy」的字樣
( irssi 預設的暱稱會是 login 的使用者名稱)
搞定暱稱後,接著我們就可以加入其他頻道了
只要輸入
/j #channel_name
就可以直接加入了,例如
/j #orzlab
這樣就完成加入 #orzlab 這個 irc channel 了
如果該 irc channel 需要 key/password 的話
則輸入:
/j #channel_name password
如果要離開單一個 irc channel 的話
則直接輸入
/wc
就可以離開這個 irc 頻道了
若是要離開一個 irc server 的連線,則輸入
/disconnect irc_server_name
夠簡單了吧?



剛剛是教如何連線而已
現在則是教一些常用的熱鍵與功能
先來看圖說故事一下


上面的這張圖,我們在
[Act: 1,2,4,6,9,10]
這邊發現了幾個不一樣的標示數字
Act 這一欄位會提示你在第幾編號的 channel 上對話狀況,而你還沒切換到該 irc channel 上觀看
灰色一般體的是代表有人登入或登出此 irc channel(如 1,9,10)
白色粗體的是代表有人正在此 irc channel 上談話(如 4,6)
灰色粗體的則是有人在對話中提起你的名字或者呼叫你,總之就是有出現你的名字(如 2)
這是基本識別
再來是知道哪個 channel 有啥狀況後
就是切換到該 irc channel 上觀看了
Alt + 1~0 對應 1~10 的 irc channel 編號
Alt + q~p 對應 11~20 的 irc channel 編號
Ctrl + n/p 可切換 上/下 一個 irc channel
然後按鍵盤上的 PageUP/PageDn 可以直接切換 上/下 頁訊息


如果發現有編碼上的問題,需要轉編碼的話
則可以輸入
/recode add #channel_name code_type
例如要把 orzlab 的 utf8 格式加入,則輸入
/recode add #orzlab utf8
就可以加入此頻道的編碼格式了
然後輸入
/recode
就可以看到加入的編碼列表
(註:因 /recode add 會寫入到設定檔裡,所以僅需要寫入一次即可)


Q&A TIME
Q:如何同時有連接多個IRC server呢?又該怎樣切換不同IRC server來加入該server的IRC channel呢?
A:
請直接再下一次 /connect irc_server 就可以再連接一個新的 irc server ,然後按Alt + 1切換到第一個的特殊頻道上,再按 Ctrl + x來切換目前要下達指令的 IRC server名稱。


Q:如何查看該頻道的所有人呢?
A:
請下達 /who 的 irc 指令即可,然後也是一樣按 Alt + 1 切換到第一個伺服器狀態頻道上觀看


Q:如何查看單一網友的基本連線資料呢?
A:
請下達 /whois nickname 的 irc 指令即可,然後也是一樣按 Alt + 1 切換到第一個伺服器狀態頻道上觀看


Q:如何傳送私人訊息到指定的朋友暱稱呢?
A:
請下達 /msg nickname 即可開啟一個名為指定暱稱的訊息頻道,一樣用 alt + 1~0/q~p 來選擇(注意:有些 irc server 會限制此功能,傳訊前請先確認是否有權限)。


Q:已經使用上面所講的方式 screen + irssi 了,那我離開時,是否得下達任何參數或指令?又下次 ssh login 後,需要打什麼指令呢?
A:
為了簡化登入與記憶上的方面,採用 -RD 的參數,所以每次要離開 irssi 時,直接關閉該視窗就好,不需下達任何參數或指令。然後下一次 ssh login 後,只要打 screen -RD 這樣就可以接軌回上次開啟的 irssi 了。


Q:如果遠端連線到 big5 的主機掛 screen + irssi 時,那 client 端是 utf8 時,編碼的亂碼問題如何處理?
A:
首先,先處理 screen 的編碼問題,從 utf8 端要檢視 big5 server 時,先 Ctrl + a,然後輸入 :encoding big5 utf8 ,把從 server 將送出的 big5 編碼先轉成 utf8 後再送出,然後輸入 "/recode" 觀看頻道編碼是否指定正確,照上述設定,理應能順利顯示。


Q:如果不小心按到 Ctrl + z 或鍵盤上的 Pause 時, irssi 被 suspend 了,如何恢復?
A:
請直接輸入 fg 後按 enter ,就可以把剛剛被 suspend 的 irssi 給喚醒。


Q:如果我要關閉一個 irssi ,該如何下達指令?
A:
請直接關閉開啟 irssi 的 screen ,請按 Ctrl + k 來關閉 screen window ,然後可以再重新開啟一個全新的 irssi 出來。


Q:要如何自動儲存 irc log ?
A:
在需要 auto irc log 的 irc channel 上輸入 /SET autolog ON,即可打開 autolog 功能。


Q:要如何指定當開啟 irssi 後,自動連接 irc server 與自動連接 irc channel ?
A:
直接看例子會比較快,先假設我要讓他自動用 lzy 的暱稱連接到 Freenode 的 irc server 上的 #orzlab
/network add -nick lzy Freenode
/server add -auto -network Freenode irc.freenode.net 7000
/channel add -auto #orzlab Freenode

如果是需要 key/password 的 irc channel 的話,則把最後一行改為
/channel add -auto #irc_channel_name irc_server_name password
也就是直接把密碼接在後面就可以了
如果需要自動對註冊的暱稱進行認證登入的話(設口令為abcde):
/network add -autosendcmd "/^msg nickserv ident abcde;wait 2000" Freenode



Q:如何讓 irssi 發出有人提起自己暱稱時的訊息警告(或響鈴)?
A:
在 irssi 裡輸入以下指令,讓 irssi 適時發出聲音訊號:
/set beep_when_window_active ON
/set beep_when_away ON
/set beep_msg_level MSGS NOTICES DCC DCCMSGS HILIGHT
/set bell_beeps ON

在 screen 中按下 Ctrl +a , Ctrl + g 的按鍵,讓 screen 把 irssi 發出來的聲音訊號傳出來
或參考絕地大濕的 blog 一文 <會響的 PuTTY + screen + irssi>


Q:如何更換 irssi 的 theme ?
A:
把抓好的 theme (可從官網撈喜歡的),然後複製該 theme 的檔案到 ~/.irssi/ 資料夾路徑,並下達 /SET theme theme_name 來更改該 theme 。


Q:如何自訂 irssi 的 irc 訊息熱鍵?
A:
因為設定比較繁雜,故只提供官網網址,讓有興趣的朋友可以自己去翻閱。




提供幾個額外補充的網站,沒標示語言者,皆為中文
irc 指令介紹 (英文)
irssi startup (英文)
screen 基本觀念與操作介紹