使用WebKit製作OV選字窗的實驗
晚上利用時間重新啟動了一個去年就進行過的實驗:使用WebKit來製作OpenVanilla的選字窗。翻譯成白話就是:「用web browser來做為輸入法的選字界面」。
由於OpenVanilla從0.7.0開始,選字窗的顯示是由另外一個process負責,也就是所謂的OVDisplayServer。Display server是透過Objective-C RPC來聯繫,因此我們只要kill掉display server的process,換上有相同RPC註冊名的process,就可以達到替換UI的功能。
目前這個實驗真的還在無比alpha的階段,以下步驟僅供the truly adventurous使用:
- 從svn取得OV最新原始碼
- 使用Xcode編製在trunk/Experiment/WebKitServer的project file (WebKitServer.xcodeproj)
- 在shell底下執行 “killall OVDisplayServer”,把原先的 OVDisplayServer process 殺掉
- 執行編好的WebKitServer.app
- 開啟新的應用程式(此時最好關閉舊的應用程式,不然切至OV時會發生問題)
- 切至OV,就會看到使用WebKit的選字窗
- 如果不喜歡default style,可以到 ~/Sites/ 建立一個名叫 WebKitServer 的目錄,然後在裡面建立一個 style.css
- 換上自己喜歡的body style
注意事項及現有問題:
- style.css更新後,WebKitServer 不會即刻更新,得重新啟動(如何refresh WebKit中的stylesheet,得要研究一下)
- 重新啟動 WebKitServer 代表先前啟動的應用程式也得關掉重新啟動,不然會當掉
- 不能調整選字窗的大小和位置,不然OV會在選字窗內啟動,然後就陷入永劫回歸,orz
- 選字窗目前是用default window style,這個得調
- 選字窗內文目前是用重新載入HTML page source的方式做的,這個將來應該要改成用JavaScript來做:反正WebKit很邪惡嘛……
不能免俗,有圖有真相:
lukhnos :: Jul.14.2006 :: tekhnologia 技術或者藝術 :: 2 Comments »
2 Responses to “使用WebKit製作OV選字窗的實驗”
[...] http://lukhnos.org/blog/zh/archives/349 [...]
[...] 基本原理是:將輸入法輸出的各種訊息,透過 JavaScript 送到一個瀏覽器視窗(WebKit)裡頭,呈現候選字列表、警告訊息等(請山參見〈使用WebKit製作OV選字窗的實驗〉)。換言之,就是可以將各種網頁設計的技術,用來設計輸入法使用介面,甚至可以把所有 Dashboard Widget 擁有的功能都塞進選字視窗裡頭—可以放個 RSS Reader、天氣預報、電池用量、iTunes正在放什麼歌,或是連接線上字典。 [...]