#osxchat blog

關於 #osxchat

#osxchat是一群使用 Mac OS X 工作、平時又泡在 IRC 裡頭的人的交流管道,#osxchat blog 是這群人的發表園地,是一群朋友共同主持的「我流媒體」(We the Media!)。這裡的人,有的是在 Mac OS X 上開發應用程式,最近特別熱中的是中文輸入法的開發,有的從事科學工作,有的從事美術或寫作。您可以在 irc.freenode.org 上,找到這樣的一群人。

在 Mac OS X 上,我們推薦您使用以下幾套 IRC 聊天軟體: Conversation(使用方法)以及Colloquy(使用方法),我們在聊天時,使用的是UTF-8編碼。如果您也有興趣,加入這個 blog 的寫作行列,請先進入聊天室,和成員聊一下,就可以獲得成為這個 blog 作者的方法了。

2009/01/26

在 Mac OS X 使用 Platypus 包裝 X11 指令

作者: Mengjuei Hsieh

我自己本身在工作上需要使用到 xmgrace 對數據作圖, xmgrace 本身是個使用 X window 顯示的程式,執行的時候需要使用終端機之類的文字介面來啟動,與 Mac OS X 本身的圖形操作介面並不相同,也就是說在安裝 xmgrace 後沒有任何特殊處理之下,我沒辦法對已經作好圖的 project files 用滑鼠打開。以下是我發現一個在不用自己寫程式的狀況之下簡單地把 X11 指令包裝成一個 Mac OS X 程式的方法。

首先我先從 platypus website 下載 platypus, 然後寫一個 xmgrace 的 script 放在一個文字檔裡面
if [ ${1}"test" != "test" ]; then
cd $(/usr/bin/dirname "$1")
fi
/opt/local/bin/xmgrace -g 1158x806 -maxpath 50000 $*


然後啟動 platypus
Basic Setting
之後直接先按 Script Path 下的 select 把這個 script 讀入。這時候也可以直接按 Edit 在 Platypus 裡面編輯
Reviewing the script
我的 script 是用 sh 語法寫的, 所以在 Platypus 裡面 Script Type 就選擇了 Shell, 順手也把這個包裝取了個 Xmgrace Wrapper 的名字。

接下來展開 advanced options 選擇了這個包裝的程式要接受 drag and drop 的開啟方法,也就是說可以把檔案丟到圖示的頭上來啟動程式打開這個檔案。然後按 Edit Type.
File association
選擇不要的項目然後按減號的按鈕,加入新的附加檔名叫做 agr, 順便刪掉右邊 File Type 裡面的 Folder, 因為我不想把檔案夾丟在圖示上開啟。這樣 Apply 以後,以後的行為就會變成如果你的檔案的名字有 .agr 附加的檔名就可以 double click 打開。

另外一個選項我有打開的是 Runs in background. 這個其實跟 X11 程式在 Mac OS X 顯示出來的狀況有點關係,如果沒選這個,在我的 Xmgrace 在執行的當時,Dock 會一直有一個 wrapper 的圖示, 有一點點多餘。

當然,一個適當的圖示是額外的,我從 linux 參考 /usr/share/icons/hicolor/48x48/apps/grace.png 放大修改然後用 Icon Composer 畫了一個...
Icon in the making

接著按 Create 就能夠製作一個包裝 X11 指令的程式了。我把它放在 這裡下載,不過要用的人還要用 Macports 安裝 Xmgrace 才行。 (其中有個問題我記在這裡)

當然另外一個簡單的方法以我已經在這裡介紹了

標籤: ,

2007/09/27

OpenVanilla 0.8.0 (beta 1) 發布

作者: lukhnos

我們今天發布了 OpenVanilla 0.8.0 (beta 1) for Mac OS X ,可透過這個網址下載取得。

0.8.0 (beta 1) 與前一版本 0.7.2 相比,最重要的改進如下:

  • 選字窗以及整體視覺設計的改進
  • 使用最新版的酷音模組,修正了過去以來使用者詞庫無法正確儲存的問題,同時支援大字集
  • 行列輸入法增加萬用字元(? 及 *)的支援
  • 泛用輸入法增加萬用字元(? 及 *)的支援,但目前需要手動更改設定檔才能開啟
  • 精簡過的預設模組清單,讓第一次安裝後的選單清爽許多
  • 附帶安裝 UIM-Anthy 日文輸入法。要使用本輸入法需另行安裝 MacUIM,可從這個網址取得
  • 修正了不能與QuickSilver搭配使用的問題
  • 修正了雙螢幕模式時,選字窗位置跑掉的問題
  • 修正酷音輸入法容易使Finder當機的問題

已知問題

  • 泛用輸入法模組的萬用字元功能,需用手動修改設定方式開啟
  • 偏好設定面板的選字窗預覽並未反映新介面,同時新選字窗已不再支援背景貼圖和透明色
  • 使用手冊未完成更新
  • 網站未完成更新
  • 選單本地化工作尚未更新
  • 行列反查模組暫時移除,因為目前發現一些資料結構上的問題
  • POJ輸入法的一些規則需要修正
  • 選字窗縮放時的動畫效果,在較慢的機器上可能造成系統延遲。動畫選項需用手動更改設定方式來關閉。
  • 本安裝包並未附上反安裝程式,.cin檔編輯器、螢幕小鍵盤等工具
  • Display Server尚未支援螢幕小鍵盤的「顯示/隱藏」告知功能
  • Loader仍有許多debug訊息未移除
  • 0.7.2的設定並不會被0.8.0沿用
  • 本安裝包為Unicode Script版本,因此對於一些傳統的Carbon應用程式,可能會發生無法使用OpenVanilla來輸入文字的情況

標籤: , ,

2007/09/25

OpenVanilla 0.8 最近的開發進度

作者: zonble

本文同時發表於zonble's promptbook。

