2008-08-27 28 views
52

Tôi đang phát triển một ứng dụng Linux có định dạng tệp riêng. Tôi muốn ứng dụng của tôi mở khi bạn nhấp đúp vào các tệp đó.Đăng ký các phần mở rộng tập tin/loại mime trong Linux

Làm cách nào để đăng ký tiện ích mở rộng tệp và liên kết nó với ứng dụng của tôi trên Linux? Tôi đang tìm một cách tiêu chuẩn (làm việc với các hệ thống dựa trên GNOME và KDE) và có thể được thực hiện tự động khi chương trình của tôi được cài đặt hoặc chạy lần đầu tiên.

Trả lời

42

Sử dụng xdg-utils từ freedesktop.org Portland.

đăng ký biểu tượng cho kiểu MIME:

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

Tạo một file cấu hình (freedesktop Shared MIME documentation):

<?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> 

Cài đặt các tập tin cấu hình:

xdg-mime install mytype-mime.xml 

này được tập tin của bạn được công nhận và được kết hợp với biểu tượng. xdg-mime default có thể được sử dụng để liên kết ứng dụng với loại MIME sau khi bạn đã cài đặt tệp .desktop.

+1

Ubuntu 9.04 & Fedora Core 10 có các tiện ích xdg được cài đặt theo mặc định – jldupont

4

1) trong linux đây là một chức năng của môi trường máy tính để bàn của bạn chứ không phải là bản thân hệ điều hành.
2) GNOME và KDE có các phương pháp khác nhau để thực hiện việc này.
3) Không có gì ngăn cản bạn làm cả hai cách.

0

Hãy thử kịch bản này: nhu cầu:

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

trong thư mục hiện:


#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 

đảm bảo: FOO nhị phân là có trong/usr/bin (hoặc trong $ PATH)

Các vấn đề liên quan