因為工作的關係,我們一直以來都是使用 Linux 版的 Maya,導致曾經一度有錯覺,覺得 Linux 的東西就是比較好,即便是商業軟體 Maya,也是 Linux 版的比其它平台的版本來得優。事後證明這是種一相情願的想法,MS Windows 雖然在安全性與 GUI 的設計上進展緩慢,但它對 programmer 非常的友善,加上商業化的行為比較健全,所以多的是軟體公司或個人程式設計師在上頭寫了不少好的軟體,…說了這麼多,只是想說,MS Windows 版的 Maya 在 GUI 方面,的確有不錯的地方。
我曾針對 Linux 版 Maya 的 GUI 寫了兩篇:
Karl Erlandsen 是我在工作過程中,要去處理一個問題而不小心看到的。一般來說,工作很忙錄時,我會刻意不去理會網頁,也不會開啟 MSN 之類的東西,但這一篇實在很有意思:Improving the Maya Linux File Browser。
Karl 的作法是利用 zenity 或 kdialog(端看你使用的 Desktop Manager 是 GNOME 還是 KDE)。他覆寫(override)掉了 Maya 原有的 File Open/Save 相關的 mel functions(更精確一點來說,是覆寫掉 pv_ooxx,這部分我們的 spin 非常有經驗),然後在裏頭安插了一個 system call,透過一個包好的 KE_FileBrowserWrapper.sh 來呼叫 zenity 或是 kdialog,最後再以 nc (netcat) 這個非常厲害的程式來把選取的檔名傳回 Maya。
同時,他在設計 CommandPort 這一部分,程式碼寫得不錯。CommandPort 不是綁死在一個固定的 port(當你有多個 Maya 正在執行時,就會發生問題),而是採用比較“健康“的作法,定義一個 port range(ex, 6000~6020)。
有興趣想了解多一點他 script 的作法的,去他的網頁看看。建議可以搭配任何一個 diff 程式來了解一下他修改過的地方(我自己都是使用 python 寫的 meld)。