大概在月初的時候,OpenVanilla 開發團隊決定近期內再推出一個版本,下一版的版次為 0.8 版;實際的推出日期還不確定,到時候新的版本會包含多少新功能,很多也還不確定,總之,在這邊先聊一下這一兩個星期的實作進度。

目前 OpenVanilla 主要在 Windows 以及 Mac OS X 兩個平台上發展,而團隊目前也對於 Mac OS X 平台的開發比較熟悉,我個人也只有處理 Mac OS X 這部份,所以,以下的內容,也以 Mac OS X 平台為主。

目前完成的一些功能…

首先是要解決自前一版本釋出後,一直沒有解決、同時困擾很多人的使用問題,例如酷音輸入法這套智慧選字注音輸入法,在 Finder 下要修改檔名的時候,會造成 Finder 當機的問題。同時將 libchewing 從 0.2 版升級到 0.3 版,換言之,便是酷音輸入法的功能升級到與目前的 Windows 以及 Linux 版本同步,包括內部編碼從 Big5 改為 Unicode,可以直接透過酷音,輸入在 Big5 範圍之外的中文字以及各種符號。

之前也已經完成了一些輸入法相關的小工具,例如通用輸入法表格修改工具,以及圖示修改工具,可以讓使用者自行修改在輸入法選單上顯示的圖示…等。

在外觀設計上,計畫在這一版中翻新從 2004 年起、自 0.6 版使用了將近三年的圖示。之前一直有人說, OpenVanilla 的圖示長得像香蕉(或是這樣的反應:「原來 OpenVanilla 的圖示不是香蕉啊?」),於是花了時間重新繪製了一個香草圖示,以灰色與綠色搭配出一套清爽的外觀。

在選字視窗設計方面,過去一兩年間,開發團隊花了一段時間嘗試是否可能將 Web 技術放入輸入法設計中,甚至透過 Web 物件,呼叫可以做出各種華麗介面的 Quartz Composer,像之前就有提過的「立體旋轉選字窗」或是「涼宮春日選字窗」等;技術上是做出來了,涼宮春日也的確很萌,但是實際上用過一陣子之後,感想還是—不好用。因此,並沒有在下一個釋出版本中,使用 Web 選字窗的計畫。

不過,下一版的選字視窗,也有著不一樣的外觀。下一版的選字窗會有圓角外觀以及 Aqua 風格的漸層;在整個 Mac OS X 中用 OpenVanilla 打字跳出選字窗時,應該不會有那種「某個地方看起來特別不協調的感覺」了吧…。

在下一版中,也加入了各種透過視窗介面輸入文字的支援,換句話說,就是像是螢幕鍵盤或是符號面板的功能。

雖然 Mac OS X 內建的符號面板功能十分強大,除了可以用來查詢、輸入各種亞洲文字以及 Unicode 字元,在繁體中文的部份,可以用筆劃數目與部首查詢文字輸入,但是,內建符號面板的執行速度實在讓人難免有微詞,而且還是有很多各種不同文字或符號面板輸入的需求,很難一次全部做在一起打發,但是直接寫一套 Mac OS X 支援的符號輸入法 Bundle,光看文件就覺得是件麻煩事(君不見除了蘋果之外,還有人在寫第三方的輸入法,但是沒什麼人在寫第三方的符號面板),而我自己覺得,在 OpenVanilla 現在的架構下,要弄出新的符號面板來,會輕鬆容易得多—唯一不便的地方大概在於,要使用 OpenVanilla 的符號面板,一定要將輸入法切換成 OpenVanilla,才能作用。

這兩天做了兩個符號面板的實驗。一是文字輸入 Snippet(一直以來也不知道 Snippet 到底有什麼好翻譯),大概是,如果你經常輸入某些詞句或段落,你可能會放在某篇文件裡頭剪剪貼貼,而要用的時候,卻又不知道這篇文件放在哪裡;你也可能使用文書編輯軟體提供的功能,例如 Microsoft Word 提供所謂的「自動圖文集」,Mac OS X 上的編輯軟體如 Smultron 等,也提供 Snippet,但是有時候你也會希望同一段文字,可以在很多不同的軟體中使用,而不只侷限在某一套軟體。通常使用者不會一直開著同一套軟體,但是會一直開著輸入法,在輸入法的層次做這件事情,或許是一件比較好的解法。

目前,你在打了某些文字之後,可以將文字選起來,透過服務選單(Service Menu),便可以將這段文字加入到 OpenVanilla Snippet 的列表中,到需要使用的時候,只要點選兩下,就可以將這段文字插入到目前正在使用的應用程式。(順道一提,這個小程式主要用到了 CoreData,CoreData 的確很方便)

另外一個嘗試,就是做了一個常見的中文標點符號表了。在 Windows 上,很多文書軟體都提供了標點符號表或符號列的功能,許多使用者也習慣點選符號表輸入中文,很奇怪的,Mac OS X 上卻一直沒看到什麼人做出這樣的功能;起先就根據 Microsoft Word 2003 依樣畫葫蘆,畫了一個內容相同的符號列,馬上就有人說,這樣長得像麻將,心一橫,就乾脆先畫成麻將的樣子了,沒想到效果還不差啊…。畫面中的麻將,是把第一代「麻雀學園」遊戲畫面裡頭的麻將拿出來用的。

(想想,與其做什麼輸入法,不如去做賭博電玩。)

在 Windows 平台上,b6s 最近接連釋出了幾個 0.7.2 系列的測試版本,目前最新的版本是 0.7.2.7 0.7.2.9 測試版。

說到 Windows 上的 OpenVanilla,就覺得這年頭什麼怪事都有—起先你以為 Windows 上面很多輸入法都做了那麼多年,想來不應該會有人什麼問題,但是微軟就是有這個本事,做了那麼多年的輸入法,有一天他就是有辦法給做爛;如果用 Windows Vista 內建的大易輸入法 6.0 ,在 Office 2007 裡頭打字,輸入法會自動在每個字之間插入一大堆空格,讓你每打兩個字,就要回頭刪掉三個空白,舊版的大易輸入法也無法在 Vista 上安裝,也不知道微軟以及太易科技要怎麼解決這個問題,而聽說行列輸入法也有類似的問題。

