2008年1月1日

GNOME Nautilus 與 WINE

剛過新年沒多久,我就上來po文拉~
這篇將會同步po在Ubuntu論壇(和、或摩托學園)~~

前幾篇po過,最近嘗試用Ubuntu來生活,雖然還沒辦法完全離開Windows,工作時(看Paper...等)都還是要重開機回去,但已經很能適應了。

這次要說的,是Nautilus和WINE~

WINE透過google和其他blog高人的心得設定之後,中文已經支援的不錯了,軟體的支援幾乎不用改設定就可以支援了(一小部分軟體),算是不錯~

可惜的是,在Windows當中,一些軟體經常可以和檔案總管的右鍵結合,一般稱之為『shell extension』或『shellext』,在GNOME當中,類似的功能就要看Nautilus了。

GNOME當中,Nautilus身分就類似檔案總管,也的確有提供一些shell extension,但是和Windows相比,還是很弱阿~(我想要右鍵直接預覽圖片的功能,有嗎... :~~~ )

儘管如此,有個不錯的程式不錯,在套件庫就有了,套件名稱叫作『Nautilus-Actions』,它可以讓我們自訂右鍵的功能選單,能夠自訂要執行的程式指令和參數,還能自行指定圖示,相當的方便。

Nautilus-Actions介紹完了,讓我們說說WINE吧~

WINE是Linux上的Windows模擬器,可以執行一些些程式,像是ConvertZ、PDF-X Change PDF Viewer...等等。
以ConvertZ來說,我在Windows上的用法,多半是指個檔案,然後右鍵選ConvertZ,然後就能很方便的轉換到繁體(正體),儘管Linux能夠用WINE執行,但感覺少了甚麼.....就是右鍵執行的能力。

至於PDF-X Change PDF Viewer,這是套很不錯的PDF Viewer,它是免費的,而且可以直接下註解,在Windows上,我已經完全取代Adobe Reader了,雖然它能用WINE執行,但開啟檔案的視窗目前會當掉(我猜八九不離十是那個PDF預覽惹的禍),因此如果我們直接下指令,它是可以正常執行的,可是每次都下指令,還要查看轉換、檔案路徑(/home/xxx = z:\home\xxx),這不是很麻煩嗎。

有沒有辦法跟Nautilus-Actions進行結合呢?
我的解決方法是,寫個shell script幫我把檔案、目錄的路徑轉成z:\xxx\xxxx的格式,在送給WINE執行,因此就用我差勁的shell script能力寫了下面這樣的程式:
/usr/local/bin/wine_bridge
#!/bin/bash
rm /tmp/runcmd
echo -n "/usr/bin/wine '$1' '" > /tmp/runcmd
echo -n $2 | sed -e 's/\//\\/g' | sed -e 's/^/z:/g' >> /tmp/runcmd
echo -n "'" >> /tmp/runcmd
chmod 700 /tmp/runcmd
/tmp/runcmd


過程很簡單,把 wine ConvertZ.exe "/home/xxx/ooo.pdf" 轉成 wine ConvertZ.exe "z:\home\xxx\ooo.pdf" 並寫入到 /tmp/runcmd,之後就執行它~

使用方法是,加入新的Nautilus動作
系統->偏好設定->動作組態

新增->標籤自訂、圖示自訂、工具提示自訂
->動作 路徑->/usr/local/bin/wine_bridge(檔名路徑同前)
->動作 參數->"/home/xxx/.wine/drive_c/Program Files/ConvertZ/ConvertZ.exe" %M(前面填上WINE要執行程式的完整路徑檔名,後面的%M則就是目前指到的檔案(目錄)的完整路徑)

相信看到的人,可以幫我改良它,畢竟只花了點時間,而且我bash不熟,功能有到我就滿足了~

加入之後,我的ConvertZ、PDF-X Change PDF Viewer現在都能夠直接用Nautilus右鍵來呼叫執行了,非常方便~

最後,這程式看起來就很破,而且能改進的地方也很多,像是多個檔案的能力拉.....等等,歡迎修改它然後跟我說,讓我也能用..... :p

2 則留言:

Unknown 提到...

請問一下
您有使用
wine + XChange PDF Viewer嗎
我有安裝且中文語系的問題也有解決
但是我發現裡面不能輸入中文
您有沒有辦法解決呢?
可以的話告訴我好嗎?
akong@aspa.idv.tw

Cody 提到...

我也有遇到,並沒有解決。
不過我通常用法都是會開個記事本或者gedit,然後先打好,之後複製貼上。
這樣是沒問題的。