首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Nautilus-Actions .desktop文件存储在哪里?

将Nautilus-Actions .desktop文件存储在哪里?
EN

Stack Overflow用户
提问于 2012-04-02 16:57:42
回答 2查看 1.8K关注 0票数 2

我想为选定的文件创建一个新的Nautilus操作,但我不知道该将操作信息放在哪里。nautilus-actions-new --desktop 分段故障nautilus-actions-config-tool只打印Trace/breakpoint trap并返回退出代码133,并且在man页面中似乎没有任何引用Nautilus -内部.desktop文件应该安装,任何提示或自定义Nautilus上下文菜单的替代方法。

EN

回答 2

Stack Overflow用户

发布于 2012-04-18 21:03:40

我可能没有得到您的问题,我也无法重现使用nautilus 2.30.1nautilus-actions 2.30.2的Debian压缩的分段错误。我也不知道你所说的Nautilus-internal .desktop files是什么意思,但我理解你指的是海里的动作本身储存在哪里。

它们并不存储在特定的文件中。它们实际上存储在GConf中,您可以看到它们并使用Configuration Editor或从安装包gconf2 (Debian)的命令行中使用命令gconftool-2编辑它们。您可以在/apps/nautilus-actions/configurations/路径下找到它们。

票数 1
EN

Stack Overflow用户

发布于 2012-05-05 22:09:13

最近(至少在3.2中)修复了nautilus操作中的一个bug。最新版本为3.2.2。

关于定制Nautilus上下文菜单,您可以使用自己的脚本或Python/C中的扩展来创建。

脚本:

它们存储在.gnome2/脚本中。脚本的名称将显示在上下文菜单(脚本下)中的文本。您可以在Nautilus脚本用户指南中找到更多信息。注意,nautilus 3还将读取.gnome2/脚本目录。

扩展:

尽管您可以用Python或C编写扩展,但是Python对于您的需要来说更加简单。

下面的模板可以用来为Nautilus 3创建您自己的自定义菜单,它是基于[医][医]后(氏)无节伸长的。对于Nautilus 3,您需要将其存储在~/..local/share/nautilus python/扩展中。

代码语言:javascript
复制
from gi.repository import Nautilus, GObject
import os, os.path
from urllib import unquote

PROGRAM_NAME = '/path/to/the/program/you/want/to/run/with/the/files/selected'

class MyExtension(GObject.GObject, Nautilus.MenuProvider):
    def __init__(self):
        pass

    def action_for_my_files(self, menu, files):
        # This is the method invoked when our extension is activated
        # Do whatever you want to do with the files selected
        if len(files) == 0:
            return

        names = [ unquote(file.get_uri()[7:]) for file in files ]

        argv = [ PROGRAM_NAME ] + names

        GObject.spawn_async(argv, flags=GObject.SPAWN_SEARCH_PATH)

    def get_file_items(self, window, files):
        ''' This method is invoked to create a contextual menu.
            We can filter out the files, directories we do not want a menu
        '''

        '''No files selected -> no menu'''
        if len(files) == 0:
            return

        for fd in files:
            ''' Not a file -> no menu '''
            if fd.is_directory() or fd.get_uri_scheme() != 'file':
                return
            ''' Not an image -> no menu '''
            if not fd.is_mime_type("image/*"):
                return

        item = Nautilus.MenuItem(name='MyExtension::MethodUniqueId',
                                 label='Label in the menu...',
                                 tip='Tip for the menu',
                                 icon='icon_name')
        item.connect('activate', self.action_for_my_files, files)

        return item,

对于Nautilus 2,开头的脚本大致相同。你只需要改变开始。在前面的例子中,如下所示:

代码语言:javascript
复制
import gobject, nautilus
import os, os.path
from urllib import unquote

PROGRAM_NAME = '/path/to/the/program/you/want/to/run/with/the/files/selected'

class PostrExtension(nautilus.MenuProvider):
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9980527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档