而目前在網路上面看到的解決之道,要不就是把 Vista 砍掉重新安裝成 Windows XP,要不就是使用還在測試中的 OpenVanilla 加上大易打字; OpenVanilla Windows 版本突然變成了大易輸入法的救星,想來也真是莫名其妙。

總之,這兩天還只能夠先聊聊下一個版本的大概面目,有些其他的功能—包括某些輸入法模組—還在實驗當中,但是,新的版本,會在不久的未來推出,這是可以肯定的。

標籤: , ,

2007/09/18

播放媒體檔案時搭配 SRT 字幕

作者: barabbas

請先參閱前一篇〈播放媒體檔案以及 SSA/ASS 字幕〉。

Perian 仍然是最好的選擇,一樣不挑編碼,只要與媒體檔的名稱相同、在同一個路徑下,就能順利地自動上字幕:
Perian with ".srt" subtitle

MPlayer 要自行指定編碼與字型,如下圖所示:
MPlayer with a ".srt" subtitle

VLC 除了照前一篇圖解指定字幕檔與編碼之外,還要到偏好設定裡選字型:
VLC with a ".srt" subtitle

MPlayer 和 VLC 都很容易看到格子,顯然不會自動切換字型是件很苦的事;而 VLC 更慘的是,失敗的機會比 MPlayer 來得高,又有字幕同步問題…… 所以,順位很容易排了:Perian > MPlayer > VLC

註:之前搞混了一些事,上文已更正。抱歉。

標籤:

2007/09/17

播放媒體檔案以及 SSA/ASS 字幕

作者: Mengjuei Hsieh

以下我找了一個範例 SSA/ASS file 然後自己改了一下。順便找了一個 Noah Wyle 模仿 Steve Jobs 的 AVI 短片來配。要注意的是如果這個短片的 codec 是預設 quicktime 就吃的,那 perian 就沒辦法載入字幕。

Picture 6.png

首先用 VLC 來看看(值得一提的是我還沒成功用 MplayerOSX 載入 ASS 字幕,但是手冊上是說可以。):

Picture 2.png

VLC 需要指定文字編碼的格式。這裡選成 UTF-8 的 unicode ,因為我當初就用 unicode 編碼的。

Picture 3.png

成功的話會是這樣:

Picture 4.png

雖然有點模糊,倒是成功了。
Picture 5.png

用配備 Perian 的 QuickTime 來開這個 avi 檔案,特別注意字幕檔要放在同一個目錄而且主檔名要一樣。

Picture 1.png

perian 可以自己辨認 ssa or srt 的文字編碼,不僅可放 unicode, big5 和 gb 都沒問題。

最後就成功啦。

字幕 with Perian

FLV+SSA 嘛也通(反正 FLV 就是 Perian 處理的。)。

FLV+SSA 也通

標籤:

2007/09/13

It's FreeBSD, not Linux; it's userland, not kernel.

作者: barabbas

「同时采用开源的 Linux 作新的苹果操作系统的内核」

標籤:

2007/04/30

幫你的Mac Mini設定防火牆

作者: mikeliu

mac mini除了像是一台沒有LCD的macbook之外,你覺得他還可以做什麼其他用途呢?我覺得它可以做一個簡易的mini server。

如果你想把你的mac mini 24小時開機暴露在internet上面,你會發現如果你不幫你的mac mini設定防火牆的相關設定,你的機器沒過多久,一堆人會透過各種途徑『光顧』你的機器,留下各種足跡,所以長時間開啟機器,防火牆的設定是一定要做的。

不過如果你不是使用OSX的伺服器版,你會發現你所能設定的東西非常有限,除了固定的一些服務的tcp port設定可以設定開啟外,沒了。例如你想要開啟某一個範圍的tcp port可以存取,似乎你利用現用OSX網路防火牆設定是沒有辦法達到需求。

大家知道OSX的前身乃為Bsd的原始碼修改而成,所以一般使用的Bsd相關服務你也可以在OSX找到相關的資訊,所以ipfw也可以在OSX上使用,這指令就是Bsd用來設定防火牆的程式。而Daniel Côté這位使用者也幫OSX做了寫了基本的ipfw的 script來供一般使用者使用,檔案在此位置http://www.novajo.ca/MacOS_X_Firewall.tar解開之後,請先修改rc.firewall.current這個檔案,將你所要修改的規則增加至script裡面。之後檢查你的mac mini內是否有/usr/local/sbin這個目錄,如果你的mac mini沒這個目錄,請先執行terminial,然後執行下列指令:

sudo mkdir /usr/local
sudo mkdir /usr/local/sbin

然後拷貝這個檔案到這個目錄內吧。

最後一個步驟就是你的電腦重起或是網路設定更動時,你的 firewall設定也會自動生效,如果你是利用pppoe來撥接上網,你可將壓縮檔裡面的ipup這個script拷貝到/etc/ppp的這個目錄,你撥號上去,他就會去執行該script;如果你的網路是使用固定ip,請將壓縮檔內的StartupItems整個目錄,拷貝到/Library/StartupItems裡面,你機器重開之後他就會執行你所修改的防火牆設定了。

如果你對OSX/Bsd的防火牆想要有更多瞭解,Oreilly onLamp這篇文章是一篇不錯的入門文章,可以讓你更深入瞭解OSX/Bsd 防火牆如何設定。

標籤: , ,

2006/10/29

讓 OV 日文輸入法(暫時)能在 Intel Mac 上使用的方法

作者: lukhnos

我終於又有日文輸入法可以用了。

