- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
comment linux sait que ce fichier s'ouvre avec cette application ? (mime)
Windows utilise l'extension des fichiers (.doc, .xls...) pour savoir quelle application lancer. Les fichiers sous Linux (Unix) ont des permissions: lire, écrire, executer... et, contrairement aux Windows, le noyeau n'utilise pas ces extentions. Alors comment Linux (Ubuntu) détermine-t-il cette association?
des pistes
file et les en-tete de fichiers
file est un outil linux, qui utilise les nombres magiques dans les en-tete des fichiers (qu'il compare à une base de donnée).
Par ex: chaque fichier JPEG commence par FFD8 et se termine par FFD9 ; les vieux exe DOS commencent toujours par MZ, qui est aussi un "magic number".
xdg et mime
La pluspart des environnement graphiques sous linux utilisent xdg-open, qui utilise les données (locale) XML de xdg-mime. Selon la configuration, soit il utilise les bits magiques (de l'entete du fichier, voir paragraphe précédent) soit il utilise l'extention (méthode "windows").
Un autre alternative est théoriquement possible: mailcap (run-mailcap) - basé sur mime, mais c'est plus ancien (et rare).
xdg-mime s'utilise en ligne de commande (pas en root), et retourne des informations sur la gestion des types de fichiers, mais il permet aussi d'ajouter des descriptions pour de nouveaux types de fichiers.
xdg-mime query { filetype | default } ...
xdg-mime default application mimetype(s)
xdg-mime install [--mode mode] [--novendor] mimetypes-file
xdg-mime uninstall [--mode mode] mimetypes-file
xdg-mime { --help | --manual | --version }
Deux variables d'environnement: XDG_UTILS_DEBUG_LEVEL et XDG_UTILS_INSTALL_MODE
XDG_UTILS_DEBUG_LEVEL si >0 alors joue sur les logs en stderr (3 est plus verbeux que 1).
XDG_UTILS_INSTALL_MODE permer d'overrider le mode d'instalation (2 valeurs possibles: user ou system).
Codes de sortie (0 ok sinon erreur)
1 : erreur de syntaxe (cli) ; 2: fichier non trouvé ; 3: outil non trouvé ; 4: echec action ; 5: soucis de perm sur un des fichiers
interroger via xdg-mime -> query
- query filetype FILE: affiche le type de fichier de FILE sous forme de type MIME.
- query default mimetype: affiche les fichiers *.desktop de l'application par défaut (utilisée par l'environnement du bureau) pour ouvrir les fichiers du type mimetype.
saisir la commande | affiche, modifie... |
---|---|
xdg-mime query filetype /tmp/foobar.png |
image/png |
xdg-mime query default image/png |
shotwell-viewer.desktop |
xdg-mime install shinythings-shiny.xml |
ajout d'une description pour les fichiers "shiny", shinythings étant le prefix vendor. Le fichier shinythings-shiny.xml pourrait ressembler à <?xml version="1.0"?> <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="text/x-shiny"> <comment>Shiny new file type</comment> <glob pattern="*.shiny"/> <glob pattern="*.shi"/> </mime-type> </mime-info> |
Emplacement des fichiers .desktop
Dans le rep du user (ie /home/user ou ~) voir les contenus de (dossiers)
- .config (avec dossier autostart)
- .gnome2/panel2.d/default/launchers
- .local/share et .local/share/applications
Sources (web)
en anglais: http://superuser.com/questions/556060/how-does-linux-know-what-app-to-use-to-open-a-file
La référence (en anglais) http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html