|
楼主 |
发表于 2005-10-3 21:13:06
|
显示全部楼层
这里给一个更好的例子,是我查找 修改右键 修改 找到的:
可以作为 ServiceTypes= 的补注
问:
Konqueror文件管理器的右键菜单怎样增加自定义功能?
看到论坛上的帖子说Gnome的Nautilus可以修改脚本来增加右键菜单的功能,
Konqueror怎么作这件事呢?
Snoopy答:
.打开/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)下
2.下面就让我们自己写一个desktop文件,来实现右键就可以将任意文件当作附件用kmail发送的
功能(对于使用kmail的朋友,这个功能还是挺方便的)
在/usr/share/apps/konqueror/servicemenus下建立一个叫kmail.desktop(名字随意起,后缀为desktop就行)的文件,内容该怎样写呢?让我们考虑一下
首先,确定kmail的附件功能命令是什么.开一个终端,执行kmail -help指令,
可以知道用kmail --attach 命令可以将url所指的文件当作附件发送来启动kmail.
然后,我们需要的功能是对着任意文件(不包括目录),右键就出现相应菜单,那么,
这个"任意文件"对象怎么设置呢,通过在konqueror菜单上的"设置---配置konqueror...---文件关联"选项,
我们可以知道,"所有文件"的Type定义是all/al |
|