OS X 是有內建的日文輸入法 Kotoeri ,可是 OS X 只要裝一種以上的中日韓輸入法,輸入法切換的行為就變得相當惱人──這一點,在WWDC 2006上,已經被許多同樣需要多語輸入的與會者抱怨過了(顯然再次驗證了「什麼不孤,必有什麼鄰」這種顛撲不破、放諸四海而皆準的真理)。

也因為這樣,在 OV-UIM (Anthy) 開發出來後,我就一直很高興地用 Yatsu-san 包裝的 UIM.framework (附於 MacUIM 中)配合 OV-UIM (Anthy) 來輸入日文。同樣在 OpenVanilla 裡的好處是,可以使用 OV 的快速鍵來切換注音和日文,入力快適感滿點。

可是,因為 MacUIM / UIM.framework 仍是 PPC-only ,因此在 Intel Mac 上是無法使用的。為了這一點,困擾了我很久。在入力法燒鳥會上,Yatsu-san 說會努力(最近 MacUIM 出了 0.5.0 ,確實在 build system 上有些改變),我相信不久之後,我們一定會有 MacUIM 的 universal binary 版本的。

倒是,今天靈機一動,突然想到,其實 OV 是 universal binary ,意思是可以在 MS Office 這一類 PPC-only 的環境下執行。那麼,MS Office 顯然可以把 OV-UIM 以及 UIM.framework 給載進來(如果在 i386 環境下,因為 UIM.framework 沒有相對應的 binary,OS X 的 loader 會拒絕載入,使得 OV-UIM 載入連帶失敗)。

就是這樣。

用 Finder 在 Safari.app 上按 Command-I ,把 "Open using Rosetta" 選項打開,此時 Safari 就變成了一個 PPC application,然後開啟 OV ......

OV-UIM (Anthy) 復活了。

啊,三個月了,終於又有好用的日文輸入法。先前偶爾還有跟日本友人書信或 instant messenger 往返的,其實都因為不喜歡在 OV 和 Kotoeri 間切換,頓時沒有了學習書寫日文、學著用日文說話的動機。

如今這些動機又都回來了,雖然必須用 Rosetta。

(是的,這時候覺得,OS X 上有那麼多種 browser ,其實是很幸福的──我把 Camino 撥過來變成「寫日文專用 browser」好了 XD)

標籤: , ,

2006/09/05

輸入法廚房

作者: gugod

這次輸入法廚房的活動,主題便是 Leopard 裡新介紹的輸入法架構:InputMethodKit。整體看起來,與 OpenVanilla 所想要完成的事情很不相同。整個 InputMethodKit 裡頭分成三大部份:Server、Controller、CandidateWindow。而在 OpenVanilla 0.7 裡,大致是拆成 Loader、DisplayServer;而在 OSX 上,Loader 的部份還要拆成 TSMComponent、CocoaLoader 兩部份,TSMComponent 使 OV 可以成為 OSX Text Service Manager (TSM)的一個外掛,而由此外掛載入 CocoaLoader,將所有的輸入法模組載入進來。Leopard 上的 InputMethodKit 所達成的功能,一方面是全面取代原有的 Text Service Manager,另一方面則同時提供了 DisplayServer 顯示選字窗的功能。

在 InputMethodKit 的架構之下,與以往比起來,便是輸入法一口氣由 TSM 外掛,提升成為了應用程式。選字窗很自然地就成為了此應用程式的視窗,此應用程式與其他應用程式不同,它是完全的背景應用程式。所謂背景應用程式,在 OSX 上的說法,就是「執行時不會在 Dock 出現,也不會出現在 Recent Item 清單裡」的應用程式。只要一有切換輸入法的動作,作業系統便會自動執行輸入法的應用程式,但一但此輸入法應用程式執行了一次之後,除非該程式因故終止,否則不會再執行第二次。

這種做法,很明顯地對於記憶體用量會大有改進,因為,在作業系統運作期間,一個輸入法只會被載入一份。如果是以前採用外掛的方式,跑了幾支應用程式,記憶體中便會有數份輸入法。但難處便是,以往只要以函式呼叫便可寫的輸入法,現在要以行程間通訊扯上關係。為此,InputMethodKit 便直接利用了 Objective C 裡的分散式物件,來解決通訊的問題,所以對於寫輸入法的人來說,這是無需處理的細節。

用 InputMethodKit 來寫輸入法,可以直接使用 Xcode 開始寫一個 Cocoa Application,整份 InputMethodKit 都是 Objective C 的函式庫。程式設計師需要做的,大抵便是定義自已的 InputMethodServer 子類別,並定義其 inputText 方法,該方法是個整體的入口,收字元、顯示組字、選字窗、出字串。若要分得細一點,可以自行創建自已的 InputMethod Engine 類別,再於 inputText 方法中,將查表組字的部份完全交遞給 InputMethod Engine 去辨。這 InputMethod Engine 並不是 InputMethodKit 架構的一部份,只是為了讓程式邏輯更加分明,而分開來的另一個類別。與 OpenVanilla 比較來看, inputText 函式便是存在於 Loader 之中,而 InputMethod Engine,就是 OpenVanilla 的輸入法模組。

目前為止並沒有什麼太難的地方,寫完一整個以前的 BasicInputMethod,必要的 Objective C 程式碼不出一百行。可以說,InputMethodKit 將事情簡化的程度,大致上就跟 OpenVanilla 框架是差不多的。這兩天下來,頭痛之處是在弄懂 InputMethodServer 需要的 plist 內容。因為都是應用程式,必需要跟其他的應用程式有所區別,Leopard 的文字服務才可以將此應用程式視為一輸入法,將之載入,並放置於輸入法選單當中。最重要的,便是 CFBundleName 這個識別字的值,需要包括 "inputmethod" 這個字串。如 "org.openvanilla.inputmethod.phonetic"。並不會真的造成程式上的問題,但是對於本來不依此慣例取名的人來講,還得全面將自已的 CFBundleName 都改掉,果然還是有一些代價的。

