2008-08-27 4 views
52

Je développe une application Linux qui a son propre format de fichier. Je souhaite que mon application s'ouvre lorsque vous double-cliquez sur ces fichiers.Enregistrer des extensions de fichiers/types mime sous Linux

Comment puis-je enregistrer une extension de fichier et l'associer à mon application sous Linux? Je suis à la recherche d'une méthode standard (fonctionne avec les systèmes GNOME et KDE) et peut être automatique lorsque mon programme est installé ou exécuté pour la première fois.

Répondre

42

Utilisez xdg-utils à partir de freedesktop.org Portland.

Enregistrez-vous sur l'icône pour le type MIME:

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

Créer un fichier de configuration (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> 

Installez le fichier de configuration:

xdg-mime install mytype-mime.xml 

Cela devient vos fichiers reconnus et associé à une icône. xdg-mime default peut être utilisé pour associer une application au type MIME après l'installation d'un fichier .desktop.

+1

Ubuntu 9.04 et Fedora Core 10 ont les utilitaires xdg installés par défaut – jldupont

4

1) dans Linux c'est une fonction de votre environnement de bureau plutôt que l'os lui-même.
2) GNOME et KDE ont différentes méthodes pour y parvenir.
3) Rien ne vous empêche de le faire dans les deux sens.

0

Essayez ce script: besoins:

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

dans le répertoire courant:


#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 

assurez-vous que: binaire FOO est là dans/usr/bin (ou $ PATH