2008-08-27 6 views
52

고유 한 파일 형식을 가진 Linux 응용 프로그램을 개발 중입니다. 그 파일을 더블 클릭하면 내 앱이 열리길 원합니다.리눅스에서 파일 확장자/MIME 유형을 등록하십시오.

파일 확장자를 등록하고이를 Linux의 내 응용 프로그램과 연관시키는 방법은 무엇입니까? 표준 (GNOME 및 KDE 기반 시스템에서 작동하는 방식)을 찾고 있으며 프로그램을 처음 설치하거나 실행할 때 자동으로 수행 할 수 있습니다.

답변

42

xdg-utils부터 freedesktop.org Portland까지를 사용하십시오.

MIME 타입의 아이콘 등록

<?xml version="1.0"?> 
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> 
    <mime-type type="application/x-mytype"> 
    <comment>A witty comment</comment> 
    <comment xml:lang="it">Uno Commento</comment> 
    <glob pattern="*.myapp"/> 
    </mime-type> 
</mime-info> 

구성 파일을 설치합니다 :

xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype 

구성 파일 (freedesktop Shared MIME documentation)을 만들기

xdg-mime install mytype-mime.xml 

이 파일은 인식됩니다 아이콘과 연결되어 있습니다. xdg-mime default을 사용할 수 있습니다. .desktop 파일을 설치 한 후 응용 프로그램을 MIME 형식과 연결합니다.

+1

우분투 9.04 및 페도라 코어 10에는 기본적으로 xdg 유틸리티가 설치되어 있습니다 – jldupont

4

1) 리눅스에서 이것은 os 그 자체보다는 데스크탑 환경의 기능입니다.
2) 그놈과 KDE는이를 수행하는 다른 방법을 가지고 있습니다.
3) 두 가지 일을 모두 막을 수있는 방법은 없습니다.

0

이 스크립트를 시도해보십시오 필요 : 현재 디렉토리에

1. your application icon -> $APP    = FIREFOX.png 
2. your mimetype icon -> application-x-$APP = HTML.png 

:


#BASH SCRIPT: Register_my_new_app_and_its_extension.sh 
APP="FOO" 
EXT="BAR" 
COMMENT="$APP's data file" 

# Create directories if missing 
mkdir -p ~/.local/share/mime/packages 
mkdir -p ~/.local/share/applications 

# Create mime xml 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> 
<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\"> 
    <mime-type type=\"application/x-$APP\"> 
     <comment>$COMMENT</comment> 
     <icon name=\"application-x-$APP\"/> 
     <glob pattern=\"*.$EXT\"/> 
    </mime-type> 
</mime-info>" > ~/.local/share/mime/packages/application-x-$APP.xml 

# Create application desktop 
echo "[Desktop Entry] 
Name=$APP 
Exec=/usr/bin/$APP %U 
MimeType=application/x-$APP 
Icon=$APP 
Terminal=false 
Type=Application 
Categories= 
Comment= 
"> ~/.local/share/applications/$APP.desktop 

# update databases for both application and mime 
update-desktop-database ~/.local/share/applications 
update-mime-database ~/.local/share/mime 

# copy associated icons to pixmaps 
cp $APP.png    ~/.local/share/pixmaps 
cp application-x-$APP.png ~/.local/share/pixmaps 

확인 : FOO 바이너리는/usr/bin에 ($ PATH에 또는이)

관련 문제