此外,InputMethodKit,不,應該說 OSX;「輸入法」一詞,在 OSX 的定義,其實與台灣人一般的認知有一點差異。它們所指的「輸入法」,是在輸入法選單中出現的主要項目。如「繁體中文」、「Koetori」、「Hangul」。而其下的子項目,它們稱為「輸入法模式」。對於日文 Koetori 來說這比較沒有什麼問題,平假名與片假名被認為是日文輸入法的兩個模式,也還說得通。但是在兩種中文輸入法底下,以「模式」相稱,反而不對頭。倉頡與行列,並不算是中文輸入法的兩種模式。不過,這說起來只是名稱問題。最主要的重點還是在於,每個「輸入法」是一個應用程式。也就是說,整個繁體中文底下的所有輸入模式(倉頡、漢音、拼音...),其實都是寫在同一個應用程式當中。

這一點對於 OpenVanilla 的架構來講,也不會有很大的影響,反而應該是一個有利的地方。OpenVanilla 架構早就將輸入法獨立成為模組,所以要把輸入法模組調整成 InputMethodKit 可以接受的「輸入法模式」也就行了。

但實做上面,把輸入法模組換成輸入法模式,可能是最難的一點。因為,在 InputMethodKit 裡,所有的輸入法模組都是事先定義在 plist 當中,說起來竟算是個「應用程式設定值」的概念。要 OpenVanilla 來說,也就是要先做一份完整的輸入法模組列表,才能在輸入法選單中,將輸入法模式正確顯示出來。

但這跟 OpenVanilla 目前的做法是完全相反的。OpenVanilla 一直以來都是使用動態載入的方式。大家可以將輸入法模組裝到 /Library/OpenVanilla/ 目錄底下,然後 Loader 會自行偵測並載入。載入了之後,再動態去修改選單的內容。如果要事先將輸入法模組列表做完,那麼使用者就變成沒有選擇,必需要安裝所有的輸入法模組才行了。以 OpenVanilla 專案來說,也可以完全不要理會輸入法模式這個部份,只要一直保致一貫做法即可。比較合理的應用,也許是將 SpaceChewing 輸入法,以 InputMethodKit 重新寫一次,並把各種鍵盤排列做為不同的輸入模式。

標籤: , ,

2006/06/25

It's there.... OpenVanilla 0.7.2發布

作者: lukhnos

這應該是 OpenVanilla 誕生到現在,在包裝上最花時間的一次。It's finally here!

詳細的發布說明、取得方式及安裝說明──這一版請大家至少一定要讀一下「Ok,我到底該安裝哪套variant?」一節──請參考OpenVanilla 0.7.2的版本發布說明。

對了,這一次 0.7.2 正式版的推出,有一個要特別感謝的人:davidyu。因為他的耐心與鍥而不捨──或許也因為他的PowerBook特別搞怪(?)──我們終於得以克服0.7.2-beta以來一直很難再現(reproduce)的一個嚴重bug。雖然這一半是OS X的問題,但至少以這次的修正來說,以後應該不會再發生「需要靠砍神秘的 .plist 才能修復 OV」的奇怪情事了。再次謝謝他的熱心幫忙。

標籤: , ,

2006/06/21

OpenVanilla 0.7.2正式版小規模發布(再更新)

作者: lukhnos

Update: 正式發布工作已經完成,取得及安裝方式,請參考OV wiki上的0.7.2版本發布說明。

Update: 若您是行列輸入法的使用者,又在 2006/6/21 至 2006/6/25 之間曾安裝過 0.7.2 正式版,請參考這個說明,並至這裡下載修正檔案,就可以解決Caps Lock的問題了。

我們開始針對 OpenVanilla 0.7.2 for OS X 版本做小型的發布。0.7.2 正式版與 beta 版相比,新增及改進的項目主要有幾個:

  • 修正 0.7.2 beta 一直以來的幾個大問題:Num lock key 造成 OV 失靈、長期開機後會完全失效、需要靠刪除某個神奇的 .plist 檔才能修復再起不能的 OV 等難解的麻煩。
  • 增加一個解除安裝程式,可以把舊版或會造成衝突的版本清除掉。

  • 先前所有 patch 都整合了進來,包括針對詞彙管理工具等模組的修正。
  • 簡易/速成輸入法配合 Windows 習慣,改為九個選字鍵。


進一步的說明,請參考OpenVanilla Wiki 。

標籤: , ,

2006/05/10

OpenVanilla新功能介紹第四彈:輸入法資料檔可以放在自己家目錄下

作者: lukhnos

OpenVanilla最大的特色之一,便是泛用輸入法模組。

泛用輸入法在 OV 內部有一個拗口的表示法,叫 OVIMGeneric ,意思是「OV的Generic(泛用)輸入法模組(IM)」。這麼模組最早叫 OVIMXcin ,以向 Xcin 計劃致敬(註)。在 0.7.2 beta 之前,使用者要自訂或更改輸入法表格,都必須去 /Library/OpenVanilla/(版號)/Modules/OVIMGeneric/ 這個目錄下去修改資料才行。

這個作法一直造成了幾個問題。首先,使用者必須取得管理者權限才能更動該目錄的資料,很不方便。其次,如果用砍掉整個目錄的方法來卸載安裝 OV ,使用者原先自訂的輸入法表格便會消失。最後,一個使用者自訂的輸入法(例如對倉頡表格的變動)會影響同一台機器上的所有其他人,因為該目錄的資料是所有人共用的。

從 OV 0.7.2 beta 開始,泛用輸入法模組會去尋找 ~/Library/OpenVanilla/(版號)/UserSpace/OVIMGeneric/ (如果該目錄不存在,您可以自行建立一個)的資料。如果在該目錄下找到了輸入法資料檔,OVIMGeneric 會優先讀取該目錄的資料。

