2012-04-02 3 views
2

선택한 파일에 대해 새로운 노틸러스 작업을 만들고 싶습니다. 그러나 작업 정보 자체를 어디에 넣어야하는지 잘 모르겠습니다. nautilus-actions-new --desktopsegfaultsnautilus-actions-config-toolTrace/breakpoint trap를 출력하고 종료 코드 (133)를 반환하고, 사용자 정의 에 노틸러스 - 내부의 .desktop 파일을 설치해야 man 페이지, 어떤 조언이나 다른 방법에 대한 참조가 될 것 같지 않습니다 노틸러스 컨텍스트 메뉴.Nautilus-Actions .desktop 파일을 저장할 위치?

답변

1

귀하의 질문에 대한 답변을 얻지 못해서 nautilus 2.30.1nautilus-actions 2.30.2을 사용하여 데비안 압착기에서 세그멘테이션 결함을 재현 할 수 없었습니다. Nautilus-internal .desktop files이 무슨 뜻인지 잘 모르겠지만 노틸러스 작업이 작업을 저장하는 위치를 의미하는 것으로 알고 있습니다.

특정 파일에 저장되지 않습니다. 실제로 GConf에 저장되어 있으며 Configuration Editor을 사용하거나 gconf2 (Debian) 패키지를 설치하고 명령을 gconftool-2 사용하여 명령 줄에서 편집하고 편집 할 수 있습니다. /apps/nautilus-actions/configurations/ 경로 아래에서 찾을 수 있습니다.

+0

내가 여기 온 곳 노틸러스 저장 노틸러스 행동, 노틸러스 3.10.1 우분투 14.04에. GConf에서 찾지 못했습니다. 예를 들어'gconftool-2 --dump/apps/desktop/schemas/system | grep -C 50 nautilus'는 아무것도 돌려주지 않았습니다 ... – isync

1

최근에 수정 된 노틸러스 작업에 버그가있었습니다 (최소 3.2 개). 최신 버전은 3.2.2입니다.

노틸러스 컨텍스트 메뉴를 사용자 정의하는 것과 관련하여 Python/C에서 자체 스크립트 또는 확장을 사용할 수 있습니다.

스크립트 :

사람들은 .gnome2/스크립트에 저장됩니다. 스크립트의 이름은 상황에 맞는 메뉴 (스크립트 아래)에 나타날 텍스트입니다. 자세한 내용은 Nautilus Scripts user guide에서 확인할 수 있습니다. 노틸러스 3도 .gnome2/scripts이라는 디렉토리를 읽습니다.

확장 :

비록 당신이 확장 기능을 쓸 수 있지만 하나 파이썬 또는 C, 파이썬은 사용자의 요구에 더 간단합니다.

템플릿 아래에서 Nautilus 3에 대한 사용자 지정 메뉴를 직접 만들 수 있습니다.이 템플릿은 Postr's nautilus extension을 기반으로합니다. 노틸러스 3의 경우 ~/.local/share/nautilus-python/extensions에 저장해야합니다.

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, 

노틸러스 2의 경우 스크립트의 시작점은 다소 차이가 있습니다. 시작 부분 만 변경하면됩니다. 이전 예를 들어, 다음과 같습니다 발견하는 동안

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): 
...