선택한 파일에 대해 새로운 노틸러스 작업을 만들고 싶습니다. 그러나 작업 정보 자체를 어디에 넣어야하는지 잘 모르겠습니다. nautilus-actions-new --desktop
segfaults는 nautilus-actions-config-tool
은 Trace/breakpoint trap
를 출력하고 종료 코드 (133)를 반환하고, 사용자 정의 에 노틸러스 - 내부의 .desktop 파일을 설치해야 에 man
페이지, 어떤 조언이나 다른 방법에 대한 참조가 될 것 같지 않습니다 노틸러스 컨텍스트 메뉴.Nautilus-Actions .desktop 파일을 저장할 위치?
답변
귀하의 질문에 대한 답변을 얻지 못해서 nautilus 2.30.1
및 nautilus-actions 2.30.2
을 사용하여 데비안 압착기에서 세그멘테이션 결함을 재현 할 수 없었습니다. Nautilus-internal .desktop files
이 무슨 뜻인지 잘 모르겠지만 노틸러스 작업이 작업을 저장하는 위치를 의미하는 것으로 알고 있습니다.
특정 파일에 저장되지 않습니다. 실제로 GConf에 저장되어 있으며 Configuration Editor
을 사용하거나 gconf2
(Debian) 패키지를 설치하고 명령을 gconftool-2
사용하여 명령 줄에서 편집하고 편집 할 수 있습니다. /apps/nautilus-actions/configurations/
경로 아래에서 찾을 수 있습니다.
최근에 수정 된 노틸러스 작업에 버그가있었습니다 (최소 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):
...
내가 여기 온 곳 노틸러스 저장 노틸러스 행동, 노틸러스 3.10.1 우분투 14.04에. GConf에서 찾지 못했습니다. 예를 들어'gconftool-2 --dump/apps/desktop/schemas/system | grep -C 50 nautilus'는 아무것도 돌려주지 않았습니다 ... – isync