也就是說,以 0.7.2 beta 為例,如果在 ~/Library/OpenVanilla/0.7.2/UserSpace/OVIMGeneric/ 中有一個 simplex.cin (簡易/速成輸入法)的表格,而 /Library/OpenVanilla/0.7.2/Modules/OVIMGeneric 也有一份 simplex.cin ,OV 會以使用者家目錄下的那一份資料表為準,而忽略在共用資源庫目錄下的資料表。

因此,從 0.7.2 beta 開始,要自訂或修改輸入法的朋友,可直接將資料表建在上述的目錄中(記得版號要隨著 OV 版本而更動),或者如果是修改,可以從 /Library/OpenVanilla/(版號)/Modules/OVIMGeneric/ 中把資料表先拷貝至 ~/Library/OpenVanilla/(版號)/UserSpace/OVIMGeneric/ 中,就可以自由修改了。

最後,「反查模組」也適用上述的目錄。預設的資料表是放在 /Library/OpenVanilla/(版號)/Modules/OVOFReverseLookup 中,使用者自訂的表格則放在 ~/Library/OpenVanilla/(版號)/UserSpace/OVOFReverseLookup/ 裡面。

註:Xcin是台灣最早的開放原始碼中文輸入法計劃,目的是為了讓 X-Window 上能使用各種常見的中文輸入法。OV 的中文輸入法資料表格,多半源自於 Xcin 計劃。

標籤: , ,

2006/05/07

OpenVanilla新功能介紹第三彈:真正的日文輸入法 (OV-UIM-Anthy)

作者: lukhnos

今年一月推出OpenVanilla 0.7.2 beta的時候,原本計劃在#osxchat blog上撰寫一系列新功能介紹的,結果二月一忙,就忙到了現在。

本次要介紹的是0.7.0時就已經開始開發,一直到0.7.2 beta才正式推出的新模組:UIM-Anthy 日文輸入法。

UIM 是一套在日本相當普遍的輸入法程式庫,在open source界有相當重要的地位,裡面整合了數十種各國語言的輸入法。在Mac OS X上,移植UIM最有名的,要屬於Yatsu的MacUIM了,在日本也相當受歡迎。

(附帶一提:在日本,Mac上流行的日文輸入法,似乎以Atok為主,先前還看過Ergosoft、被我們戲稱為「出雲大社輸入法」的egbridge universal,讓我們驚訝原來輸入法可以做這麼多事情──令人好奇的是:Mac使用者都不怎麼用系統內建的輸入法的呀?)

總之,原先是為了實驗在 OV 上使用 UIM 程式庫的可能性,於是我們做了一個小小的試作版。後來我自己覺得,能在 OV 裡面打日文,應該是蠻方便的──配合 OV 的快速鍵切換,打日文就不用跳出 OV ,對我這種僅僅偶爾需要打幾個單詞的人,相當有用。

於是,0.7.2 beta 正式把 OV-UIM-Anthy 收進延伸安裝套件裡。

安裝方法


請先至MacUIM 在 SourceForge 上的下載點,下載 MacUIM 0.4.1-1 (for Tiger) 版本的套件。OV 的 UIM 事實上是利用了 Yatsuさん建立的 UIM.framework ,因此沒有 MacUIM 是不能跑的。

然後接下來請下載 OV 的延伸套件(from SourceForge or OpenFoundry),並按照裡面的說明,把 UIM-Anthy 輸入法模組的安裝起來。

安裝完成,OV 選單會出現這樣的東西(我用的是英文選單):

OpenVanilla Menu

切換至 UIM-Anthy 後,就可以輸入日文:

OV-UIM-Anthy Example

配合 OV 的輸入法切換鍵,就可以在需要打日文時,快速打出想要的字。

功能限制

  • 必須先安裝 MacUIM (但是可以只安裝、不啟用)
  • 目前只支援 UIM 的 Anthy 平假名模式,不支援片假名、羅馬字、半形假名等模式。
  • 詞庫的限制同 Anthy (有的地方比 Kotoeri 好,有時則否)
  • 介面沒有 MacUIM 好看(因為 OV 還沒有好的直式選字窗介面)
  • 選字窗不能用滑鼠選
最後,如果只是偶爾需要出打日文漢字,可以試試看 gugod 開發的開放香草繁體中文轉日文漢字濾嘴

標籤: , ,

2006/04/20

OpenVanilla 0.7.2 beta 可以在 Intel Mac 上正確執行

作者: lukhnos

已經在使用 Intel Mac 的朋友,相信都試過了。不過還是更新並正式確認一下這個消息:OpenVanilla 0.7.2 beta 可以正確地在 Intel Mac 上執行,功能和 PowerPC 版一樣。同時,OV 除了可以搭配 Intel-native 的應用程式使用外,配合 Rosetta 執行 non-Intel 的應用程式也是沒有問題的。

至此,OpenVanilla 正式成為 Apple Universal Binary 應用程式的一員。:)

標籤: , ,

2006/03/19

OpenVanilla的捐款贊助者名單更新

作者: lukhnos

OpenVanilla的捐款贊助活動,從2005年十月開始,也已經經歷快半年了。這半年來我們持續收到許多朋友的支持。本來我一直提醒自己一個月一定要更新一次捐款名單的,這兩個月先是因為工作,又有一些個人的事,竟然被擱到了一邊。跟大家說聲抱歉。

我們二月和三月都各收到一筆贊助款,在此再次謝謝大家。捐款名單已經更新於OV的捐款贊助者名單,另外如果你有訂閱ov-develoepr這個mailing list,也會收到這份更新的名單。

標籤: , ,

2006/02/22

開放香草繁體中文轉日文漢字濾嘴

作者: gugod

(相當饒舌的抬頭)

因為常常有要打日文漢字的需求,所以簡單做了一個開放香草的濾嘴,可以「打繁出日」。廢話少說,有圖為證:


pic-ov-menu




ovof


簡單示意了,如何把「澀谷一條龍」轉換為「渋谷一条竜」。

