Konqueror右鍵菜單的擴展
konqueror我用了一段時間感覺還不錯,下面給大家介紹點關于Konqueror的知識:如何擴展Konqueror的右鍵菜單。
konqueror是kde下的一個多功能資源瀏覽器,能直接管理硬盤上的文件,瀏覽網絡上的資源,功能強大.而安裝了kde3.1的朋友,在konqueror里,對著zip,tar.gz,tar.bz2這些壓縮包右鍵時,會驚喜的發現其中有項"解壓到這里..."的選項,通過它可以很方便的解壓常見的壓縮包.那你有沒有想過它是怎么來的呢?你有沒有想過根據自己的需要也來擴展這個右鍵菜單呢?下面簡單說一下,希望能起到拋磚引玉的作用.
1.環境:redhat8.0+非官方的kde3.1升級包,magic1.1beta(自帶kde3.1)
2.打開/usr/share/apps/konqueror/servicemenus這個目錄,你會發現下面有不少*.desktop文件,這些文件便是我們今天文章里的主角,就是它們實現"在此打開終端"這些多姿多彩的右鍵功能的.先看konsolehere.desktop這個文件的內容:
[Desktop Entry]
ServiceTypes=inode/directory
Actions=openTerminalHere
X-KDE-AuthorizeAction=shell_access
[Desktop Action openTerminalHere]
Name=Open Terminal Here
Name[zh_CN]=在此打開終端
Icon=konsole
Exec=konsole --workdir %U
很明顯,它的內容分成兩段,其中[Desktop Entry]段
ServiceTypes=inode/directory #定義此右鍵菜單項出現的條件,為inode/directory(這個定義可以從konqueror菜單上的"設置---配置konqueror...---文件關聯"里看到),也就是說如果當前對象為目錄就出現這個選項
Actions=openTerminalHere #定義此右鍵菜單項動作的名字
X-KDE-AuthorizeAction=shell_access #不知道......
再看[Desktop Action openTerminalHere]段,這里是定義菜單項的名字和圖標和相應的動作,注意的是"[Desktop Action openTerminalHere]"這里后面的openTerminalHere和上面的Actions=openTerminalHere相對應
Name=xxx #定義缺省環境(英文)下菜單項的名字
Name[xxx]=xxx #定義不同語言環境下菜單項的名字,對中文locale環境,顯示的就是Name[zh_CN]里的定義
Icon=konsole #定義菜單項前面的圖標,為/usr/share/icons/當前所用主題/16x16/apps/konsole.png
Exec=konsole --workdir %U #定義菜單項的執行動作,其中 %U代表當前目錄,konsole --workdir %U的意思就是,執行konsole,并將當前鼠標所指目錄設定為工作目錄
上面的不復雜,應該不難理解,再看"解壓到這里..."功能的實現
打開arkservicemenu.desktop文件,可看到如下內容:
[Desktop Entry]
#Encoding=UTF-8
ServiceTypes=application/x-gzip,application/x-lha,application/x-tar,......,application/x-archive,application/x-bzip2,application/x-jar
Actions=Extract
[Desktop Action Extract]
Name=Extract Here...
Name[zh_CN]=解壓到這里...
Exec=ark -extract %U
也不復雜,我大概說說.
Encoding=UTF-8 #表示下面的Name段所用的字符編碼都是utf8(如果你使用其他編碼,譬如gbk,最好將這行去掉)
ServiceTypes=application/x-gzip,......,application/x-jar
#同樣,你可以在konqueror的"設置---配置konqueror...---文件關聯"管理里看到類似的Types定義,也就是定義了如果鼠標所指當前對象屬于上面定義的文件類型,那么就顯示此項菜單
Exec=ark -extract %U#定義執行ark -extract命令,將文件解壓到當前目錄(%U)下
3.下面就讓我們自己寫一個desktop文件,來實現右鍵就可以將任意文件當作附件用kmail發送的功能(對于使用kmail的朋友,這個功能還是挺方便的)
在/usr/share/apps/konqueror/servicemenus下建立一個叫kmail.desktop(名字隨意起,后綴為desktop就行)的文件,內容該怎樣寫呢?讓我們考慮一下
首先,確定kmail的附件功能命令是什么.開一個終端,執行kmail -help指令,可以知道用kmail --attach 命令可以將url所指的文件當作附件發送來啟動kmail.
然后,我們需要的功能是對著任意文件(不包括目錄),右鍵就出現相應菜單,那么,這個"任意文件"對象怎么設置呢,通過在konqueror菜單上的"設置---配置konqueror...---文件關聯"選項,我們可以知道,"所有文件"的Type定義是all/allfiles,因此,應該有ServiceTypes=all/allfiles定義
確定了這兩點,編寫這個kmail.desktop就不是難事了,內容如下:
[Desktop Entry]
ServiceTypes=all/allfiles
Actions=Mail
[Desktop Action Mail]
Name=Mail this file to...
Name[zh_CN]=將文件當作附件發送
Icon=kmail #使用/usr/share/icons/當前所用主題/16x16/apps/kmail.png作為圖標
Exec=kmail --attach %u #%u代表當前鼠標選中的對象
保存一下,現在,試試右鍵任意konqueror里的任意文件,右鍵是否就有"將文件當作附件發送"的選項,選中它試試,夠神奇吧!
4./usr/share/apps/konqueror/servicemenus目錄下還有不少文件,定義包括光驅圖標的右鍵"彈出""加載"菜單功能等,好好將它們研究一下,能學會不少東西
只有想不到,沒有做不到;充分發揮你的想象力,祝你寫出不少精彩的右鍵功能出來!
閱讀完整篇文章,是不是很神奇,更多右鍵功能就在你手邊!
【編輯推薦】
- Konqueror簡單介紹
- 嵌入式瀏覽器Konqueror的技術分析
- 我教你修改konqueror工具欄
- 讓我的konqueror顯示中文網頁
- Konqueror 特殊超能力
- 圖文并茂 Konqueror讓你一看就精通
- 深入了解 Konqueror/embedded的編譯和安裝的過程
- Opera快速撥號引入Konqueror方法