目前在這個濾嘴裡的轉換表格還非常陽春,僅有三百餘條轉換,並且沒有詞的對應,只有字的對應。若要打長篇恐怕不怠,但拿來做為日常 google 或查字典已然足夠。

請 點此下載 本濾嘴的安裝程式。

標籤: , ,

2006/01/23

OpenVanilla偏好設定介紹(一)

作者: lukhnos

今天要介紹的不是OV的新功能,而是從0.7.0一開始就提供的「偏好設定」。

從輸入法選單那邊,選「偏好設定…」,就可以進入OV的偏好設定程式了。這其實是個有點複雜的程式,功能分為好幾區,我們將陸續介紹。

進入偏好設定程式後,視窗主要分為四個tabs:共用設定、模組載入清單及快速鍵、個別模組設定以及文字輸出處理模組。

今天先來介紹共用設定。



共用設定,顧名思議,當然是所有輸入法都可以共用的設定了,例如:選字窗的字體和顏色。算來惡搞的成份有些,OV的選字窗可以設成「透明背影」,或是指定「背景圖」,再者要弄成半透明若隱若現的,也是可以。老實說我到現在還是不知道,為什麼好好一個選字窗要能設背景圖或是全透明。也許套用那時Apple工程師在回答為什麼OS X登入後要弄個畫面球狀旋轉效果的話,還算合適:嗯,because we can。



「使用訊息窗」預設是打開的。如果要使用字根反查,或是詞彙管理模組,不打開是沒得用的(因為你就無法知道字根反查的結果,或是詞彙管理模組現在的狀態)。但是有些人也許就是不想看到任何非選字窗的訊息顯示。

警示音就是打錯字時的「嗶」一聲,聲音檔是可以自訂的,格式要是.aiff(為什麼不支援MP3?因為內建的NSSound就只支援.aiff;更何況,才不過打一次錯字,就要從頭聽一遍從ABBA的歌咪來的娜媽,好像有點痛苦......)。

倒是,有些輸入法(例如所有「泛用模組輸入法產生器」所產生的模組),都可以再另外設定是否要在打錯字時出警示聲。如果在那邊聲音就被關掉了,不管共用設定裡設的是Susomi還是Submarine聲,都是不會響的啦。

有一個東西是我們之前一直沒好好說明的,就是「切換最近使用的兩個輸入法」選項。顧名思議,只要把這個選項的快速鍵設好,就可以在最近使用過的兩個輸入法間做快速切換了。例如,我都是把它設成CTRL-SPACE,這樣就可以快速地在注音跟漁村符號(或是注音跟UIM日文輸入法)之間做切換。

對了,有些朋友可能會問:每次改完,都要離開偏好設定程式後才能生效,要改又要叫出程式,看那個香草icon在Dock上跳上跳下的...... 其實呢,如果只是為了馬上見到效果,可以按COMMAND-S (-S),然後切到另一個應用程式,效果就立現了。嗯?為什麼之前都沒說可以這樣做?因為,我也是前幾天才發現,原來當時程式有這樣寫的...... orz

標籤: , ,

2006/01/22

針對OV 0.7.2 (beta)不能跟AppleWorks等軟體共同使用所做的修正

作者: lukhnos

從0.7.2開始,OV便不再於OS X輸入法選單中列為「繁體中文」輸入法,而列在「Unicode輸入法」之列。這樣的改變增加了對非繁體中文語言的支援,卻也造成了諸如AppleWorks等較早軟體無法與OV一起使用的問題。

目前這個問題,可透過剛發佈的一組修正套件(SourceForge下載 / OpenFoundry下載)來克服。本修正套件將安裝一套「繁體中文版」的OpenVanilla於輸入法選單裡。安裝完、重新開完機後,請進「系統偏好設定」→「國際設定」中的「輸入法選單」,請務必將目前正啟用的"OpenVanilla 0.7.2 (beta)"給停用,然後將另一個列名繁體中文語系的"OpenVanilla 0.7.2 (TC)"給啟用。這樣子便可以在AppleWorks等軟體中使用OpenVanilla了。



又,經過測試,MSN Messenger 5(正式名稱為Microsoft Messenger 5)和OpenVanilla使用上並沒有相容性問題,但是輸入法選單卻顯示不出來。同樣的問題即使裝了修正套件也無法解決。另經測試,「空白鍵版酷音輸入法」(SpaceChewingOSX)在該軟體上也有同樣的問題,顯然是微軟不知道利用了哪組API,以致於讓3rd party的輸入法程式,都遭遇同樣問題。雖然不致於到無法使用的程度,卻很惱人。這就必須請微軟來解決了,因為只有他們家的程式有這種問題。

標籤: , ,

OpenVanilla 0.7.2 (beta) 也可以透過 DarwinPorts 安裝

作者: lukhnos

雖然這其實已經算舊聞了,但還是應該要提一下:OpenVanilla 0.7.2 (beta) 也可以透過 DarwinPorts 來安裝。安裝的版本跟由 .dmg 安裝是一樣的。至於用 DarwinPorts 來安裝有什麼好處呢?這...... 嚴格說來可能是沒有的。倒是對我這個只有一台機器的開發者(是的,開發輸入法這種高風險的軟體,卻只能拿自己工作用的家當來當測試機,偏偏我好像現在的工作叫「文字工作者」)來說,DarwinPorts的好處是,我可以把安裝好的 OV 暫時「解除使用」(deactivate),DP 就會把 OV 封存起來,把檔案搬開,然後我就可以安裝測試版,當需要做正經事時,再把測試版搬開,叫 DP 把先前封存起來的版本「啟用」(activate),然後我就不用跑那個安裝程式的 .dmg 了。

標籤: , ,

2006/01/20

OpenVanilla新功能介紹第二彈:詞彙管理工具

作者: lukhnos

呃,在介紹之前,我要先懺悔一下:這個模組在英文選單下有一個礙眼的錯字,還有兩個設定鍵碼錯了,請先下載修正套件補一補吧(SourceForge下載、OpenFoundry下載)。

安裝完了,我們可以切入正題。嗯,OV 0.7.2新加入的詞彙管理工具...... 簡言之,這是一套可以在任何輸入法下(或任何輸入法「上」)錄製新詞彙、叫出詞庫的工具。暫不說設計緣由,先來看看怎麼使用吧!

首先,請先開啟OpenVanilla選單上的「詞彙管理工具」以及「詞彙管理─文字輸出記錄器」給啟用(如果你用的是英文選單,請點選"Phrase Management"跟"Phrase Tools: Text Recorder"兩個模組),並確定選單上這兩個模組是打了勾的:



一旦啟用之後,我們便可以用「詞彙工具啟用鍵」進入詞彙管理模式了。預設的啟用鍵是「~」。如果連按兩次「~」(~~),就會輸出原來啟用鍵代表的字──這個設定當然是可以改的,我們等會說明。

進入了詞彙管理模式後,會看到OV的狀態回報:

目前詞彙管理模式有三件事可以做:
  • 錄製新詞彙
  • 將錄到的詞彙加進資料庫
  • 叫出資料庫裡的詞
首先是錄製新詞彙。預設的快速鍵是 [ ,也就是說,平常在輸入法模式下,只要順序按「詞彙工具啟用鍵+錄製鍵」(例如 ~[ ),就會進入錄製模式啦:



進入錄製模式,就又回到了正常的輸入法狀態。這時你所打的每個字,都會被錄進去。不過,如果你切回英文鍵盤(也就是只要離開了OV),剛錄的東西就不算數了。

Ok,來錄點什麼吧。好比說,前陣子我幫忙翻譯了一篇跟HTML有關的文章,不時提到CSS。CSS有個很拗口的中譯叫「階層樣式表」,我每次都要去查hlb翻譯的W3C glossary才知道這東西中文名字這麼叫。我希望能有個方法,只要打「css」就給我出「階層樣式表」。那麼,我們就把這幾個字錄起來吧:

一邊打字,OV會一邊記錄。萬一打錯了,按個backspace,OV也會跟著把錯字給清掉。

嗯,打完了。然後我們這時再次進入詞彙管理模式,把剛剛錄好的詞給存進資料庫裡。來按個 ~ 鍵吧:

「詞彙管理工具」其實像是某種命令列工具。我們這時輸入「a css」然後按enter,代表說把「錄到目前為止的詞(「階層樣式表」)給加進資料庫裡,並且用『css』這一串字來代表」。

打完指令,按下enter後,詞彙管理工具會回報:

Ok! 這樣就錄好詞了。那麼以後我們要叫出這個詞的時候,只要進入詞彙管理工具,打「css」再按enter:

詞彙管理工具就會自動吐出「階層樣式表」這幾個字,節省一串打字的力氣。我們甚至可以記下這一串鍵盤操作方式:「~css [enter] → 階層樣式表」。

如果記不起來這個詞的代稱全名是css,按個字頭c,再按個[tab]鍵,OV就會列出所有c字頭的詞:

這個選單就跟輸入法的選字一樣,如果有很多選擇,可以用翻頁的方式來找。當然不一定只能打字頭,例如打「cs」再按tab,就會列出所有以cs開頭能叫出的詞,以此類推。

剛剛說到,只要一離開OV,詞彙記錄功能就停了。如果我要想記錄英文詞,或是記錄中英混合的詞,該怎麼辦?這時OV大多數輸入法都支援的「按caps lock進入英數模式」就很有用了,我們可以在需要打英文詞時按一下caps lock,打完英文,再按一下caps lock繼續打中文:

這時再用cs字頭來查,就會有兩種選擇了:

選完字後:

Ok,以下是「詞彙管理工具」的操作總結,假設你用的都是預設鍵的話:
~[進入錄製新詞模式
~~連按兩次啟用鍵就會輸出原符號
~a foo [enter]把錄到的詞加到資料庫中,關鍵字是foo
~foo [enter]叫出關鍵字foo所代表的詞
~foo [tab]列出關鍵字以foo開頭所代表的詞
~h [enter]叫出詞彙管理工具的求助訊息


此外,在詞彙管理模式中,隨時按 [esc] 就可以跳出詞彙管理模式:

然後,可以進 OV 的偏好設定,找到「個別模組設定」那一區的右下角,就可以更改上述的兩個快速鍵:

上述的activationKey就是啟用鍵,textRecordingKey就是錄製鍵。例如我的設定是:

那麼我的錄製鍵就變成了 @[ ,而叫出 css 的方法也變成了 @css (enter) 了。

最後要提兩件事。一個是,這其實是 OV 的新應用,如果你對這個工具有任何想法(增加功能、改變操作方式或使用介面),請不吝提出意見。事實上很多能修改資料表的輸入法(例如OV的倉頡或大易)都可以透過改資料表的方法,來達到加詞的功能,但是改資料表麻煩,注音或酷音等輸入法又用不到,這是設計這個工具的另一個理由。

另一件事情是,這個詞彙工具的資料庫,是利用sqlite做的。OS X從10.4開始內附sqlite這套簡單快速又強大的迷你資料庫系統。詞彙管理工具的資料庫目前是放在這個位置:
~/Library/OpenVanilla/0.7.2/UserSpace/OVKPPhraseTools/userphrase-0.7.2.0.db
如果你有興趣,可以去這個連結抓取這兩個範例詞庫:然後將它們倒進資料庫裡:
sqlite3 userphrase-0.7.2.0.db < w3c-glossary-tw.sql
sqlite3 userphrase-0.7.2.0.db < phrase-example.sql
然後再進入詞彙管裡工具,打個 syspref (enter) 或 w (tab),就會看到一堆詞了。

Have fun!

標籤: , ,